Rhyddhau iaith raglennu Nim 1.4.0

Mae fersiwn newydd o iaith raglennu system Nim wedi'i rhyddhau, a ddathlodd fis Medi eleni ei phen-blwydd yn un flwyddyn. fersiwn sefydlog gyntaf. Mae'r iaith yn debyg mewn cystrawen i Python, a bron fel C++ mewn perfformiad. Yn Γ΄l Cwestiynau Cyffredin Mae'r iaith yn benthyca'n drwm oddi wrth (yn nhrefn cyfraniad): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Yn gweithio ym mhobman diolch i'r gallu i lunio C/C++/Objective-C/JS. Mae'n cefnogi macros, OOP, generig, eithriadau, cyfnewid cod poeth a llawer mwy. Trwydded: MIT.

Y newidiadau mwyaf arwyddocaol:

  • Mae yna gasglwr sbwriel ORC newydd sy'n defnyddio'r algorithm gan ARC, ond ar yr un pryd yn trin cyfeiriadau cylchol mewn ffordd arbennig. Wedi'i alluogi gan yr opsiwn -gc: orc. Am y gwahaniaethau ARC/ORC mae erthygl wych.

  • Mae modd ar gyfer diffiniadau swyddogaeth llym wedi'i ychwanegu, sy'n galluogi gwiriad ychwanegol ar gyfer mutability gwrthrych. Wedi'i actifadu trwy'r pragma {.experimental: "strictFuncs".} neu drwy'r allwedd --experimental:strictFuncs.

  • Bellach gellir defnyddio'r allweddair o fel gweithredwr.

  • Ychwanegwyd .noalias pragma. Mae'n mapio i'r allweddair cyfyngu C i gynyddu'r effeithlonrwydd y gall yr allweddair ei ddarparu.

  • Bellach gellir troi rhybuddion penodol yn wallau trwy --warningAsError[X]:on|off.

  • Gorchymyn newydd: nim r main.nim [args...], sy'n llunio ac yn rhedeg main.nim, ac yn cynnwys --usenimcache fel bod y canlyniad yn cael ei storio yn $nimcache/main$exeExt, gan ddefnyddio'r un rhesymeg Γ’ nim c - r cael gwared ar ail-grynhoi pan nad yw'r ffynonellau wedi newid. Enghraifft:

nim r compiler/nim.nim --help # wedi'i lunio am y tro cyntaf
adlais 'mewnforio os; adlais getCurrentCompilerExe()' | nim r -# mae hwn yn gweithio hefyd
nim r compiler/nim.nim --fullhelp # heb ail-grynhoi
nim r β€”nimcache:/tmp prif # deuaidd wedi'i gadw yn /tmp/main

  • Ychwanegwyd awgrym newydd -hint:msgOrigin, a fydd yn dangos lle cynhyrchodd y casglwr negeseuon gwall / rhybudd. Mae hyn yn helpu pan nad yw'n amlwg o ble y daeth y neges.

  • Ychwanegwyd baner β€”backend:js|c|cpp|objc (neu -b:js, ac ati) i newid y pen Γ΄l.

  • Ychwanegwyd --usenimcache baner i allbwn deuaidd i nimcache.

  • Tynnwyd allweddi: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • Mae'r cyfleustodau nimsuggest bellach yn dangos nid yn unig y rhag-ddatganiad, ond hefyd y lleoliad gweithredu ar gyfer cais def.

Yn ogystal, mae llawer o newidiadau wedi'u hychwanegu at y llyfrgell safonol a llawer o atgyweiriadau i fygiau.

Ffynhonnell: linux.org.ru