Nim программалоо тили релиз 1.4.0

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