Nim 0.20 -julkaisua voidaan pitää ehdokkaana ensimmäiselle vakaalle 1.0 -julkaisulle, joka sisältää useita yhteentoimivuutta rikkovia muutoksia, jotka tarvitaan muodostamaan ensimmäinen vakaa haara, joka sitoo kielen tilan. Versiota 1.0 mainostetaan vakaana, pitkän aikavälin tukijulkaisuna, joka taataan säilyttää taaksepäin yhteensopivuuden kielen vakiintuneessa osassa. Kääntäjällä on erikseen saatavilla myös kokeellinen tila, jossa kehitetään uusia ominaisuuksia, jotka saattavat rikkoa taaksepäin yhteensopivuuden.
Nim 0.20:ssa ehdotetut muutokset ovat:
- "Ei" on nyt aina unaarinen operaattori, ts. ilmaukset, kuten "assert(not a)" eivät ole nyt sallittuja ja vain "assert not a" on sallittu;
- Otettu käyttöön tiukat tarkistukset kokonaislukujen ja reaalilukujen muunnokselle käännösvaiheessa, ts. lauseke "const b = uint16(-1)" johtaa nyt virheeseen, koska -1:tä ei voida muuntaa etumerkittömäksi kokonaislukutyypiksi;
- Vakioiden ja silmukkamuuttujien monikot voidaan purkaa.
Nyt voit esimerkiksi käyttää tehtäviä, kuten 'const (d, e) = (7, "kahdeksan")" ja "for (x, y) in f"; - Hajautusarvojen ja taulukoiden oletusalustus. Esimerkiksi, kun olet ilmoittanut "var s: HashSet[int]", voit suorittaa välittömästi "s.incl(5)", joka johti aiemmin virheeseen;
- Parannetut virhetiedot ongelmiin, jotka liittyvät "case"-operaattoriin ja taulukkoindeksiin rajojen ulkopuolella;
- Taulukon pituuden muuttaminen iteroinnin aikana on kielletty.
Lähde: opennet.ru