Nim 1.2.0 versiyasi

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

a Izoh qo'shish