A Nim 0.20-as kiadás az első stabil 1.0-s kiadás jelöltjének tekinthető, amely számos interoperabilitást megtörő változtatást tartalmaz, amelyek az első stabil ág kialakításához szükségesek, amely leírja a nyelv állapotát. Az 1.0-s verziót stabil, hosszú távú támogatási kiadásként hirdetik, amely garantáltan fenntartja a visszafelé kompatibilitást a nyelv stabilizált részében. A fordítónak külön egy kísérleti üzemmódja is elérhető lesz, amelyben olyan új funkciókat fejlesztenek ki, amelyek sérthetik a visszafelé kompatibilitást.
A Nim 0.20-ban javasolt változtatások között szerepel:
- A "nem" most mindig egy unáris operátor, azaz. az olyan kifejezések, mint az „assert(not a)” most nem engedélyezettek, és csak az „assert not a” engedélyezett;
- Szigorú ellenőrzések engedélyezettek az egész és valós számok konverziójához a fordítási szakaszban, pl. a "const b = uint16(-1)" kifejezés most hibát fog eredményezni, mivel a -1 nem konvertálható előjel nélküli egész típussá;
- A konstansok és ciklusváltozók sorainak kicsomagolása biztosított.
Például most már használhat olyan hozzárendeléseket, mint "const (d, e) = (7, "nyolc")" és "for (x, y) in f"; - A hash-ek és táblák alapértelmezett inicializálása biztosított. Például a „var s: HashSet[int]” deklarálása után azonnal végrehajthatja az „s.incl(5)” parancsot, amely korábban hibához vezetett;
- Továbbfejlesztett hibainformáció a „case” operátorral és a tömb indexével kapcsolatos problémákhoz a határokon kívül;
- A táblázat hosszának módosítása iteráció közben tilos.
Forrás: opennet.ru