Vydanie programovacieho jazyka Nim 1.4.0

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