Izašla je nova verzija sistemskog programskog jezika Nim koji je u rujnu ove godine proslavio godinu dana postojanja. prva stabilna verzija. Jezik je u sintaksi sličan Pythonu, a u izvedbi gotovo kao C++. Prema FAQ Jezik u velikoj mjeri posuđuje iz (redom doprinosa): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.
Radi posvuda zahvaljujući mogućnosti prevođenja u C/C++/Objective-C/JS. Podržava makronaredbe, OOP, generici, iznimke, hot code swap i mnogo više. Licenca: MIT.
Najznačajnije promjene:
-
Postoji novi ORC skupljač smeća koji koristi algoritam iz ARC-a, ali u isto vrijeme obrađuje kružne reference na poseban način. Omogućeno opcijom -gc:orc. O razlikama ARC/ORC postoji super članak.
-
Dodan je način rada za stroge definicije funkcija koji omogućuje dodatnu provjeru promjenjivosti objekta. Aktivira se putem pragme {.experimental: "strictFuncs".} ili putem ključa --experimental:strictFuncs.
-
Ključna riječ from sada se može koristiti kao operator.
-
Dodano .noalias pragma. Preslikava se na ključnu riječ C restrict kako bi se povećala učinkovitost koju ključna riječ može pružiti.
-
Određena upozorenja sada se mogu pretvoriti u pogreške putem --warningAsError[X]:on|off.
-
Nova naredba: nim r main.nim [args...], koja kompilira 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ši rekompilacije kada se izvori nisu promijenili. Primjer:
nim r compiler/nim.nim --help # kompajliran po prvi put
echo 'uvoz os; echo getCurrentCompilerExe()' | nim r - # ovo također radi
nim r compiler/nim.nim --fullhelp # bez ponovnog sastavljanja
nim r —nimcache:/tmp main # binarno spremljeno u /tmp/main
-
Dodan je novi savjet -hint:msgOrigin, koji će pokazati gdje je kompajler generirao poruke o greškama/upozorenjima. Ovo pomaže kada nije jasno odakle je poruka stigla.
-
Dodana oznaka —backend:js|c|cpp|objc (ili -b:js, itd.) za promjenu backend-a.
-
Dodana zastavica --usenimcache za izlaz binarnih datoteka u nimcache.
-
Uklonjeni ključevi: --oldNewlines, --laxStrings, --oldast, --oldgensym
-
Uslužni program nimsuggest sada prikazuje ne samo pred-deklaraciju, već i mjesto implementacije za def zahtjev.
Osim toga, mnoge su promjene dodane standardnoj knjižnici i mnogi ispravci grešaka.
Izvor: linux.org.ru