Versions 2.0.2 and 1.6.18 released

The Nim team is happy to announce two releases:

  • the latest Nim, version 2.0.2
  • LTS release, version 1.6.18

For the majority of our users, v2.0.2 contains 63 commits and brings bugfixes and improvements to Nim 2.0.0, released four months ago.

NOTE: If your program uses threads (--threads:on became the default in the 2.0.x line) please also use the -d:useMalloc switch. This problem will be fixed in a future release, sorry for the inconvenience.

For those users who haven’t switched to Nim v2.0 yet, we have released the ninth patch release for Nim 1.6.x. It is a small release with 13 commits.

Nim Community Survey 2023

Before going into details of the release, we would like to remind you that 2023 Nim Community Survey is still open, and we would appreciate your input if you haven’t done it already.

Installing Nim 2.0.2

New users

Check out if the package manager of your OS already ships version 2.0.2 or install it as described here.

Existing users

If you have installed a previous version of Nim using choosenim, getting Nim 2.0.2 is as easy as:

$ choosenim 2.0.2

If you are on OSX ARM, choosenim will not work for you. Please choose an alternative method of installing or updating.

Alternatively, you can download Nim 2.0.2 from our nightlies builds.

Donating to Nim

We would like to encourage you to donate to Nim. The donated money will be used to further improve Nim by creating bounties for the most important bugfixes and features.

You can donate via:

If you are a company, we also offer commercial support.

Bugfixes

These reported issues were fixed:

  • Fixed “Undefined behavior when with hash(...) on non-aligned bytes due to murmurHash cast[ptr int32]” (#22387)
  • Fixed “async/closure environment does not align local variables” (#22419)
  • Fixed “Debugging/stepping is broken in 2.0.0 and 2.1.1” (#22366)
  • Fixed “when picks wrong branch with static int” (#22474)
  • Fixed “Regression from 1.6.14 to 2.0.0 - nimble test crashes with a core dump” (#22357)
  • Fixed “Long-term arc-closure iterator problem” (#22619)
  • Fixed “-d:useMalloc broken with --mm:none and threads on” (#22262)
  • Fixed “Crash of compiler on array type check” (#5780)
  • Fixed “Undefined behaviorwith set card() on non-aligned pointer from cardSetImpl/countBits64cast on ptr uint64” (#22481)
  • Fixed “elementType from std/typetraits doesn’t work in generic procs” (#21532)
  • Fixed “peg matchLen can raise an unlisted exception: Exception” (#22541)
  • Fixed “Piece of code output c compiler error “ (#17197)
  • Fixed “Missing type inference in loop + case + if + continue” (#22604)
  • Fixed “Invalid type mismatch in generic” (#17509)
  • Fixed “std/nativesockets getHostByAddr should support IPv6” (#22834)
  • Fixed “std/nre leaks memory on every created Regex due to auto-translated finalizers behaving differently under ARC/ORC” (#22868)
  • Fixed “Destructor not called for temp objects passed as arguments” (#22866)
  • Fixed “nimsuggest inlay hints for types shown in the wrong place for exported vars and consts” (#23067)
  • Fixed “[Regression] static integers in quote do” (#22947)

The complete list of changes is available here.