Выпуск 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. Реализована возможность использования регулярных выражений в правилах замены.

  • Устранены регрессивные изменения, ставшие следствием значительных оптимизаций, реализованных в прошлом выпуске.



Источник: http://www.opennet.ru/opennews/art.shtml? num=57924

© OpenNet