Izdanje Nim 0.20 može se smatrati kandidatom za prvo stabilno izdanje 1.0, koje uključuje nekoliko promjena koje narušavaju interoperabilnost i koje su potrebne za formiranje prve stabilne grane koja će objaviti stanje jezika. Verzija 1.0 reklamira se kao stabilno, dugoročno izdanje za podršku koje će zajamčeno održavati kompatibilnost unatrag u stabiliziranom dijelu jezika. Zasebno, kompajler će također imati dostupan eksperimentalni način rada, u kojem će se razvijati nove značajke koje mogu narušiti kompatibilnost sa starijim verzijama.
Među promjenama predloženim u Nimu 0.20 su:
- "Ne" je sada uvijek unarni operator, tj. izrazi poput “assert(not a)” sada nisu dopušteni i samo je “assert not a” dopušteno;
- Omogućene stroge provjere za pretvorbu cijelih i realnih brojeva u fazi kompilacije, tj. izraz "const b = uint16(-1)" sada će rezultirati greškom, budući da se -1 ne može pretvoriti u nepredznačeni cijeli broj;
- Omogućeno je raspakiranje torki za konstante i varijable petlje.
Na primjer, sada možete koristiti dodjele poput 'const (d, e) = (7, "osam")" i "za (x, y) u f"; - Omogućena zadana inicijalizacija hashova i tablica. Na primjer, nakon deklariranja “var s: HashSet[int]” možete odmah izvršiti “s.incl(5)”, što je prethodno dovelo do pogreške;
- Poboljšane informacije o pogrešci za probleme povezane s operatorom "case" i indeksom polja izvan granica;
- Mijenjanje duljine tablice tijekom iteracije je zabranjeno.
Izvor: opennet.ru