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