To be a bit more specific as to where else these ideas are found:
* Run regular code at compile time
Lisp, of course. Since very long ago.
* Extend the language (AST templates and macros);
this can be used to add a form of list comprehensions to the language!
Lisp, but also Dylan, Elixir, JS with Sweet.js and more. See for example here:
https://opendylan.org/articles/macro-system/index.html * Add your own optimizations to the compiler!
I'm not sure here.
* Bind (easily) to your favorite C functions and libraries
Almost every serious language has FFI for C. Nimrod offers a possibility to use statically linked libraries, which is not very popular, but for example Gambit Scheme does this since long ago.
* Unified Call Syntax, so mystr.len() is equivalent to len(mystr)
Lua, somewhat. Also Dylan again.
* Good performance -- not placing too much emphasis on this,
but it's faster than C++ in his benchmark
Too many to count.
* Compile to JavaScript
OCaml. And more: almost every language has a compile-to-JS project for it (although only a couple are workable).
EDIT:
> typesafe enums are also extremely old
Aren't those just sum types? This would make them as old as ML at least.
This of course doesn't make Nimrod any less interesting a language and some combinations of those features may be rather novel. Still, 'everything old is new again' I think is 100% true for all of these features. In reality you won't ever encounter truly unprecedented features in general purpose languages and outside of academia: one can go to LtU site for those. All the rest languages are built on really old (proven) concepts, which they reimplement and package in a (very) different ways. I have no idea why would you get downvoted for stating such fact.