Rilaxx tal-lingwa ta' programmar Nim 1.4.0

Ġiet rilaxxata verżjoni ġdida tal-lingwa ta' programmar tas-sistema Nim, li f'Settembru f'Settembru ċċelebrat l-anniversarju tagħha. l-ewwel verżjoni stabbli. Il-lingwa hija simili fis-sintassi għal Python, u kważi bħal C++ fil-prestazzjoni. Skond FAQ Il-lingwa tissellef ħafna minn (f'ordni ta' kontribuzzjoni): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Jaħdem kullimkien grazzi għall-abbiltà li tiġbor f'C/C++/Objective-C/JS. Jappoġġja makro, OOP, ġeneriċi, eċċezzjonijiet, skambju tal-kodiċi sħun u ħafna aktar. Liċenzja: MIT.

L-aktar bidliet sinifikanti:

  • Hemm kollettur taż-żibel ORC ġdid li juża l-algoritmu minn ARC, iżda fl-istess ħin jimmaniġġja referenzi ċirkolari b'mod speċjali. Ippermettiet mill-għażla -gc:orc. Dwar id-differenzi ARC/ORC hemm artiklu kbir.

  • Ġie miżjud mod għal definizzjonijiet stretti tal-funzjoni, li jippermetti kontroll addizzjonali għall-mutabilità tal-oġġett. Attivat permezz tal-pragma {.experimental: "strictFuncs".} jew permezz taċ-ċavetta --experimental:strictFuncs.

  • Il-keyword minn issa tista' tintuża bħala operatur.

  • Miżjud .noalias pragma. Jimmappja mal-keyword C restrizzjoni biex tiżdied l-effiċjenza li l-keyword tista 'tipprovdi.

  • Twissijiet speċifiċi issa jistgħu jinbidlu fi żbalji permezz --warningAsError[X]:on|off.

  • Kmand ġdid: nim r main.nim [args...], li jikkompila u jmexxi main.nim, u jinkludi --usenimcache sabiex ir-riżultat jinħażen f'$nimcache/main$exeExt, bl-użu tal-istess loġika bħal nim c - r biex teħles mir-rikompilazzjoni meta s-sorsi ma nbidlux. Eżempju:

nim r compiler/nim.nim --help # miġbura għall-ewwel darba
echo 'import os; echo getCurrentCompilerExe()' | nim r - # dan jaħdem ukoll
nim r compiler/nim.nim --fullhelp # mingħajr rikompilazzjoni
nim r —nimcache:/tmp main # binarju salvat f'/tmp/main

  • Żid ħjiel ġdid -hint:msgOrigin, li se juri fejn il-kompilatur ġġenera messaġġi ta' żball/twissija. Dan jgħin meta ma jkunx ovvju minn fejn ġie l-messaġġ.

  • Miżjud il-bandiera —backend:js|c|cpp|objc (jew -b:js, eċċ.) biex tbiddel il-backend.

  • Miżjud --usenimcache flag għall-output binarji għal nimcache.

  • Ċwievet imneħħija: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • L-utilità nimsuggest issa turi mhux biss id-dikjarazzjoni minn qabel, iżda wkoll il-post tal-implimentazzjoni għal talba def.

Barra minn hekk, ġew miżjuda ħafna bidliet fil-librerija standard u bosta bug fixes.

Sors: linux.org.ru