Eldono de la programlingvo Nim 1.4.0

Nova versio de la programlingvo Nim-sistema estis publikigita, kiu ĉi-septembre festis sian unujaran datrevenon. unua stabila versio. La lingvo estas simila en sintakso al Python, kaj preskaŭ kiel C++ en efikeco. Laŭ Oftaj Demandoj La lingvo multe pruntas de (en ordo de kontribuo): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Funkcias ĉie danke al la kapablo kompili en C/C++/Objective-C/JS. Ĝi subtenas makrooj, OOP, generikoj, esceptoj, varma kodo interŝanĝo kaj multe pli. Licenco: MIT.

La plej signifaj ŝanĝoj:

  • Estas nova ORC rubokolektanto kiu uzas la algoritmon de ARC, sed samtempe pritraktas cirkulajn referencojn en speciala maniero. Ebligita per la opcio -gc:orc. Pri la diferencoj ARC/ORC estas bonega artikolo.

  • Reĝimo por striktaj funkciodifinoj estis aldonita, kiu ebligas kroman kontrolon por objektoŝanĝebleco. Aktivigite per la pragma {.experimental: "strictFuncs".} aŭ per la klavo --experimental:strictFuncs.

  • La ŝlosilvorto from nun povas esti uzata kiel operatoro.

  • Aldonita .noalias pragma. Ĝi mapas al la ŝlosilvorto C-limigi por pliigi la efikecon, kiun la ŝlosilvorto povas provizi.

  • Specifaj avertoj nun povas esti igitaj eraroj per --warningAsError[X]:on|off.

  • Nova komando: nim r main.nim [args...], kiu kompilas kaj rulas main.nim, kaj inkluzivas --usenimcache tiel ke la rezulto estas konservita en $nimcache/main$exeExt, uzante la saman logikon kiel nim c - r forigi el rekompilo kiam la fontoj ne ŝanĝiĝis. Ekzemplo:

nim r compiler/nim.nim --help # kompilita unuafoje
echo 'import os; echo getCurrentCompilerExe()' | nim r - # ankaŭ ĉi tio funkcias
nim r compiler/nim.nim --fullhelp # sen rekompilo
nim r —nimcache:/tmp ĉefa # binaro konservita en /tmp/main

  • Aldonis novan sugeston -hint:msgOrigin, kiu montros kie la kompililo generis erarajn/avertajn mesaĝojn. Ĉi tio helpas kiam ne estas evidente de kie venis la mesaĝo.

  • Aldonita flago —backend:js|c|cpp|objc (aŭ -b:js, ktp.) por ŝanĝi la backend.

  • Aldonita --usenimcache flago por eligi binarojn al nimcache.

  • Ŝlosiloj forigitaj: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • La nimsuggest-ilaĵo nun montras ne nur la antaŭdeklaron, sed ankaŭ la efektiviglokon por def-peto.

Krome, multaj ŝanĝoj estis aldonitaj al la norma biblioteko kaj multaj eraroj korektoj.

fonto: linux.org.ru