Nim tizim dasturlash tilining yangi versiyasi chiqdi. U 1.0 versiyasi bilan qisman nomuvofiqlikka ega, masalan, qattiqroq turdagi konvertatsiya tufayli. Ammo bu holda -useVersion:1.0 bayrog'i mavjud.
Asosiy yangilik -gc: arc opsiyasi tomonidan yoqilgan yangi axlat yig'uvchisidir. Til muallifi Andreas Rampf ARC ning afzalliklari haqida batafsil maqola yozmoqchi, ammo hozircha u sizni o'qishga taklif qiladi. FOSDEMdagi faoliyati bilan, bu benchmark natijalarini ko'rsatadi.
- Endi kompilyator ishlab chiqarilgan montaj kodini yanada qulayroq tekshirish uchun --asm variantini qo'llab-quvvatlaydi.
- Align pragmasi ob'ekt o'zgaruvchilari va maydonlarida ishlatilishi mumkin, bu C/C++ da alignalarga o'xshaydi.
- =sink operatori endi ixtiyoriy. Endi kompilyator ob'ektlarni samarali harakatlantirish uchun =destroy va copyMem kombinatsiyasidan foydalanishi mumkin.
- Belgilanmagan butun sonlarga o'tkazish ish vaqtida tekshirilmaydi. Tafsilotlar https://github.com/nim-lang/RFCs/issues/175
- lvalue uchun yangi sintaksis: var b {.byaddr.} = expr, import std/decls orqali ulangan
- Kompilyator IndexError yoki OverflowError kabi ish vaqti xatolarini sinash orqali aniqlab bo'lmaydigan halokatli xatolarga aylantiradigan yangi -panics:on kalitini qo'llab-quvvatlaydi. Bu ish vaqti samaradorligini va dastur hajmini oshirishi mumkin.
- Yaratilgan JS kodi bo'shliqlar va yorliqlar o'rniga faqat bo'shliqlardan foydalanadi.
- Kompilyator joriy Nim modulidan yaratilgan C(++) fayli uchun maxsus C(++) backend opsiyalarini boshqarish uchun ishlatilishi mumkin boβlgan .localPassc pragmasini qoβshimcha qoβllab-quvvatladi.
- Nimpretty endi chekinish uchun salbiy argumentni qabul qilmaydi, chunki bu fayllarni buzish edi.
- Import shakar orqali ulangan yangi makrolar qo'shildi (yig'ish, nusxalash, qo'lga olish).
Bundan tashqari, standart kutubxonaga ko'plab o'zgarishlar kiritildi va ko'plab xatolar tuzatildi.
Manba: linux.org.ru