Nim tizimlari dasturlash tilining yangi versiyasi joriy yilning sentyabr oyida o'zining bir yilligini nishonlash bilan chiqdi. birinchi barqaror versiyaTil sintaksis bo'yicha Python tiliga o'xshaydi va ishlashda 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-ga kompilyatsiya qilish qobiliyati tufayli hamma joyda ishlaydi. Qo'llab-quvvatlaydi makroslar, OOP, jenerikler, istisnolar, issiq kod almashinuvi va yana ko'p narsalar. Litsenziya: MIT.
Eng muhim o'zgarishlar:
-
Yangi axlat yig'uvchi ORC qo'shildi. U ARC algoritmidan foydalanadi, lekin aylanma murojaatlarni maxsus usulda boshqaradi. Uni --gc:orc opsiyasi bilan yoqish mumkin. ARC/ORC farqlari Ajoyib maqola bor.
Ob'ektning o'zgaruvchanligini qo'shimcha tekshirish imkonini beruvchi qat'iy funksiya ta'riflari rejimi qo'shildi. {.experimental: "strictFuncs".} pragmasi yoki --experimental:strictFuncs tugmasi orqali yoqilgan.
From kalit so'zidan endi operator sifatida foydalanish mumkin.
.noalias pragmasi qo'shildi. U ushbu kalit so'zni taqdim etishi mumkin bo'lgan samaradorlikni oshirish uchun C cheklangan 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, shunda natija $nimcache/main$exeExt-da saqlanadi, manbalar o'zgarmaganida qayta kompilyatsiya qilishni oldini olish uchun nim c -r bilan bir xil mantiqdan foydalanadi. 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 kompilyatsiya qilmasdan
nim r --nimcache:/tmp main # ikkilik fayl /tmp/main-ga saqlanadi
Yangi maslahat qo'shildi, hint:msgOrigin, kompilyator xato/ogohlantirish xabarlarini qayerda yaratganini ko'rsatadi. Bu xabarning kelib chiqishi aniq bo'lmaganda foydalidir.
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.
O'chirilgan kalitlar: --oldNewlines, --laxStrings, --oldast, --oldgensym
Nimsuggest yordam dasturi endi nafaqat oldinga siljish deklaratsiyasini, balki def so'rovi uchun amalga oshirish joyini ham ko'rsatadi.
Bundan tashqari, standart kutubxonaga ko'plab o'zgarishlar kiritildi va ko'plab xatolar tuzatildi.
Manba: linux.org.ru
