Pagpagawas sa Nim 1.4.0 programming language

Usa ka bag-ong bersyon sa Nim system programming language ang gipagawas, nga karong Septiyembre nagsaulog sa usa ka tuig nga anibersaryo niini. unang stable nga bersyon. Ang pinulongan susama sa syntax sa Python, ug halos sama sa C++ sa performance. Sumala sa FAQ Ang pinulongan nanghulam pag-ayo gikan sa (sa han-ay sa kontribusyon): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Nagtrabaho bisan asa salamat sa abilidad sa pag-compile sa C/C++/Objective-C/JS. Kini nagsuporta mga macro, OOP, generics, eksepsiyon, init nga code swap ug daghan pa. Lisensya: MIT.

Ang labing hinungdanon nga mga pagbag-o:

  • Adunay bag-ong ORC garbage collector nga naggamit sa algorithm gikan sa ARC, apan sa samang higayon nagdumala sa circular reference sa espesyal nga paagi. Gi-enable sa -gc:orc nga opsyon. Mahitungod sa mga kalainan sa ARC/ORC adunay usa ka maayo nga artikulo.

  • Ang usa ka mode alang sa estrikto nga mga kahulugan sa function gidugang, nga makapahimo sa usa ka dugang nga pagsusi alang sa pagbag-o sa butang. Gi-activate pinaagi sa pragma {.experimental: "strictFuncs".} o pinaagi sa --experimental:strictFuncs key.

  • Ang gikan sa keyword mahimo nang gamiton isip operator.

  • Gidugang ang .noalias pragma. Nagmapa kini sa C restrict keyword aron madugangan ang kahusayan nga mahatag sa keyword.

  • Ang piho nga mga pasidaan mahimo na nga mga sayup pinaagi sa --warningAsError[X]:on|off.

  • Bag-ong sugo: nim r main.nim [args...], nga nag-compile ug nagpadagan sa main.nim, ug naglakip sa --usenimcache aron ang resulta matipigan sa $nimcache/main$exeExt, gamit ang samang lohika sa nim c - r aron makuha gikan sa pag-recompilation kung ang mga tinubdan wala mausab. Pananglitan:

nim r compiler/nim.nim --help # compiled sa unang higayon
echo 'import os; echo getCurrentCompilerExe()' | nim r - # kini nagtrabaho usab
nim r compiler/nim.nim --fullhelp # nga walay recompilation
nim r β€”nimcache:/tmp main # binary gitipigan sa /tmp/main

  • Nagdugang ug bag-ong hint -hint:msgOrigin, nga magpakita kung asa ang compiler nakamugna ug error/warning nga mga mensahe. Makatabang kini kung dili klaro kung diin gikan ang mensahe.

  • Gidugang nga bandera β€”backend:js|c|cpp|objc (o -b:js, etc.) aron usbon ang backend.

  • Gidugang --usenimcache flag sa output binaries sa nimcache.

  • Gitangtang ang mga yawe: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • Ang nimsuggest utility karon nagpakita dili lamang sa pre-deklarasyon, apan usab ang lokasyon sa pagpatuman alang sa usa ka def request.

Dugang pa, daghang mga pagbag-o ang gidugang sa standard nga librarya ug daghang mga pag-ayo sa bug.

Source: linux.org.ru