Izlazak programskog jezika Nim 1.4.0

Izlazila je nova verzija sistemskog programskog jezika Nim, koji ovog rujna obilježava godinu dana od objave prve stabilne verzije. Po sintaksi jezik nalikuje Pythonu, a po performansama gotovo je poput C++. Prema FAQ jeziku u velikoj mjeri preuzima iz (redoslijed prema težini doprinosa): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Radi svugdje zahvaljujući mogućnosti kompajliranja u C/C++/Objective-C/JS. Podržavaju se makroi, OOP, generici, iznimke, hot code swapping i još mnogo toga. Licenca — MIT.

Najznačajnije promjene:

  • Pojavio se novi sakupljač smeća ORC, koji koristi algoritam iz ARC, ali posebno obrađuje kružne reference. Aktivira se s opcijom —gc:orc. O razlikama ARC/ORC postoji izvrstan članak.

  • Dodani su strogi definicijski načini funkcija, pri čemu se aktivira dodatna provjera na mutabilnost objekata. Aktivira se putem pragme {.experimental: "strictFuncs".} ili kroz ključ —experimental:strictFuncs.

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

  • Dodana je pragma .noalias. Ona odgovara ključnoj riječi C restrict, kako bi se povećala učinkovitost koju ta riječ može osigurati.

  • Specifična upozorenja sada se mogu pretvoriti u greške preko —warningAsError[X]:on|off.

  • Nova komanda: nim r main.nim [args…], koja kompajlira i pokreće main.nim, uključujući —usenimcache tako da se rezultat sprema u $nimcache/main$exeExt, koristeći istu logiku kao nim c -r za izbjegavanje ponovne kompilacije kada se izvorni kodovi nisu promijenili. Primjer:

nim r compiler/nim.nim —help # prvi put kompilirano
echo ‘import os; echo getCurrentCompilerExe()’ | nim r — # ovo također radi
nim r compiler/nim.nim —fullhelp # bez ponovne kompilacije
nim r —nimcache:/tmp main # binarna datoteka spremljena u /tmp/main

  • Dodana je nova sugestija —hint:msgOrigin, koja će pokazati gdje je kompajler generirao poruke o greškama/upozorenjima. To pomaže kada nije očito odakle dolazi poruka.

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

  • Dodana je zastavica —usenimcache za ispis binarnih datoteka u nimcache.

  • Uklonjeni su ključevi: —oldNewlines, —laxStrings, —oldast, —oldgensym

  • Alat nimsuggest sada prikazuje ne samo preliminarno deklariranje, već i lokaciju implementacije na zahtjev def.

Osim toga, dodane su mnoge promjene u standardnoj biblioteci i mnoštvo ispravki grešaka.

Izvor: linux.org.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster