Toleo la lugha ya programu ya Nim 1.4.0

Toleo jipya la lugha ya programu ya mfumo wa Nim limetolewa, ambalo Septemba hii iliadhimisha mwaka wake mmoja. toleo la kwanza thabiti. Lugha ni sawa katika syntax na Python, na karibu kama C++ katika utendaji. Kulingana na Maswali Lugha hukopa sana kutoka (kwa mpangilio wa mchango): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Inafanya kazi kila mahali kutokana na uwezo wa kukusanya katika C/C++/Objective-C/JS. Inasaidia makro, OOP, Jenetiki, isipokuwa, kubadilishana nambari ya moto na mengi zaidi. Leseni: MIT.

Mabadiliko muhimu zaidi:

  • Kuna mtozaji mpya wa taka wa ORC ambao hutumia algorithm kutoka kwa ARC, lakini wakati huo huo hushughulikia marejeleo ya mviringo kwa njia maalum. Imewezeshwa na -gc:orc chaguo. Kuhusu tofauti za ARC/ORC kuna makala nzuri.

  • Hali ya ufafanuzi madhubuti wa utendakazi imeongezwa, ambayo huwezesha ukaguzi wa ziada wa kubadilika kwa kitu. Imewashwa kupitia pragma {.experimental: "strictFuncs".} au kupitia --experimental:strictFuncs muhimu.

  • Neno kuu kutoka sasa linaweza kutumika kama opereta.

  • Imeongezwa .noalias pragma. Huweka ramani kwa neno kuu la kuzuia C ili kuongeza ufanisi ambao neno kuu linaweza kutoa.

  • Maonyo mahususi sasa yanaweza kugeuzwa kuwa makosa kupitia --warningAsError[X]:on|off.

  • Amri mpya: nim r main.nim [args...], ambayo hukusanya na kuendesha main.nim, na inajumuisha --usenimcache ili matokeo yahifadhiwe katika $nimcache/main$exeExt, kwa kutumia mantiki sawa na nim c - r kujiondoa kutoka kwa urudishaji wakati vyanzo havijabadilika. Mfano:

nim r compiler/nim.nim --help # imeundwa kwa mara ya kwanza
echo 'kuagiza os; echo getCurrentCompilerExe()' | nim r - # hii inafanya kazi pia
nim r compiler/nim.nim --fullhelp # bila recompilation
nim r β€”nimcache:/tmp main # binary imehifadhiwa ndani /tmp/main

  • Imeongeza kidokezo kipya -hint:msgOrigin, ambacho kitaonyesha mahali ambapo mkusanyaji alitoa ujumbe wa hitilafu/onyo. Hii husaidia wakati haijulikani ambapo ujumbe ulitoka.

  • Alama iliyoongezwa -backend:js|c|cpp|objc (au -b:js, n.k.) ili kubadilisha mazingira ya nyuma.

  • Imeongeza --usenimcache bendera ili kutoa jozi kwa nimcache.

  • Vifunguo vimeondolewa: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • Huduma ya nimsuggest sasa inaonyesha sio tu tamko la awali, lakini pia eneo la utekelezaji kwa ombi la def.

Kwa kuongeza, mabadiliko mengi yameongezwa kwenye maktaba ya kawaida na marekebisho mengi ya hitilafu.

Chanzo: linux.org.ru