Nim programmeringsspråk utgivelse 1.4.0

En ny versjon av systemprogrammeringsspråket Nim har blitt utgitt, som i september er et år siden lanseringen. første stabile versjon. Syntaksen ligner på Python, og ytelsen er nesten som C++. I følge FAQ språket låner mye fra (i rekkefølge av bidragets vekt): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Fungerer overalt takket være muligheten til å kompilere til C/C++/Objective-C/JS. Det støtter makroer, OOP, generiske legemidler, unntakene, utskifting av varmekoder og mye mer. Lisens - MIT.

De viktigste endringene:

  • Det er en ny ORC søppelsamler som bruker ARC-algoritmen, men som håndterer sirkulære referanser på en spesiell måte. Aktivert med --gc:orc-alternativet. Om ARC/ORC-forskjeller det er en flott artikkel.

  • En modus med strenge funksjonsdefinisjoner er lagt til, som inkluderer en ekstra sjekk for objektmutabilitet. Aktivert via {.experimental: "strictFuncs".}-pragmaen eller via --experimental:strictFuncs-bryteren.

  • Fra nøkkelordet kan nå brukes som en operator.

  • Lagt til .noalias pragma. Det tilordnes C restrict-nøkkelordet for å øke effektiviteten som dette nøkkelordet kan gi.

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

  • Ny kommando: nim r main.nim [args...], som kompilerer og kjører main.nim, og inkluderer --usenimcache slik at resultatet lagres i $nimcache/main$exeExt, med samme logikk som nim c - r å bli kvitt fra rekompilering, når kildekoden ikke er endret. Eksempel:

nim r compiler/nim.nim --help # kompilert for første gang
echo 'import os; echo getCurrentCompilerExe()' | nim r - # dette fungerer også
nim r compiler/nim.nim --fullhelp # uten rekompilering
nim r --nimcache:/tmp main # binært lagret i /tmp/main

  • Lagt til et nytt hint --hint:msgOrigin som vil vise hvor kompilatoren genererte feil-/advarselsmeldinger. Dette hjelper når det ikke er åpenbart hvor meldingen kom fra.

  • Lagt til --backend:js|c|cpp|objc (eller -b:js, etc.) flagg for å endre backend.

  • Lagt til --usenimcache-flagg for å sende ut binærfiler til nimcache.

  • Taster fjernet: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • Nimsuggest-verktøyet viser nå ikke bare den videresende erklæringen, men også plasseringen av implementeringen når den blir bedt om def.

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

Kilde: linux.org.ru