Випуск Nuitka 1.1, компілятор для мови Python

Доступний випуск проекту Nuitka 1.1, що розвиває компілятор для трансляції скриптів мовою Python у виставу мовою C, яку потім можна скомпілювати у виконуваний файл, що використовує libpython для забезпечення максимальної сумісності з CPython (використовуються штатні засоби CPython для управління об'єктами). Забезпечено повну сумісність з актуальними випусками Python 2.6, 2.7, 3.3 - 3.10. У порівнянні з CPython скомпіловані скрипти демонструють у тестах pystone підвищення продуктивності на 335%. Код проекту розповсюджується під ліцензією Apache.

Серед змін у новій версії:

  • Розширено можливості завдання конфігурації у форматі Yaml.
  • Внесені оптимізації, пов'язані з виключенням невикористовуваних компонентів стандартної бібліотеки (zoneinfo, concurrent, asyncio тощо), які дозволили домогтися зменшення розміру файлів, що виконуються.
  • Додано підтримку альтернативного синтаксису («|») в порівнянні зі зразком на основі оператора «match», що з'явився у гілці Python 3.10.
  • Забезпечена сумісність із jinja2.PackageLoader.
  • Реалізовано можливість зміни розміру атрибуту __defaults__.
  • Додана підтримка функцій importlib.metadata.distribution, importlib_metadata.distribution, importlib.metadata.metadata та importlib_metadata.metadata.
  • У режим компіляції в один файл (Onefile) додано підтримку включення до основного виконуваного файлу додаткових бінарних файлів.
  • У скомпілованих модулях реалізовано можливість використання функції importlib.resources.files.
  • У опції «-include-package-data» дозволено вказівку масок файлів, наприклад, «-include-package-data=package_name=*.txt».
  • Для macOS реалізовано підтримку засвідчення виконуваних файлів цифровим підписом.
  • Для плагінів надано метод для перевизначення функцій для файлу, що виконується.
  • Розширено можливості плагіна anti-bloat, який тепер може застосовуватися для зменшення кількості пакетів при використанні бібліотек rich, pyrect та pytorch. Реалізовано можливість використання регулярних виразів у правилах заміни.
  • Усунуто регресивні зміни, які стали наслідком значних оптимізацій, реалізованих у минулому випуску.

Джерело: opennet.ru

Додати коментар або відгук