Megjelent a Nim rendszerprogramozási nyelv új verziója. Részleges inkompatibilitása van az 1.0-s verzióval, például az erősebb típusátalakítás miatt. De ebben az esetben van egy -useVersion:1.0 jelző.
A fő újítás egy új szemétgyűjtő, amelyet a --gc:arc opció engedélyez. A nyelv szerzője, Andreas Rumpf részletes cikket fog írni az ARC előnyeiről, de egyelőre azt javasolja, hogy olvassa el. FOSDEM-beszédével, amely a benchmark eredményeket mutatja.
- A fordító mostantól támogatja a --asm opciót, hogy megkönnyítse az elkészített assembler kód vizsgálatát.
- Az igazítási pragma objektumváltozókon és mezőkön használható, hasonlóan a C/C++ alignákhoz.
- A =sink operátor most nem kötelező. A fordító mostantól használhatja a =destroy és a copyMem kombinációját az objektumok hatékony mozgatásához.
- Az előjel nélküli egész számokká konvertálást a rendszer nem ellenőrzi futás közben. Részletek benne https://github.com/nim-lang/RFCs/issues/175
- Az lvalue új szintaxisa: var b {.byaddr.} = expr, az import std/decls-en keresztül
- A fordító támogatja az új --panics:on opciót, amely a futásidejű hibákat, mint például az IndexError vagy OverflowError végzetes hibákká változtatja, amelyeket egy próbálkozással nem lehet elkapni. Ez javíthatja a futási idő hatékonyságát és a program méretét.
- Az előállított JS-kód csak szóközöket használ a szóközök és tabulátorok halmaza helyett.
- Hozzáadtuk a fordítóhoz a .localPassc pragma támogatását, amellyel speciális C(++) háttérbeállításokat kezelhetünk az aktuális Nim modulból generált C(++) fájlhoz.
- A Nimpretty már nem fogadja el a negatív érveket a behúzás mellett, mivel ez megszakítaná a fájlokat.
- Új makrók hozzáadva (gyűjtés, másolás, rögzítés) az importcukoron keresztül csatlakoztatva.
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