Vydání Nim 0.20 lze považovat za kandidáta na vydání prvního stabilního vydání 1.0, včetně několika změn narušujících kompatibilitu, které jsou nutné k vytvoření první stabilní větve, která potvrdí stav jazyka. Verze 1.0 je nabízena jako stabilní vydání s dlouhodobou podporou, u kterého bude zaručeno zachování zpětné kompatibility ve stabilizované části jazyka. Samostatně bude v kompilátoru k dispozici také experimentální režim, ve kterém budou vyvíjeny nové funkce, které mohou narušit zpětnou kompatibilitu.
Ze změn navržených v Nim 0.20 můžeme zdůraznit:
- "Ne" je nyní vždy unární operátor, tzn. výrazy jako "tvrdit (ne)" jsou nyní neplatné a je povoleno pouze "tvrdit ne";
- Jsou povoleny tvrdé kontroly převodu celých a reálných čísel v době kompilace, tzn. výraz "const b = uint16(-1)" nyní povede k chybě, protože -1 nelze převést na typ celého čísla bez znaménka;
- Je zajištěno rozbalení n-tic pro konstanty a proměnné smyčky.
Nyní lze například použít přiřazení jako 'konst (d, e) = (7, "osm")' a "pro (x, y) v f"; - Poskytuje výchozí inicializaci hashů a tabulek. Například po deklaraci "var s: HashSet[int]" můžete okamžitě spustit "s.incl(5)", což dříve vedlo k chybě;
- Vylepšen informační obsah chyb pro problémy související s operátorem "case" a indexem pole mimo meze;
- Během iterace je zakázáno měnit délku tabulky.
Zdroj: opennet.ru