Nuitka 2.0 versiyasi, Python tili uchun kompilyator

Nuitka 2.0 loyihasining relizi mavjud boʻlib, u Python skriptlarini C koʻrinishiga tarjima qilish uchun kompilyatorni ishlab chiqadi, soʻngra uni CPython bilan maksimal muvofiqligi uchun libpython yordamida bajariladigan faylga kompilyatsiya qilish mumkin (obʼyektlarni manipulyatsiya qilish uchun mahalliy CPython vositalaridan foydalanish). Python 2.6, 2.7, 3.3 - 3.11 ning joriy versiyalari bilan to'liq muvofiqlik ta'minlangan. CPython bilan taqqoslaganda, tuzilgan skriptlar pystone testlarida ishlashning 335% yaxshilanishini ko'rsatadi. Loyiha kodi Apache litsenziyasi ostida tarqatiladi.

Yangi versiyadagi o'zgarishlar orasida:

  • Paket konfiguratsiyasida o'zgaruvchilardan foydalanish imkoniyati qo'shildi, bu sizga kompilyatsiya vaqtida o'rnatilgan paketlardan qiymatlarni so'rash va ushbu qiymatlardan backendni aniqlash uchun foydalanish imkonini beradi. Konfiguratsiyadagi o'zgaruvchilarni qo'llab-quvvatlash sizga plaginlarni ulashni talab qiladigan ko'plab vazifalarni standart usullarda hal qilish imkonini beradi.
  • Har bir paketning konfiguratsiyasiga ta'sir qilish uchun foydalanuvchi tomonidan belgilangan parametrlar uchun qo'shimcha yordam. Parametrlarni yangi get_parameter funksiyasi yordamida o'qilishi va modullarning harakatini tanlash uchun ishlatilishi mumkin (masalan, siz Numba JIT yoki Torch JITni o'chirish uchun parametrni o'rnatishingiz mumkin).
  • Konfiguratsiyada belgilangan, lekin bir fayl rejimida qurishda bajariladigan fayldan alohida ta'minlanishi kerak bo'lgan ma'lumotlar fayli shablonlarini belgilash uchun "--include-onefile-external-data" opsiyasi qo'shildi.
  • GCCda CFI (Control Flow Integrity) himoya rejimini o'rnatish uchun "--cf-protection" opsiyasi qo'shildi, bu oddiy bajarish tartibini (nazorat oqimi) buzilishini bloklaydi.
  • Plagin yaml fayllari uchun yaxlitlikni tekshirish uchun nazorat yig'indisini yaratish imkoniyati amalga oshirildi, kelajakda ular ish vaqtini tekshirishni tashkil qilish uchun foydalanishni rejalashtirmoqda.
  • Harakatlar qatorlar bilan ajratilgan bir nechta variantni ko'rsatishga imkon beradi (yengi qator ajratuvchi sifatida ishlatiladi). Masalan: include-data-dir: | a=bc=d
  • Loop turlarini tahlil qilish amalga oshirildi, kelajakda selektiv optimallashtirishni amalga oshirish uchun foydalaniladi.
  • Birgalikda bo'lmagan va qochib ketgan o'zgaruvchilar bilan ishlashni tezlashtirish uchun optimallashtirish qo'shildi.
  • Bloatga qarshi plaginning imkoniyatlari kengaytirildi, ular endi streamlit, torch, knetworkx, distributed, skimage, bitsandbytes, tf_keras, pip, networkx va pywt kutubxonalaridan (asosan, bog'lovchi) foydalanganda paketlar sonini kamaytirish uchun ishlatilishi mumkin. to pytest, IPython, burun, triton bundan mustasno va dask).

Manba: opennet.ru

a Izoh qo'shish