Nim 0.20-utgivelsen kan betraktes som en kandidat for den første stabile 1.0-utgivelsen, og inkluderer flere interoperabilitetsbrytende endringer som er nødvendige for å danne den første stabile grenen som vil forplikte språkets tilstand. Versjon 1.0 er utpekt som en stabil, langsiktig støtteutgivelse som garantert opprettholder bakoverkompatibilitet i den stabiliserte delen av språket. Separat vil kompilatoren også ha en eksperimentell modus tilgjengelig der nye funksjoner som kan bryte bakoverkompatibiliteten vil bli utviklet.
Blant endringene som er foreslått i Nim 0.20 er:
- "Ikke" er nå alltid en unær operatør, dvs. uttrykk som "hevde(ikke a)" er nå ikke tillatt og bare "hevde ikke a" er tillatt;
- Aktiverte strenge kontroller for konvertering av heltall og reelle tall på kompileringsstadiet, dvs. uttrykket "const b = uint16(-1)" vil nå resultere i en feil, siden -1 ikke kan konverteres til en heltallstype uten fortegn;
- Utpakking av tupler for konstanter og sløyfevariabler er gitt.
For eksempel, nå kan du bruke oppgaver som 'const (d, e) = (7, "åtte")" og "for (x, y) i f"; - Gir standard initialisering av hashes og tabeller. For eksempel, etter å ha erklært "var s: HashSet[int]" kan du umiddelbart utføre "s.incl(5)", som tidligere førte til en feil;
- Forbedret feilinformasjon for problemer relatert til "case"-operatøren og array-indeksen utenfor grensene;
- Det er forbudt å endre bordlengden under iterasjon.
Kilde: opennet.ru