Izdanje programskog jezika Nim 1.4.0

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