Nim programmeringssprog udgivelse 1.4.0

En ny version af Nim-systemprogrammeringssproget er blevet frigivet, som i september er et år siden udgivelsen. første stabile version. Syntaksen ligner Python, og ydeevnen er næsten som C++. Ifølge FAQ sproget låner meget fra (i rækkefølge efter vægt af bidrag): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Virker overalt takket være evnen til at kompilere til C/C++/Objective-C/JS. Det understøtter makroer, OOP, generiske, undtagelser, hot code udskiftning og meget mere. Licens - MIT.

De væsentligste ændringer:

  • Der er en ny ORC garbage collector, der bruger ARC-algoritmen, men som håndterer cirkulære referencer på en særlig måde. Aktiveret med --gc:orc-indstillingen. Om ARC/ORC-forskelle der er en fantastisk artikel.

  • En tilstand med strenge funktionsdefinitioner er blevet tilføjet, som inkluderer en ekstra kontrol for objektmutabilitet. Aktiveret via {.experimental: "strictFuncs".}-pragmaen eller via --experimental:strictFuncs-kontakten.

  • Fra nøgleordet kan nu bruges som en operator.

  • Tilføjet .noalias pragma. Det knytter sig til nøgleordet C begrænse for at øge effektiviteten, som dette søgeord kan give.

  • Specifikke advarsler kan nu omdannes til fejl via --warningAsError[X]:on|off.

  • Ny kommando: nim r main.nim [args...], som kompilerer og kører main.nim, og inkluderer --usenimcache, så resultatet gemmes i $nimcache/main$exeExt, ved hjælp af samme logik som nim c - r at slippe af med fra rekompilering, når kildekoden ikke er ændret. Eksempel:

nim r compiler/nim.nim --help # kompileret for første gang
echo 'import os; echo getCurrentCompilerExe()' | nim r - # dette virker også
nim r compiler/nim.nim --fullhelp # uden genkompilering
nim r --nimcache:/tmp main # binært gemt til /tmp/main

  • Tilføjet et nyt tip --hint:msgOrigin som vil vise hvor compileren genererede fejl/advarselsmeddelelser. Dette hjælper, når det ikke er indlysende, hvor beskeden kom fra.

  • Tilføjet --backend:js|c|cpp|objc (eller -b:js, etc.) flag for at ændre backend.

  • Tilføjet --usenimcache flag for at udlæse binære filer til nimcache.

  • Nøgler fjernet: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • Værktøjet nimsuggest viser nu ikke kun den fremadrettede erklæring, men også placeringen af ​​implementeringen, når der anmodes om def.

Derudover er der tilføjet mange ændringer til standardbiblioteket og mange fejlrettelser.

Kilde: linux.org.ru