Nim programavimo kalbos leidimas 1.4.0

Išleista nauja Nim sistemos programavimo kalbos versija, kuri šį rugsėjį atšventė vienerių metų sukaktį. pirmoji stabili versija. Kalba sintaksė yra panaši į Python ir beveik kaip C++. Pagal Dažnai užduodami klausimai Kalba labai pasiskolinta iš (pagal indėlį): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Veikia visur dėl galimybės kompiliuoti C/C++/Objective-C/JS. Tai palaiko makrokomandas, OOP, generiniai vaistai, išimtys, karšto kodo keitimas ir daug daugiau. Licencija: MIT.

Svarbiausi pakeitimai:

  • Yra naujas ORC šiukšlių surinkėjas, kuris naudoja ARC algoritmą, bet tuo pačiu metu tvarko žiedines nuorodas ypatingu būdu. Įjungta naudojant -gc:orc parinktį. Apie ARC/ORC skirtumus yra puikus straipsnis.

  • Pridėtas griežtų funkcijų apibrėžimų režimas, kuris leidžia papildomai patikrinti objekto kintamumą. Suaktyvinama naudojant pragma {.experimental: "strictFuncs".} arba klavišu --experimental:strictFuncs.

  • Raktažodis nuo dabar gali būti naudojamas kaip operatorius.

  • Pridėta .noalias pragma. Jis susiejamas su C apribojimo raktiniu žodžiu, kad padidintų raktinio žodžio teikiamą efektyvumą.

  • Dabar konkrečius įspėjimus galima paversti klaidomis naudojant --warningAsError[X]:on|off.

  • Nauja komanda: nim r main.nim [args...], kuri kompiliuoja ir paleidžia main.nim ir apima --usenimcache, kad rezultatas būtų saugomas $nimcache/main$exeExt, naudojant tą pačią logiką kaip ir nim c - r atsikratyti iš perkompiliavimo, kai šaltiniai nepasikeitė. Pavyzdys:

nim r kompiliatorius/nim.nim --help # sudarytas pirmą kartą
echo 'importuoti os; echo getCurrentCompilerExe()' | nim r - # tai taip pat veikia
nim r kompiliatorius/nim.nim --fullhelp # be pakartotinio kompiliavimo
nim r —nimcache:/tmp main # dvejetainis failas išsaugotas /tmp/main

  • Pridėta nauja užuomina -hint:msgOrigin, kuri parodys, kur kompiliatorius sugeneravo klaidų / įspėjimų pranešimus. Tai padeda, kai neaišku, iš kur atėjo pranešimas.

  • Pridėta vėliavėlė —backend:js|c|cpp|objc (arba -b:js ir kt.), kad pakeistumėte vidinę programą.

  • Pridėta žyma --usenimcache, kad išvesties dvejetainiai failai į nimcache.

  • Pašalinti klavišai: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • „Nimsuggest“ programa dabar rodo ne tik išankstinę deklaraciją, bet ir def užklausos įgyvendinimo vietą.

Be to, į standartinę biblioteką įtraukta daug pakeitimų ir daug klaidų pataisymų.

Šaltinis: linux.org.ru