Liberasyon langaj pwogramasyon Nim 1.4.0

Yon nouvo vèsyon lang pwogramasyon sistèm Nim te lage, ki septanm sa a selebre anivèsè yon ane li. premye vèsyon ki estab. Langaj la sanble nan sentaks ak Python, ak prèske tankou C++ nan pèfòmans. Dapre Kèk kesyon ak tout repons Lang lan prete anpil nan (nan lòd kontribisyon): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Travay tout kote gras a kapasite nan konpile nan C/C++/Objektif-C/JS. Li sipòte makro, OOP, jenerik, eksepsyon, echanj kòd cho ak plis ankò. Lisans: MIT.

Chanjman ki pi enpòtan yo:

  • Gen yon nouvo koleksyon fatra ORC ki sèvi ak algorithm ki soti nan ARC, men an menm tan an okipe referans sikilè nan yon fason espesyal. Aktive pa opsyon -gc:orc. Konsènan diferans ARC/ORC yo gen yon gwo atik.

  • Yo te ajoute yon mòd pou definisyon fonksyon strik, ki pèmèt yon chèk adisyonèl pou mutabilite objè. Aktive atravè pragma {.experimental: "strictFuncs".} oswa atravè kle --experimental:strictFuncs.

  • Mot soti nan kapab kounye a itilize kòm yon operatè.

  • Te ajoute .noalias pragma. Li kat sou mo kle C limite pou ogmante efikasite mo kle a ka bay.

  • Avètisman espesifik yo kapab kounye a tounen erè atravè --warningAsError[X]:on|off.

  • Nouvo lòd: nim r main.nim [args...], ki konpile ak kouri main.nim, epi li gen ladan --usenimcache pou rezilta a estoke nan $nimcache/main$exeExt, lè l sèvi avèk menm lojik ak nim c - r pou debarase li de recompilation lè sous yo pa chanje. Egzanp:

nim r compiler/nim.nim --help # konpile pou premye fwa
eko 'enpòte os; echo getCurrentCompilerExe()' | nim r - # sa a travay tou
nim r compiler/nim.nim --fullhelp # san rekonpilasyon
nim r —nimcache:/tmp main # binè sove nan /tmp/main

  • Te ajoute yon nouvo allusion -hint:msgOrigin, ki pral montre ki kote konpilatè a te pwodwi mesaj erè/avètisman. Sa a ede lè li pa evidan kote mesaj la soti.

  • Te ajoute drapo —backend:js|c|cpp|objc (oswa -b:js, elatriye) pou chanje backend la.

  • Te ajoute --usenimcache drapo nan pwodiksyon binè nan nimcache.

  • Kle yo retire: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • Sèvis piblik nimsuggest la kounye a montre non sèlman pre-deklarasyon an, men tou kote aplikasyon an pou yon demann def.

Anplis de sa, yo te ajoute anpil chanjman nan bibliyotèk estanda a ak anpil koreksyon ensèk.

Sous: linux.org.ru