Byla vydána nová verze systémového programovacího jazyka Nim. Ta má částečnou nekompatibilitu s verzí 1.0, například kvůli přísnějšímu přetypování. Ale na to existuje příznak —useVersion:1.0.
Hlavní novinkou je nový garbage collector, který je aktivován volbou —gc:arc. Autor jazyka Andreas Rumpf plánuje napsat podrobný článek o výhodách ARC, zatím doporučuje se podívat na jeho vystoupení na FOSDEM, kde jsou ukázány výsledky benchmarků.
- Kompilátor nyní podporuje volbu —asm pro pohodlnější studium generovaného assemblerového kódu.
- Pragma align může být použita pro proměnné a pole objektů, je to podobné jako alignas v C/C++.
- =sink operátor je nyní volitelný. Kompilátor nyní může využívat kombinaci =destroy a copyMem pro efektivní přesun objektů.
- Přetypování na unsigned integers není kontrolováno během běhu. Podrobnosti jsou v https://github.com/nim-lang/RFCs/issues/175
- Nová syntaxe pro lvalue: var b {.byaddr.} = expr, aktivováno importem std/decls
- Kompilátor podporuje nový klíč —panics:on, který způsobuje, že runtime chyby jako IndexError nebo OverflowError se stanou fatálními chybami, které nelze zachytit pomocí try. To může zlepšit efektivitu runtime a velikost programu.
- Generovaný JS kód nyní používá pouze mezery místo směsice mezer a tabulátorů.
- Kompilátor nyní podporuje pragma .localPassc, pomocí které lze zpracovat speciální možnosti C(++) backendu pro C(++) soubor generovaný z aktuálního modulu Nim.
- Nimpretty nyní nepřijímá záporné argumenty pro nastavení odsazení, protože to narušovalo soubory.
- Byly přidány nové makra (collect, dup, capture), aktivované importem sugar.
Kromě toho byla přidána řada změn do standardní knihovny a mnoho oprav chyb.
Zdroj: linux.org.ru
