Liberazione di a lingua di prugrammazione Nim 1.4.0

Una nova versione di a lingua di prugrammazione di u sistema Nim hè stata liberata, chì in settembre hà celebratu u so anniversariu di un annu. prima versione stabile. A lingua hè simile in sintassi à Python, è quasi cum'è C ++ in performance. Secondu FAQ A lingua piglia assai (in ordine di cuntribuzione): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Funziona in ogni locu grazie à a capacità di cumpilà in C/C++/Objective-C/JS. U sustegnu macros, OOP, generici, eccezzioni, scambià codice hot è assai di più. Licenza: MIT.

I cambiamenti più significati:

  • Ci hè un novu cullettore di basura ORC chì usa l'algoritmu da ARC, ma à u stessu tempu manighja referenze circulari in una manera speciale. Abilitatu da l'opzione -gc:orc. À propositu di e differenze ARC / ORC ci hè un grande articulu.

  • Hè statu aghjuntu un modu per definizioni di funzioni strette, chì permette un cuntrollu supplementu per a mutabilità di l'ughjettu. Attivatu via u pragma {.experimental: "strictFuncs".} o via a chjave --experimental:strictFuncs.

  • A keyword from pò avà esse usata cum'è operatore.

  • Aggiuntu .noalias pragma. Maps à a chjave di restrizzione C per aumentà l'efficienza chì a keyword pò furnisce.

  • Avvertimenti specifichi ponu avà esse trasfurmati in errori via --warningAsError[X]:on|off.

  • Novu cumandamentu: nim r main.nim [args...], chì compila è esegue main.nim, è include --usenimcache per chì u risultatu hè almacenatu in $nimcache/main$exeExt, utilizendu a stessa logica cum'è nim c - r per sbarazzà da a recompilazione quandu e fonti ùn anu micca cambiatu. Esempiu:

nim r compiler/nim.nim --help # compilatu per a prima volta
echo 'import os; echo getCurrentCompilerExe()' | nim r - # questu funziona ancu
nim r compiler/nim.nim --fullhelp # senza ricompilazione
nim r —nimcache:/tmp main # binariu salvatu in /tmp/main

  • Aggiuntu un novu suggerimentu -hint:msgOrigin, chì mostrarà induve u compilatore hà generatu messagi d'errore / avvisu. Questu aiuta quandu ùn hè micca evidenti da induve vene u missaghju.

  • Aggiunta bandiera —backend:js|c|cpp|objc (o -b:js, etc.) per cambià u backend.

  • Aggiuntu --usenimcache flag per output binari à nimcache.

  • Chjavi rimossi: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • L'utilità nimsuggest mostra avà micca solu a pre-dichjarazione, ma ancu u locu di implementazione per una dumanda def.

Inoltre, assai cambiamenti sò stati aghjunti à a biblioteca standard è parechje correzioni di bug.

Source: linux.org.ru