Nim, a statically-typed systems programming language that draws on concepts from languages like Python, Pascal, and Ada, has reached a 1.0 release status. Generating native dependency-free executables, Nim can compile to JavaScript, C, or C++, enabling the language to be used for back-ends and front-ends.
The Nim 1.0 release marks the beginning of a stable base to build on in upcoming years, with future versions to maintain backward compatibility with code written in the current version. Nim 1.0 includes a number of improvements:
- A bug enabling
int
to be implicitly converted to range types of smaller sizes has been fixed. - Inline iterators returning
lent T
types are now supported. uint64
is now a regular ordinal type. Thushigh(uint64)
compiles and yields the correct value.encodings.getCurrentEncoding
now distinguishes between the console’s encoding and the OS encoding. This change impacts Windows only.- A
json.parseJsonFragments
iterator has been added that can speed up JSON processing when there are JSON fragments separated by whitespace. - The Nim compiler no longer recompiles the Nim project via
nim c -r
if no dependent Nim file has changed. - The compiler warns about unused module imports.
unicode.Rune16
has been removed without any deprecation period. The name was found to be wrong and no uses of it were found in the wild.
Nim is a compiled, garbage-collected systems programming language that borrows multiple constructs from Python and Pascal-inspired type sections. It also has multi-line lambdas.
Where to download Nim
You can download Nim installers for Windows and Unix systems from the project website.