Nim programski jezik izdanje 1.4.0

Izašla je nova verzija Nim sistemskog programskog jezika, koji je ovog septembra proslavio godišnjicu postojanja. prva stabilna verzija. Jezik je po sintaksi sličan Python-u, a po performansama skoro kao C++. Prema FAQ Jezik u velikoj meri pozajmljuje (po redosledu doprinosa): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Radi svuda zahvaljujući mogućnosti kompajliranja u C/C++/Objective-C/JS. Podržava macros, OOP, generički lijekovi, izuzeci, vruća zamjena kodova i mnogo više. Licenca: MIT.

Najznačajnije promjene:

  • Postoji novi ORC sakupljač smeća koji koristi algoritam iz ARC-a, ali u isto vrijeme rukuje kružnim referencama na poseban način. Omogućeno opcijom -gc:orc. O razlikama ARC/ORC postoji odličan članak.

  • Dodan je način za stroge definicije funkcija, koji omogućava dodatnu provjeru promjenjivosti objekta. Aktivira se preko pragma {.experimental: "strictFuncs".} ili preko --experimental:strictFuncs ključa.

  • Ključna riječ from sada se može koristiti kao operator.

  • Dodan .noalias pragma. Preslikava se na ključnu riječ C ograniči kako bi se povećala efikasnost koju ključna riječ može pružiti.

  • Određena upozorenja se sada mogu pretvoriti u greške putem --warningAsError[X]:on|off.

  • Nova naredba: nim r main.nim [args...], koja kompajlira i pokreće main.nim, i uključuje --usenimcache tako da je rezultat pohranjen u $nimcache/main$exeExt, koristeći istu logiku kao nim c - r da se riješite ponovne kompilacije kada se izvori nisu promijenili. primjer:

nim r compiler/nim.nim --help # kompajliran po prvi put
echo 'import os; echo getCurrentCompilerExe()’ | nim r - # i ovo radi
nim r kompajler/nim.nim --fullhelp # bez rekompilacije
nim r —nimcache:/tmp main # binarni sačuvan u /tmp/main

  • Dodan novi hint -hint:msgOrigin, koji će pokazati gdje je kompajler generirao poruke o grešci/upozorenju. Ovo pomaže kada nije očigledno odakle je poruka došla.

  • Dodata je zastavica —backend:js|c|cpp|objc (ili -b:js, itd.) za promjenu pozadine.

  • Dodata oznaka --usenimcache za izlaz binarnih datoteka u nimcache.

  • Uklonjeni ključevi: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • Uslužni program nimsuggest sada pokazuje ne samo preddeklaraciju, već i lokaciju implementacije za def zahtjev.

Osim toga, u standardnu ​​biblioteku dodane su mnoge promjene i mnoge ispravke grešaka.

izvor: linux.org.ru