Nim programmeerimiskeele versioon 1.4.0

Ilmus uus versioon süsteemi programmeerimiskeelest Nim, mille ilmumisest möödub tänavu septembris aasta. esimene stabiilne versioon. Süntaks sarnaneb Pythoniga ja jõudlus on peaaegu nagu C++. Vastavalt FAQ keel laenab tugevalt (panuse kaalu järgi): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Töötab kõikjal tänu võimalusele kompileerida C/C++/Objective-C/JS-i. See toetab makrod, OOP, geneerilised ravimid, erandeid, kuuma koodi asendamine ja palju muud. Litsents - MIT.

Kõige olulisemad muudatused:

  • On uus ORC prügikoguja, mis kasutab ARC algoritmi, kuid käsitleb ringikujulisi viiteid erilisel viisil. Lubatud võtmega --gc:orc. Teave ARC/ORC erinevuste kohta seal on suurepärane artikkel.

  • Lisatud on rangete funktsioonide definitsioonide režiim, mis sisaldab täiendavat objekti muutuvuse kontrolli. Aktiveeritakse pragma {.experimental: "strictFuncs".} või lüliti --experimental:strictFuncs kaudu.

  • Märksõna from saab nüüd kasutada operaatorina.

  • Lisatud .noalias pragma. See vastendatakse C-piirangu märksõnaga, et suurendada selle märksõna tõhusust.

  • Konkreetsed hoiatused saab nüüd muuta vigadeks läbi --warningAsError[X]:on|off.

  • Uus käsk: nim r main.nim [args...], mis kompileerib ja käivitab faili main.nim ning sisaldab --usenimcache, nii et tulemus salvestatakse kausta $nimcache/main$exeExt, kasutades sama loogikat nagu nim c - r uuesti kompileerimisest vabanemiseks, kui lähtekood pole muutunud. Näide:

nim r compiler/nim.nim --help # kompileeriti esimest korda
echo 'import os; echo getCurrentCompilerExe()' | nim r - # see töötab ka
nim r kompilaator/nim.nim --fullhelp # ilma uuesti kompileerimiseta
nim r --nimcache:/tmp main # binaarfail salvestati kausta /tmp/main

  • Lisatud on uus vihje --hint:msgOrigin, mis näitab, kus kompilaator vea-/hoiatusteateid genereeris. See aitab, kui pole selge, kust sõnum tuli.

  • Taustaprogrammi muutmiseks on lisatud lipp --backend:js|c|cpp|objc (või -b:js jne).

  • Lisatud lipp --usenimcache, et nimcache'i binaarfaile väljastada.

  • Eemaldatud võtmed: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • Utiliit nimsuggest ei näita nüüd mitte ainult edastamise deklaratsiooni, vaid ka rakenduse asukohta, kui seda nõutakse def.

Lisaks on standardraamatukogusse lisatud palju muudatusi ja palju veaparandusi.

Allikas: linux.org.ru