Nim-järjestelmän ohjelmointikielestä on julkaistu uusi versio, joka vietti tänä syyskuussa yksivuotisjuhlaansa. ensimmäinen vakaa versio. Kieli on syntaksilta samanlainen kuin Python, ja suorituskyvyltään melkein kuin C++. Mukaan FAQ Kieli lainaa voimakkaasti (panostusjärjestyksessä): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.
Toimii kaikkialla C/C++/Objective-C/JS-kääntämiskyvyn ansiosta. Se tukee makroja, OOP, geneeriset, poikkeukset, kuumakoodin vaihto ja paljon enemmän. Lisenssi: MIT.
Merkittävimmät muutokset:
-
Mukana on uusi ORC-roskankeräin, joka käyttää ARC:n algoritmia, mutta käsittelee samalla erityisellä tavalla ympyräviittauksia. Ottaa käyttöön -gc:orc-vaihtoehdon. Tietoja ARC/ORC-eroista siellä on hieno artikkeli.
-
Tila tiukkoja funktiomäärittelyjä varten on lisätty, mikä mahdollistaa objektin muuttuvuuden lisätarkistuksen. Aktivoidaan pragma {.experimental: "strictFuncs".} tai --experimental:strictFuncs-avaimen kautta.
-
Avainsanaa from voidaan nyt käyttää operaattorina.
-
Lisätty .noalias pragma. Se kartoitetaan C-rajoitusavainsanaan lisätäkseen avainsanan tarjoamaa tehokkuutta.
-
Tietyt varoitukset voidaan nyt muuttaa virheiksi komennolla --warningAsError[X]:on|off.
-
Uusi komento: nim r main.nim [args...], joka kääntää ja suorittaa main.nim-tiedoston ja sisältää --usenimcache, joten tulos tallennetaan kansioon $nimcache/main$exeExt käyttäen samaa logiikkaa kuin nim c - r päästä eroon uudelleenkääntämisestä, kun lähteet eivät ole muuttuneet. Esimerkki:
nim r compiler/nim.nim --help # käännetty ensimmäistä kertaa
echo 'tuonti os; echo getCurrentCompilerExe()' | nim r - # tämäkin toimii
nim r kääntäjä/nim.nim --fullhelp # ilman uudelleenkääntämistä
nim r —nimcache:/tmp main # binääritiedosto tallennettu kansioon /tmp/main
-
Lisätty uusi vihje -hint:msgOrigin, joka näyttää missä kääntäjä loi virhe-/varoitusviestejä. Tämä auttaa, kun ei ole selvää, mistä viesti tuli.
-
Lisätty lippu —backend:js|c|cpp|objc (tai -b:js jne.) taustajärjestelmän vaihtamiseksi.
-
Lisätty --usenimcache-lippu nimcache-binäärien tulostamiseen.
-
Avaimet poistettu: --oldNewlines, --laxStrings, --oldast, --oldgensym
-
Nimsuggest-apuohjelma näyttää nyt esiilmoituksen lisäksi myös def-pyynnön toteutuspaikan.
Lisäksi standardikirjastoon on lisätty monia muutoksia ja monia virheenkorjauksia.
Lähde: linux.org.ru