Rilascio del linguaggio di programmazione Nim 1.4.0

È uscita una nuova versione del linguaggio di programmazione Nim, che questo settembre compie un anno dalla sua prima versione stabile. versione stabile. Sintatticamente, il linguaggio è simile a Python, ma per prestazioni è quasi paragonabile a C++. Secondo FAQ il linguaggio trae molto da (in ordine di peso dell'apporto): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Funziona ovunque grazie alla possibilità di essere compilato in C/C++/Objective-C/JS. Supporta macro, OOP, generics, eccezioni, hot code swapping e molto altro. Licenza — MIT.

Le modifiche più significative:

  • È stato introdotto un nuovo garbage collector ORC, che utilizza un algoritmo da ARC, ma gestisce in modo specifico i riferimenti ciclici. Si attiva con l'opzione —gc:orc. Ci sono ottimi articoli sui differenziali tra ARC/ORC esiste un ottimo articolo.

  • È stata aggiunta la modalità di definizioni di funzioni rigorose, che attiva un controllo aggiuntivo sulla mutabilità degli oggetti. Si attiva tramite pragma {.experimental: "strictFuncs".} o tramite la chiave —experimental:strictFuncs.

  • La parola chiave from può ora essere utilizzata come operatore.

  • È stata aggiunta la pragma .noalias. È accoppiata con la parola chiave C restrict per migliorare l'efficienza che può offrire questa parola.

  • Ora è possibile trasformare gli specifici avvisi in errori tramite —warningAsError[X]:on|off.

  • Nuovo comando: nim r main.nim [args…], che compila ed esegue main.nim, includendo —usenimcache in modo che il risultato venga salvato in $nimcache/main$exeExt, usando la stessa logica di nim c -r per evitare la ricompilazione quando i sorgenti non sono cambiati. Esempio:

nim r compiler/nim.nim —help # compilato per la prima volta
echo ‘import os; echo getCurrentCompilerExe()’ | nim r — # anche questo funziona
nim r compiler/nim.nim —fullhelp # senza ricompilazione
nim r —nimcache:/tmp main # binario salvato in /tmp/main

  • Aggiunto un nuovo suggerimento —hint:msgOrigin, che mostrerà dove il compilatore ha generato messaggi di errore/avviso. Questo aiuta quando non è chiaro da dove provenga il messaggio.

  • Aggiunto il flag —backend:js|c|cpp|objc (o -b:js ecc.) per cambiare il backend.

  • Aggiunto il flag —usenimcache per l'uscita dei binari in nimcache.

  • Chiavi rimosse: —oldNewlines, —laxStrings, —oldast, —oldgensym

  • L'utility nimsuggest ora mostra non solo la dichiarazione preliminare, ma anche la posizione dell'implementazione su richiesta def.

Inoltre, sono stati aggiunti numerosi cambiamenti alla libreria standard e molte correzioni di bug.

Fonte: linux.org.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster