Byla vydána nová verze programovacího jazyka systému Nim. Má částečnou nekompatibilitu s verzí 1.0, například z důvodu přísnější typové konverze. Ale v tomto případě existuje příznak -useVersion:1.0.
Hlavní inovací je nový garbage collector, povolený volbou -gc:arc. Autor jazyka Andreas Rumpf se chystá napsat podrobný článek o výhodách ARC, ale zatím vás zve ke čtení svým vystoupením na FOSDEM, který ukazuje výsledky benchmarku.
- Kompilátor nyní podporuje volbu --asm pro pohodlnější zkoumání vytvořeného kódu sestavení.
- align pragma lze použít na objektové proměnné a pole, je to podobné jako alignas v C/C++.
- Operátor =sink je nyní volitelný. Kompilátor nyní může používat kombinaci =destroy a copyMem k efektivnímu přesouvání objektů.
- Převody na celá čísla bez znaménka se za běhu nekontrolují. Podrobnosti v https://github.com/nim-lang/RFCs/issues/175
- Nová syntaxe pro lvalue: var b {.byaddr.} = expr, připojeno přes import std/decls
- Kompilátor podporuje nový přepínač -panics:on, který mění běhové chyby, jako je IndexError nebo OverflowError, na fatální chyby, které nelze zachytit pomocí try. To může zlepšit efektivitu běhu a velikost programu.
- Vygenerovaný kód JS používá pouze mezery místo směsi mezer a tabulátorů.
- Kompilátor přidal podporu pro .localPassc pragma, kterou lze použít ke zpracování speciálních možností backendu C(++) pro soubor C(++), který je generován z aktuálního modulu Nim.
- Nimpretty již nepřijímá negativní argument pro nastavení odsazení, protože to bylo porušení souborů.
- Byla přidána nová makra (collect, dup, capture), propojená přes import cukru.
Kromě toho bylo do standardní knihovny přidáno mnoho změn a mnoho oprav chyb.
Zdroj: linux.org.ru