














The Nim Team is happy to announce version 2.2.6, the third patch release for our stable release, Nim 2.2.
It comes six months after the 2.2.4 release and it contains 141 commits, bringing bugfixes and improvements.
If you’re still on Nim 1.6, take a look at the version 2.0 release article to see all the features you’re missing. If you’ve been using Nim 2.0, the version 2.2 release article shows the improvements available in Nim 2.2.
The Nim 2.2.6 changelog is available here.
Exception handling combined with Nim’s async is more stable than ever before
as the underlying closure iterator transformation has been rewritten.
The compiler is now smart enough to produce a move operation for return obj.field.
Previously it performed a copy.
Expect your code to run slightly faster due to this and other minor performance improvements.
Check out if the package manager of your OS already ships version 2.2.6 or install it as described here.
If you have installed a previous version of Nim using choosenim,
getting Nim 2.2.6 is as easy as:
$ choosenim update self
$ choosenim update stable
NOTE: We recommend you to install and use the latest version of choosenim, v.0.8.16, available in our choosenim repo.
Alternatively, you can download Nim 2.2.6 from our nightlies builds.
=destroy for non-var failed to compile when JS”
(#24914){.push raises: [].} doesn’t respect lexical scoping”
(#23355)< (less than), cmp for cstring”
(#24941)version-2-2/devel with global variable with unhandled exception: iterators.nim(254, 11) len(a) == L the length of the seq changed while iterating over it [AssertionDefect]”
(#24981)Defect/doAssert”
(#24974)hasCustomPragma stops working after typedesc is copied”
(#23564)version-2-2/devel with closure iterator”
(#25038)internal error: genTypeInfo(tyUserTypeClassInst) when JS backend”
(#25043)version-2-2/devel in nim cpp with compatible types not keeping L-valueness”
(#25109)FieldDefect compiler crash when comparing pointers at compile time”
(#25066)vmgen.sameConstant and memory allocations”
(#25114)unhandled exception: field 'sym' is not accessible for type 'TNode' using 'kind = nkEmpty' [FieldDefect] with iterator-loop”
(#25121)strutils.formatSize returns wrong values from large values close to int64.high”
(#25125)cast in single expression triggers unnecessary copy”
(#24093)internal error: '=destroy' operator not found for type NimNode returning NimNode”
(#25120)requiresInit not checked for result if it has been used (2.2 regression)”
(#25117)filterIt wrongly results in rvalue”
(#25078)@ extremely slow for trivial types”
(#25063)refc with generic types containing gc memory”
(#24844)error: ‘T2_’ undeclared and error: incompatible types when assigning to type ‘void *’”
(#24361)lent string generic field isn’t preserving its value”
(#25127)lent expression from conditionals like case”
(#23949)Error: internal error: proc has no result symbol”
(#21476)block”
(#24261)Error: unhandled exception: field 'sym' is not accessible for type 'TNode'”
(#21138)error: ‘pthread_mutex_t’ has no member named ‘abi’ in refc with reset/{.exportc.}”
(#25205)resize__system_u... in @psystem.nim.c in ORC”
(#25204)proc(var T): var T”
(#25210)cast[char](i) for i > 255 not truncate”
(#25222)compileTime proc unable to be passed as static param”
(#25123)repr raises RangeDefect for long string under refc”
(#25226)nim doc uses doc comment from private field for public field”
(#25027)compiler/vmgen.nim(1771, 23) with static overload”
(#25008)The complete list of changes is available here.
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。