Nim 1.4.0 dasturlash tilining chiqarilishi

Nim tizim dasturlash tilining yangi versiyasi chiqarildi, bu yil sentyabr oyida o'zining bir yilligini nishonladi. birinchi barqaror versiya. Til sintaksisi bo'yicha Python tiliga o'xshaydi va ishlash jihatidan deyarli C++ ga o'xshaydi. Ga binoan FAQ Til (hissa qilish tartibida) katta miqdorda qarz oladi: Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


C/C++/Objective-C/JS da kompilyatsiya qilish qobiliyati tufayli hamma joyda ishlaydi. Qo'llab-quvvatlaydi makroslar, OOP, jenerikler, istisnolar, issiq kod almashinuvi va boshqalar. Litsenziya: MIT.

Eng muhim o'zgarishlar:

  • Yangi ORC axlat yig'uvchisi mavjud bo'lib, u ARC algoritmidan foydalanadi, biroq ayni paytda aylanma murojaatlarni maxsus usulda boshqaradi. -gc:orc opsiyasi tomonidan yoqilgan. ARC/ORC farqlari haqida ajoyib maqola bor.

  • Ob'ektning o'zgaruvchanligini qo'shimcha tekshirish imkonini beruvchi qat'iy funksiya ta'riflari rejimi qo'shildi. Pragma {.experimental: "strictFuncs".} yoki --experimental:strictFuncs tugmasi orqali faollashtirilgan.

  • From kalit so'zidan endi operator sifatida foydalanish mumkin.

  • .noalias pragmasi qo'shildi. Kalit so'z berishi mumkin bo'lgan samaradorlikni oshirish uchun u C cheklovlar kalit so'ziga mos keladi.

  • Maxsus ogohlantirishlar endi --warningAsError[X]:on|off orqali xatolarga aylantirilishi mumkin.

  • Yangi buyruq: nim r main.nim [args...], u main.nim-ni kompilyatsiya qiladi va ishga tushiradi va --usenimcache-ni o'z ichiga oladi, natijada natija nim c bilan bir xil mantiqdan foydalanib, $nimcache/main$exeExt-da saqlanadi. r manbalar o'zgarmagan paytda qayta kompilyatsiya qilishdan xalos bo'lish. Misol:

nim r compiler/nim.nim --help # birinchi marta tuzilgan
echo 'import os; echo getCurrentCompilerExe()' | nim r - # bu ham ishlaydi
nim r compiler/nim.nim --fullhelp # qayta kompilyatsiyasiz
nim r β€”nimcache:/tmp main # ikkilik fayl /tmp/main da saqlangan

  • Kompilyator xato/ogohlantirish xabarlarini qayerda yaratganini ko'rsatadigan yangi -hint:msgOrigin qo'shildi. Bu xabar qaerdan kelgani aniq bo'lmaganda yordam beradi.

  • Backendni o'zgartirish uchun bayroq qo'shildi β€”backend:js|c|cpp|objc (yoki -b:js va boshqalar).

  • Ikkilik fayllarni nimcachega chiqarish uchun --usenimcache bayrog'i qo'shildi.

  • Kalitlar olib tashlandi: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • Nimsuggest yordam dasturi endi nafaqat oldindan deklaratsiyani, balki def so'rovini amalga oshirish joyini ham ko'rsatadi.

Bundan tashqari, standart kutubxonaga ko'plab o'zgarishlar kiritildi va ko'plab xatolar tuzatildi.

Manba: linux.org.ru