Der nye version af programmeringssproget Nim er udgivet. Den har delvis inkompatibilitet med version 1.0, for eksempel på grund af en strammere typekonvertering. Men der er et flag til dette —useVersion:1.0.
Det primære nyhed er en ny garbage collector aktiveret med indstillingen —gc:arc. Sprogforfatteren Andreas Rumpf planlægger at skrive en detaljeret artikel om fordelene ved ARC, men indtil da foreslår han at se på hans præsentation ved FOSDEM, hvor resultaterne af benchmarking vises.
- Kompilatoren understøtter nu indstillingen —asm for lettere at studere den genererede assemblerkode.
- Align pragma kan bruges til variable og felter i objekter, det ligner alignas i C/C++.
- =sink operatoren er nu valgfri. Kompilatoren kan nu anvende en kombination af =destroy og copyMem for effektivt at flytte objekter.
- Konverteringer til unsigned integers kontrolleres ikke i runtime. Flere oplysninger findes i https://github.com/nim-lang/RFCs/issues/175
- Den nye syntaks for lvalue: var b {.byaddr.} = expr, aktiveres gennem import std/decls
- Kompilatoren understøtter den nye nøgle —panics:on, som gør runtime-fejl som IndexError eller OverflowError til fatale fejl, der ikke kan fanges gennem try. Dette kan forbedre runtime-effektiviteten og programmets størrelse.
- Den genererede JS-kode bruger kun mellemrum i stedet for en blanding af mellemrum og tabulatorer.
- Kompilatoren har fået støtte til .localPassc pragma, som gør det muligt at behandle specielle C(++) backend-indstillinger for C(++)-filen, der genereres ud fra det aktuelle Nim-modul.
- Nimpretty accepterer nu ikke negative argumenter til indstilling af indrykninger, da dette brød filer.
- Der er tilføjet nye makroer (collect, dup, capture), aktiveret gennem import sugar.
Derudover er der tilføjet mange ændringer i standardbiblioteket og mange fejlrettelser.
Kilde: linux.org.ru
