Ohjelmointikielen Nim 1.4.0 julkaisu

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