











The Nim Team is happy to announce version 2.2.12, the sixth patch release for our stable release, Nim 2.2.
It comes four months after the 2.2.10 release and it contains 142 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.
Check out if the package manager of your OS already ships version 2.2.12 or install it as described here.
If you have installed a previous version of Nim using choosenim,
getting Nim 2.2.12 is as easy as:
$ choosenim update self
$ choosenim update stable
NOTE: We recommend that you install and use the latest version of choosenim, v0.8.16, available in our choosenim repo.
Alternatively, you can download Nim 2.2.12 from our nightlies builds.
& (strformat): interprets {n-1} as {n(-1)}”
(#25821)refc and RVO”
(#25294)ProveField warning with nested case object”
(#22791)devel with lent and type aliasing”
(#25796){.dirty.} template and seq allocations”
(#25693)array, unlike seq, always copies the elements”
(#25849)devel, and refc to ORC on 2.2.x/devel, of redundant stack usage/copies of return value with conditionals/pointers”
(#25850)type mismatch when object has members”
(#22936)internal error: environment misses: s with iterator/nimvm/variable shadowing”
(#25725){.dirty.} template and seq allocations”
(#25693)version-2-2/devel with proc r(e: ref Exception) {.raises: [IOError].} = raise (ref IOError)(e)”
(#25885)c[i].kind == nkType [AssertionDefect] with closure iterator and except IOError, OSError:”
(#25903)version-2-2/devel with proc r(e: ref Exception) {.raises: [IOError].} = raise (ref IOError)(e)”
(#25885)version-2-2/devel with {.pure.} enum and generic inline iterator”
(#25908)type N {.importc: "const void *".} = pointer creates order-dependent compilation failure”
(#25931)mapIt pointlessly does extra zeroing which, e.g., newSeqWith often avoids”
(#25956).forbids. type mismatch with closure types for inner proc”
(#25976)deepCopy should not be allowed for non-copyable type”
(#26019){.cursor.}”
(#26010){.push overflowChecks: off.} pragma escapes when nimvm: block, affecting runtime code”
(#26045)fatal error: invalid kind for firstOrd(tyEmpty) with proc p(h: static set[bool]) = discard len(h)”
(#25942)sink requires a copy because it's not the last read of 's'error in both refc and ARC/ORC”
(#26023)nimpretty --indent:3 can inject syntax errors “
(#20078)refc to ORC or --mm:refc --exceptions:goto with impossible defect-checking”
(#26036){.cast(gcsafe).} blocks: exiting the inner block cancels the outer block’s cast for the statements after it”
(#26092)ResultUsed warning behaves inconsistently with manual characterization with--warning:ResultUsed:on”
(#26062)distinct, and distinctBase with -d:useMalloc or -d:useSysAssert”
(#26025)version-2-4/devel”
(#26112)cast”
(#26123)Error: internal error: expr: param not init k_553648136 with nested generic procs”
(#26124)var r = V(g: true, v: A()); discard move r; GC_fullCollect() on case object”
(#25992)del(seq) performs self-assignment and =destroy for del(0) of 1-length seq”
(#26134)=destroy should accept non-parametrized generic”
(#26132)version-2-4/devel with stack usage increase on try/except expression with refc”
(#26119)Utf16Char incorrectly declared as signed”
(#26175)The complete list of changes is available here.
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。