Megjelent a Nim programozási nyelv új verziója, amely idén szeptemberben ünnepli az első stabil verziója megjelenésének egy évfordulóját. stabil verziója. A szintaxisa hasonló a Pythonhoz, teljesítményében pedig szinte a C++-t idézi. A következő forrásokból merít: GYIK a nyelv sok tekintetben a következőkből építkezik (fontság szerint rangsorolva): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.
Mindenhol működik, köszönhetően a C/C++/Objective-C/JS nyelvekre való fordítás lehetőségének. Támogatja makrókat, OOP-t, generikusokat, kivételkezelés, a kód forró cseréjét és még sok mást. Licenc: MIT.
A legfontosabb változások:
-
Megjelent egy új ORC szemétgyűjtő, amely az ARC algoritmusát használja, de különleges módon kezeli a ciklikus hivatkozásokat. Az opciók között aktiválható a —gc:orc. Az ARC/ORC különbségeiről nagyszerű cikk található.
Hozzáadva a funkciók szigorú definíciós módja, amely aktiválja az objektumok mutabilitásának további ellenőrzését. A pragma segítségével aktiválható {.experimental: "strictFuncs".} vagy az --experimental:strictFuncs megnyitásával.
A from kulcsszó most operátorként is használható.
Hozzáadva a .noalias pragma. Ez megfelel a C restrict kulcsszónak, hogy javítsa a hatékonyságot, amelyet ez a kifejezés nyújthat.
A konkrét figyelmeztetéseket most hibákká lehet alakítani —warningAsError[X]:on|off.
Új parancs: nim r main.nim [args…], amely lefordítja és futtatja a main.nim-t, és tartalmazza a —usenimcache-t, így az eredmény a $nimcache/main$exeExt helyre kerül, a nim c -r logikáját alkalmazva a rekonstrukció elkerülésére, ha a forráskód nem változott. Példa:
nim r compiler/nim.nim —help # első alkalommal lefordítva
echo ‘import os; echo getCurrentCompilerExe()’ | nim r — # ez is működik
nim r compiler/nim.nim —fullhelp # rekonstrukció nélkül
nim r —nimcache:/tmp main # a bináris mentve a /tmp/main helyre
Hozzáadva egy új tipp —hint:msgOrigin, amely megmutatja, hol generálta a fordító a hibákat/figyelmeztetéseket. Ez segít, amikor nem világos, honnan jött az üzenet.
Hozzáadva a —backend:js|c|cpp|objc (vagy -b:js stb.) jelző a backend váltásához.
Hozzáadva a —usenimcache jelző a binárisok nimcache-be való mentéséhez.
Eldobva a kulcsok: —oldNewlines, —laxStrings, —oldast, —oldgensym.
A nimsuggest eszköz most már nemcsak a deklarációt, hanem a megvalósítás elhelyezését is mutatja a def kérésre.
Emellett számos változás történt a standard könyvtárban és sok hiba javítva lett.
Forrás: linux.org.ru
