La eldono Nim 0.20 povas esti konsiderata kandidato por la unua stabila eldono 1.0, korpigante plurajn kunfunkciebleco-rompantajn ŝanĝojn necesajn por formi la unuan stabilan branĉon kiu transigos la staton de la lingvo. Versio 1.0 estas prezentita kiel stabila, longdaŭra subtena eldono, kiu estos garantiita por konservi malantaŭan kongruecon en la stabiligita parto de la lingvo. Aparte, la kompililo ankaŭ havos eksperimentan reĝimon disponeblan en kiu novaj funkcioj kiuj povas rompi malantaŭan kongruon estos evoluigitaj.
Inter la ŝanĝoj proponitaj en Nim 0.20 estas:
- "Ne" nun estas ĉiam unara operatoro, t.e. esprimoj kiel "aserti (ne a)" nun estas permesataj kaj nur "aserti ne a" estas permesitaj;
- Ebligis striktajn kontrolojn por konvertiĝo de entjeroj kaj realaj nombroj ĉe la kompila stadio, t.e. la esprimo "const b = uint16(-1)" nun rezultigos eraron, ĉar -1 ne povas esti konvertita al sensigna entjera tipo;
- Malpakado de opoj por konstantoj kaj buklovariabloj estas disponigita.
Ekzemple, nun vi povas uzi taskojn kiel 'const (d, e) = (7, "ok")" kaj "for (x, y) in f"; - Provizita defaŭlta inicialigo de hashoj kaj tabeloj. Ekzemple, post deklarado "var s: HashSet[int]" vi povas tuj ekzekuti "s.incl(5)", kiu antaŭe kaŭzis eraron;
- Plibonigitaj erarinformoj por problemoj rilataj al la "kaza" funkciigisto kaj tabelindekso ekster limoj;
- Ŝanĝi la tabellongon dum ripeto estas malpermesita.
fonto: opennet.ru