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