D'Nim 0.20 Verëffentlechung kann als Kandidat fir déi éischt stabil 1.0 Verëffentlechung considéréiert ginn, mat verschiddenen Interoperabilitéit briechen Ännerungen néideg fir déi éischt stabil Branche ze bilden, déi den Zoustand vun der Sprooch engagéiert. D'Versioun 1.0 gëtt als stabil, laangfristeg Ënnerstëtzungsverëffentlechung ugesinn, déi garantéiert ass fir Réckkompatibilitéit am stabiliséierten Deel vun der Sprooch z'erhalen. Separat wäert de Compiler och en experimentellen Modus verfügbar hunn, an deem nei Features entwéckelt ginn, déi Réckkompatibilitéit briechen.
Ënnert den Ännerungen am Nim 0.20 proposéiert sinn:
- "Net" ass elo ëmmer en unäre Bedreiwer, d.h. Ausdréck wéi "assert(not a)" sinn elo net erlaabt an nëmmen "assert not a" ass erlaabt;
- Aktivéiert strikt Kontrollen fir d'Konversioun vun ganz Zuelen a reellen Zuelen op der Kompiléierungsstadium, d.h. den Ausdrock "const b = uint16(-1)" wäert elo zu engem Fehler resultéieren, well -1 kann net an en net ënnerschriwwenen Ganzzueltyp ëmgewandelt ginn;
- Auspackung vun Tupels fir Konstanten a Loopvariablen gëtt zur Verfügung gestallt.
Zum Beispill, elo kënnt Dir Uerderen benotzen wéi 'const (d, e) = (7, "aacht")" an "fir (x, y) an f"; - Gitt Standardinitialiséierung vun Hashes an Dëscher. Zum Beispill, nodeems Dir "var s: HashSet[int]" erkläert hutt, kënnt Dir direkt "s.incl (5)" ausféieren, wat virdru zu engem Feeler gefouert huet;
- Verbesserte Fehlerinformatioun fir Probleemer am Zesummenhang mam "Fall" Bedreiwer an Arrayindex ausserhalb vu Grenzen;
- D'Ännerung vun der Tabelllängt wärend der Iteratioun ass verbueden.
Source: opennet.ru