Bola vydaná nová verzia programovacieho jazyka systému Nim, ktorý tento rok v septembri oslávil ročné výročie. prvá stabilná verzia. Jazyk je podobný v syntaxi ako Python a takmer ako C++ vo výkone. Podľa FAQ Jazyk si vo veľkej miere požičiava z (v poradí príspevku): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.
Funguje všade vďaka schopnosti kompilovať v C/C++/Objective-C/JS. Podporuje to makrá, PLO, generiká, výnimky, hot code swap a oveľa viac. Licencia: MIT.
Najvýznamnejšie zmeny:
-
Je tu nový ORC garbage collector, ktorý využíva algoritmus z ARC, no zároveň špeciálnym spôsobom spracováva kruhové referencie. Povolené voľbou -gc:orc. O rozdieloch ARC/ORC je tam super článok.
-
Bol pridaný režim pre prísne definície funkcií, ktorý umožňuje dodatočnú kontrolu premenlivosti objektu. Aktivuje sa pomocou pragmy {.experimental: "strictFuncs".} alebo pomocou kľúča --experimental:strictFuncs.
-
Kľúčové slovo from je teraz možné použiť ako operátor.
-
Pridané .noalias pragma. Mapuje sa na kľúčové slovo C obmedzenie, aby sa zvýšila účinnosť, ktorú môže kľúčové slovo poskytnúť.
-
Špecifické upozornenia je teraz možné zmeniť na chyby pomocou --warningAsError[X]:on|off.
-
Nový príkaz: nim r main.nim [args...], ktorý skompiluje a spustí main.nim a obsahuje --usenimcache, takže výsledok je uložený v $nimcache/main$exeExt s použitím rovnakej logiky ako nim c - r sa zbaviť z rekompilácie, keď sa zdroje nezmenili. Príklad:
nim r kompilátor/nim.nim --help # skompilovaný prvýkrát
echo 'import os; echo getCurrentCompilerExe()' | nim r - # to tiež funguje
nim r kompilátor/nim.nim --fullhelp # bez rekompilácie
nim r —nimcache:/tmp main # binárny súbor uložený v /tmp/main
-
Pridaný nový hint -hint:msgOrigin, ktorý ukáže, kde kompilátor vygeneroval chybové/varovné správy. To pomáha, keď nie je zrejmé, odkiaľ správa prišla.
-
Pridaný príznak —backend:js|c|cpp|objc (alebo -b:js atď.) na zmenu backendu.
-
Pridaný príznak --usenimcache na výstup binárnych súborov do nimcache.
-
Odstránené kľúče: --oldNewlines, --laxStrings, --oldast, --oldgensym
-
Pomocný program nimsuggest teraz zobrazuje nielen predbežnú deklaráciu, ale aj umiestnenie implementácie požiadavky def.
Okrem toho bolo do štandardnej knižnice pridaných veľa zmien a veľa opráv chýb.
Zdroj: linux.org.ru