Nim language reaches 1.0 status

Compiled, statically-typed systems programming language prizes efficiency, readability, and flexibility

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. Thus high(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.
  • 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.