Vydání Nim 1.2.0

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

Přidat komentář