Nim version 2.0.8 released

The Nim team is happy to announce Nim version 2.0.8, our fourth patch release for Nim 2.0.

Version 2.0.8 is a small release, containing just 20 commits, but it brings important improvements to Nim 2.0.6, released 10 days ago.

Major improvements in this release:

  • Nim’s allocator is now much more stable with --threads:on.
  • Better support for gcc14.
  • Optimized setLen(0) for uninitialized strings and seqs.
  • Optimized move when used with --mm:refc.

This release comes relatively quickly after our previous release because it was time-critical for our partner Status to receive these improvements as soon as possible. It is our way of saying “thank you” for their continued support of Nim.

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

Existing users

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

$ choosenim 2.0.8

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.8 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 “[Semi-regression] C code contains backtick`gensym” (#23711)
  • Fixed “setLen(0) allocates memory causing performance regression” (#23742)
  • Fixed “Sigsegv on std/tasks destructor” (#23725)
  • Fixed “genericAssign does not take care of the importC variables” (#9940)
  • Fixed “move(table) does not move the table” (#23759)
  • Fixed “Local variables can be prematurely moved to closure, causing use-after-move” (#23748)
  • Fixed “tvatiteropenarray test fails with c++” (#19977)

The complete list of changes is available here.