Utgivelse av programmeringsspråket Nim 1.4.0

Den nye versjonen av programmeringsspråket Nim har blitt lansert, og i september feirer den ett år siden den første stabile versjonen ble utgitt. den første stabile versjonen. Språket ligner på Python i syntaks, men ytelsen er nesten som C++. Ifølge FAQ språket låner mye fra (i rekkefølge etter betydning): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Det fungerer overalt takket være muligheten for kompilerings til C/C++/Objective-C/JS. Det støtter makroer, OOP, generics, unntak, hot code swapping og mye mer. Lisensen er MIT.

De mest betydningsfulle endringene:

  • Det er lagt til en ny søppelsamler (garbage collector) ORC, som bruker en algoritme fra ARC, men behandlingen av sirkulære referanser er spesialtilpasset. Det aktiveres med alternativet —gc:orc. For mer om forskjellene mellom ARC og ORC, finnes det en flott artikkel.

  • Det er lagt til en streng funksjonsdefinisjonsmodus, som aktiverer en ekstra sjekk på mutabiliteten til objektene. Dette aktiveres via pragma {.experimental: "strictFuncs".} eller ved hjelp av flagget —experimental:strictFuncs.

  • Nøkkelordet from kan nå brukes som en operator.

  • Pragman .noalias er lagt til. Dette tilsvarer C-nøkkelordet restrict, for å forbedre effektiviteten som dette ordet kan gi.

  • Spesifikke advarsler kan nå gjøres om til feil via —warningAsError[X]:on|off.

  • Ny kommando: nim r main.nim [args…], som kompilere og kjører main.nim, med —usenimcache slik at resultatet lagres i $nimcache/main$exeExt, ved å bruke den samme logikken som nim c -r for å unngå rekombiliasjon når kildefilene ikke har endret seg. Eksempel:

nim r compiler/nim.nim —help # kompileres første gang
echo ‘import os; echo getCurrentCompilerExe()’ | nim r — # dette fungerer også
nim r compiler/nim.nim —fullhelp # uten rekombiliasjon
nim r —nimcache:/tmp main # binæren lagres i /tmp/main

  • Det er lagt til et nytt hint —hint:msgOrigin, som viser hvor kompilatoren genererte feilmeldinger/advarsler. Dette hjelper når det ikke er åpenbart hvor meldingen kom fra.

  • Flagget —backend:js|c|cpp|objc (eller -b:js, osv.) er lagt til for å bytte backend.

  • Flagget —usenimcache er lagt til for å skrive binærer til nimcache.

  • Nøklene —oldNewlines, —laxStrings, —oldast, —oldgensym er fjernet.

  • Verktøyet nimsuggest viser nå ikke bare forhåndserklæringer, men også plasseringen av implementeringen på forespørsel def.

I tillegg er det lagt til mange endringer i standardbiblioteket og mange feilrettinger.

Kilde: linux.org.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster