Udgivelsen af programmeringssproget Nim 1.4.0

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

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster