Ilmus uus versioon sĂŒsteemkeelest Nim, mis tĂ€itub septembris aastaga alates esimesest stabiilsest versioonist. Esimesest stabiilsest versioonist. SĂŒnataks on keel sarnane Pythonile, kuid tootlikkuselt peaaegu C++ tasemel. Vastavalt KKK kae keel laenab palju (jĂ€rgides mĂ”ju jĂ€rjekorda): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.
Töötab igal pool tĂ€nu vĂ”imalusele kompileerida C/C++/Objective-C/JS keeleks. Toetatakse makrosid, OOP, geenereid, erandid, kuuma koodi vahetust ja palju muud. Litsents â MIT.
Olulisemad muudatused:
-
Ilmus uus prĂŒgikogu ORC, mis kasutab algoritmi ARC-st, kuid töötleb tsĂŒklilisi viiteid eriliselt. Aktiivne -gc:orc valiku kaudu. ARC/ORC erinevustest on suurepĂ€rane artikkel.
Lisatud on rangete funktsioonide mÀÀratlemise reĆŸiim, kus lĂŒlitatakse sisse tĂ€iendav kontroll objektide muutumatuse ĂŒle. Aktiveeritakse pragma {.experimental: "strictFuncs".} vĂ”i vĂ”tme kaudu âexperimental:strictFuncs.
Kohustuslik sĂ”na from vĂ”ib nĂŒĂŒd olla kasutatud operaatorina.
Lisatud pragma .noalias. See vastab C'i vÔtmesÔnale restrict, et suurendada tÔhusust, mida see sÔna vÔib pakkuda.
Konkreetseid hoiatuseid saab nĂŒĂŒd muuta vigadeks, kasutades âwarningAsError[X]:on|off.
Uus kĂ€sk: nim r main.nim [argsâŠ], mis kompileerib ja kĂ€ivitab main.nim, ning kaasab âusenimcache, nii et tulemus salvestatakse $nimcache/main$exeExt, kasutades sama loogikat nagu nim c -r, et vĂ€ltida uuesti kompileerimist, kui algfailid ei ole muutunud. NĂ€ide:
nim r compiler/nim.nim âhelp # kompileeritud esmakordselt
echo âimport os; echo getCurrentCompilerExe()â | nim r â # see töötab ka
nim r compiler/nim.nim âfullhelp # ilma uuesti kompileerimiseta
nim r ânimcache:/tmp main # binaarfail salvestatud /tmp/main
Lisatud uus vihje âhint:msgOrigin, mis nĂ€itab, kust tĂ”i kompilaator veateateid/hoiatuseid. See aitab, kui ei ole selge, kust sĂ”num pĂ€rineb.
Lisatud lipp âbackend:js|c|cpp|objc (vĂ”i -b:js jne) bĂ€ndide vahetamiseks.
Lisatud lipp âusenimcache binaarfailide vĂ€ljundamiseks nimcache'i.
Eemaldatud vĂ”tmed: âoldNewlines, âlaxStrings, âoldast, âoldgensym
Utiliit nimsuggest nĂ€itab nĂŒĂŒd mitte ainult eelnevat deklaratsiooni, vaid ka rakenduse asukohta vastuseks def.
Lisaks on tehtud palju muudatusi standardraamatukogus ja hulgaliselt vigade parandusi.
Allikas: linux.org.ru
