18.01.2022

Выпуск Nuitka 0.6.17, компилятора для языка Python

Доступен выпуск проекта Nuitka 0.6.17, развивающего компилятор для трансляции скриптов на языке Python в представление на языке C++, которое затем можно скомпилировать в исполняемый файл, использующий libpython для обеспечения максимальной совместимости с CPython (используются штатные средства CPython для управления объектами). Обеспечена полная совместимость с актуальными выпусками Python 2.6, 2.7, 3.3 — 3.9. По сравнению с CPython скомпилированные скрипты демонстрируют в тестах pystone повышение производительности на 335%. Код проекта распространяется под лицензией Apache.

В новой версии добавлена экспериментальная поддержка оптимизации на основе результатов профилирования кода (PGO — Profile-guided optimization), позволяющей учитывать особенности, определяемые во время выполнения программы. Оптимизация пока применима только к коду, компилируемому при помощи GCC. Для плагинов предоставлена возможность запроса ресурсов во время компиляции (pkg_resources.require). Значительно расширены возможности плагина anti-bloat, который теперь может применяться для уменьшения числа пакетов при использовании библиотек numpy, scipy, skimage, pywt и matplotlib, в том числе через исключение лишних функций и подстановку необходимого кода функций на этапе парсинга. Проведена оптимизация кода, связанного с многопоточностью, созданием классов, проверкой атрибутов и вызовом методов. Ускорено выполнение операций с типами bytes, str и list. Источник.