Nim тутумунун программалоо тилинин жаңы версиясы жарыкка чыкты, ал быйыл сентябрда өзүнүн бир жылдыгын белгиледи. биринчи туруктуу версия. Тили синтаксиси боюнча Python тилине окшош жана аткаруу жагынан дээрлик C++ сыяктуу. Ылайык FAQ Тил көп түрдө (салым катары): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon тилдеринен алынган.
C/C++/Objective-C/JSде компиляциялоо мүмкүнчүлүгүнүн аркасында бардык жерде иштейт. Ал колдойт макрос, OOP, генерик, бөтөнчөлүктөрү, ысык код алмашуу жана башка көптөгөн нерселер. Лицензия: MIT.
Эң маанилүү өзгөрүүлөр:
-
ARC алгоритмин колдонгон жаңы ORC таштанды жыйноочу бар, бирок ошол эле учурда тегерек шилтемелерди өзгөчө ыкма менен иштетет. -gc:orc опциясы менен иштетилген. ARC/ORC айырмачылыктары жөнүндө сонун макала бар.
-
Функциянын катаал аныктамалары үчүн режим кошулду, ал объекттин өзгөрүшүн кошумча текшерүүгө мүмкүндүк берет. {.experimental: "strictFuncs".} прагмасы же --experimental:strictFuncs ачкычы аркылуу жандырылды.
-
From ачкыч сөзүн эми оператор катары колдонсо болот.
-
.noalias прагмасы кошулду. Ал ачкыч сөз бере турган эффективдүүлүктү жогорулатуу үчүн C чектөө ачкыч сөзүнө карта түзөт.
-
Конкреттүү эскертүүлөрдү эми --warningAsError[X]:on|off аркылуу катага айландырса болот.
-
Жаңы буйрук: nim r main.nim [args...], ал main.nim түзүүчү жана иштетет жана --usenimcache камтыйт, натыйжада $nimcache/main$exeExtде сакталат, nim c менен бирдей логиканы колдонуу менен - r булактары өзгөрбөгөндө кайра компиляциядан кутулуу үчүн. Мисал:
nim r compiler/nim.nim --help # биринчи жолу түзүлдү
echo 'import os; echo getCurrentCompilerExe()' | nim r - # бул да иштейт
nim r compiler/nim.nim --fullhelp # кайра компиляциясыз
nim r —nimcache:/tmp main # бинардык /tmp/main ичинде сакталган
-
Жаңы кыйытма -hint: msgOrigin кошулду, анда компилятор ката/эскертүү билдирүүлөрүн кайдан жаратканын көрсөтөт. Бул кабардын кайдан келгени түшүнүксүз болгондо жардам берет.
-
Кошулган желек —backend:js|c|cpp|objc (же -b:js, ж.б.).
-
Nimcache'ге бинардык файлдарды чыгаруу үчүн --usenimcache желеги кошулду.
-
Ачкычтар алынып салынды: --oldNewlines, --laxStrings, --oldast, --oldgensym
-
nimsuggest утилитасы азыр алдын ала декларацияны гана эмес, ошондой эле def өтүнүчүн ишке ашыруу ордун көрсөтөт.
Мындан тышкары, стандарттык китепканага көптөгөн өзгөртүүлөр кошулду жана көптөгөн мүчүлүштүктөр оңдолду.
Source: linux.org.ru