Nuitka 1.1 versiyasi, Python tili uchun kompilyator

Nuitka 1.1 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.10 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:

  • Yaml formatida konfiguratsiyani belgilash imkoniyatlari kengaytirildi.
  • Standart kutubxonaning foydalanilmagan komponentlarini (zoneinfo, concurrent, asyncio va boshqalar) chiqarib tashlash bilan bog'liq optimallashtirishlar amalga oshirildi, bu esa natijada bajariladigan fayllar hajmini kamaytirish imkonini berdi.
  • Python 3.10 da kiritilgan “match” operatoriga asoslangan naqsh mosliklarida muqobil sintaksis (“|”) uchun qo‘shimcha qo‘llab-quvvatlash qo‘shildi.
  • Jinja2.PackageLoader bilan muvofiqligi ta'minlangan.
  • __defaults__ atributining hajmini o'zgartirish imkoniyati amalga oshirildi.
  • Importlib.metadata.distribution, importlib_metadata.distribution, importlib.metadata.metadata va importlib_metadata.metadata funksiyalari uchun qo‘shimcha qo‘llab-quvvatlandi.
  • Asosiy bajariladigan faylga qo'shimcha ikkilik fayllarni qo'shishni qo'llab-quvvatlash Onefile kompilyatsiya rejimiga qo'shildi.
  • Kompilyatsiya qilingan modullar importlib.resources.files funksiyasidan foydalanish imkoniyatini amalga oshiradi.
  • "--include-package-data" opsiyasi fayl maskalarini belgilash imkonini beradi, masalan, "--include-package-data=package_name=*.txt".
  • MacOS uchun bajariladigan fayllarni raqamli imzolashni qo'llab-quvvatlash amalga oshirildi.
  • Plaginlar uchun bajariladigan fayl funksiyalarini bekor qilish usuli taqdim etilgan.
  • Anti-bloat plaginining imkoniyatlari kengaytirildi, endi undan boy, pyrect va pytorch kutubxonalaridan foydalanganda paketlar sonini kamaytirish uchun foydalanish mumkin. Muntazam iboralarni almashtirish qoidalarida ishlatish imkoniyati amalga oshirildi.
  • Oxirgi versiyada amalga oshirilgan muhim optimallashtirishlar natijasida yuzaga kelgan regressiv o'zgarishlar hal qilindi.

Manba: opennet.ru

a Izoh qo'shish