Vydanie Nim 0.20 možno považovať za kandidáta na prvé stabilné vydanie 1.0, ktoré obsahuje niekoľko zmien narúšajúcich interoperabilitu, ktoré sú potrebné na vytvorenie prvej stabilnej vetvy, ktorá zaviaže stav jazyka. Verzia 1.0 je ponúkaná ako stabilné vydanie dlhodobej podpory, ktoré bude zaručene udržiavať spätnú kompatibilitu v stabilizovanej časti jazyka. Samostatne bude mať kompilátor k dispozícii aj experimentálny režim, v ktorom sa budú vyvíjať nové funkcie, ktoré môžu narušiť spätnú kompatibilitu.
Medzi zmeny navrhované v Nim 0.20 patria:
- "Nie" je teraz vždy unárny operátor, t.j. výrazy ako „tvrdiť (ne)“ teraz nie sú povolené a povolené je len „tvrdiť, nie“;
- Povolené prísne kontroly prevodu celých a reálnych čísel vo fáze kompilácie, t.j. výraz "const b = uint16(-1)" teraz povedie k chybe, pretože -1 nemožno konvertovať na typ celého čísla bez znamienka;
- Poskytuje sa rozbalenie n-tic pre konštanty a premenné slučky.
Napríklad teraz môžete použiť priradenia ako „konšt. (d, e) = (7, „osem“)“ a „pre (x, y) v f“; - Poskytnutá predvolená inicializácia hashov a tabuliek. Napríklad po vyhlásení „var s: HashSet[int]“ môžete okamžite spustiť „s.incl(5)“, čo predtým viedlo k chybe;
- Vylepšené informácie o chybách pre problémy súvisiace s operátorom „case“ a indexom poľa mimo hraníc;
- Zmena dĺžky tabuľky počas iterácie je zakázaná.
Zdroj: opennet.ru