Nim programozási nyelv 1.4.0 kiadás

Megjelent a Nim rendszerprogramozási nyelv új verziója, amely idén szeptemberben ünnepelte egy éves évfordulóját. az első stabil verzió. A nyelv szintaxisában hasonló a Pythonhoz, teljesítményében pedig majdnem a C++. Alapján FAQ A nyelv sokat kölcsönöz (a hozzájárulás sorrendjében): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


A C/C++/Objective-C/JS nyelvű fordítási képességnek köszönhetően mindenhol működik. Támogatja makrók, Hopp, generikumok, kivételek, hot code csere és még sok más. Engedély: MIT.

A legjelentősebb változások:

  • Van egy új ORC szemétgyűjtő, amely az ARC algoritmusát használja, ugyanakkor speciális módon kezeli a körkörös hivatkozásokat. A -gc:orc opció engedélyezi. Az ARC/ORC különbségekről van egy remek cikk.

  • Egy mód került hozzáadásra a szigorú függvénydefiníciókhoz, amely lehetővé teszi az objektumok változékonyságának további ellenőrzését. A pragma {.experimental: "strictFuncs".} vagy az --experimental:strictFuncs kulcs segítségével aktiválható.

  • A from kulcsszó mostantól használható operátorként.

  • Hozzáadott .noalias pragma. A C restrikciós kulcsszóhoz kapcsolódik, hogy növelje a kulcsszó által nyújtott hatékonyságot.

  • A konkrét figyelmeztetések mostantól hibává alakíthatók a --warningAsError[X]:on|off segítségével.

  • Új parancs: nim r main.nim [args...], amely lefordítja és futtatja a main.nim parancsot, és tartalmazza a --usenimcache parancsot, így az eredmény a $nimcache/main$exeExt fájlban tárolódik, ugyanazt a logikát használva, mint a nim c - r megszabadulni az újrafordítástól, ha a források nem változtak. Példa:

nim r compiler/nim.nim --help # először fordítva
echo 'import os; echo getCurrentCompilerExe()' | nim r - # ez is működik
nim r compiler/nim.nim --fullhelp # újrafordítás nélkül
nim r —nimcache:/tmp main # bináris fájl a /tmp/main mappába mentve

  • Hozzáadott egy új hint -hint:msgOrigin, amely megmutatja, hogy a fordító hol generált hiba/figyelmeztető üzeneteket. Ez akkor segít, ha nem egyértelmű, honnan jött az üzenet.

  • A háttérprogram módosításához hozzáadva a —backend:js|c|cpp|objc (vagy -b:js stb.) jelzőt.

  • A --usenimcache jelző hozzáadva a nimcache kimeneti bináris fájljaihoz.

  • Eltávolított kulcsok: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • A nimsuggest segédprogram mostantól nemcsak az előzetes deklarációt, hanem a def kérés megvalósítási helyét is mutatja.

Ezen kívül számos módosítást és számos hibajavítást adtunk hozzá a szabványos könyvtárhoz.

Forrás: linux.org.ru