Den nye version af programmeringssproget Nim er blevet lanceret, som i september fylder et år siden dets første udgivelse. stabile version. Syntaksen minder om Python, mens ydeevnen næsten er som C++. Ifølge FAQ språket låner meget fra (i rækkefølge af betydning): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.
Det fungerer overalt takket være muligheden for at kompilere til C/C++/Objective-C/JS. Det understøtter makroer, OOP, generics, undtagelser, hot code swapping og meget mere. Licensen er MIT.
De mest betydningsfulde ændringer:
-
Der er kommet en ny garbage collector ORC, som bruger en algoritme fra ARC, men som er specielt designet til at håndtere cykliske referencer. Aktiveres med indstillingen —gc:orc. Der er en glimrende artikel om forskellene mellem ARC/ORC om forskellene mellem ARC/ORC.
Der er tilføjet en tilstand for strenge funktionsdefinitioner, hvor der aktiveres en ekstra kontrol af objekters mutabilitet. Aktiveres via pragmat {.experimental: "strictFuncs".} eller med nøgle -experimental:strictFuncs.
Nøgleordet from kan nu bruges som en operator.
Der er tilføjet pragmat .noalias. Den svarer til nøgleordet C restrict for at forbedre effektiviteten, som dette ord kan give.
Specifikke advarsler kan nu gøres til fejl via —warningAsError[X]:on|off.
Ny kommando: nim r main.nim [args…], der kompilerer og kører main.nim, og inkluderer —usenimcache, så resultatet gemmes i $nimcache/main$exeExt, ved hjælp af den samme logik som nim c -r for at undgå genkompilation, når kildefilerne ikke er ændret. Eksempel:
nim r compiler/nim.nim —help # kompileret første gang
echo ‘import os; echo getCurrentCompilerExe()’ | nim r — # dette virker også
nim r compiler/nim.nim —fullhelp # uden genkompilation
nim r —nimcache:/tmp main # binæren er gemt i /tmp/main
Der er tilføjet et nyt hint —hint:msgOrigin, der viser hvor compiler genererer fejl/advarsler. Dette hjælper, når det ikke er indlysende, hvor beskeden kom fra.
Der er tilføjet flaget —backend:js|c|cpp|objc (eller -b:js osv.) for at ændre backend.
Der er tilføjet flaget —usenimcache for at gemme binære filer i nimcache.
Nøglerne: —oldNewlines, —laxStrings, —oldast, —oldgensym er fjernet.
Nimsuggest-værktøjet viser nu ikke kun den foreløbige erklæring, men også placeringen af implementeringen på anmodning fra def.
Derudover er der tilføjet mange ændringer i standardbiblioteket og mange fejlrettelser.
Kilde: linux.org.ru
