Κυκλοφορεί το Nuitka 4.0, ένας μεταγλωττιστής Python. Πρόοδος ανάπτυξης JIT CPython

Μια έκδοση του έργου Nuitka 4.0 είναι διαθέσιμη, αναπτύσσοντας έναν μεταγλωττιστή για τη μετάφραση σεναρίων Python σε αναπαράσταση C, η οποία στη συνέχεια μπορεί να μεταγλωττιστεί σε ένα εκτελέσιμο αρχείο χρησιμοποιώντας το libpython για μέγιστη συμβατότητα με το CPython (χρησιμοποιώντας εγγενή εργαλεία CPython για χειρισμό αντικειμένων). Παρέχεται πλήρης συμβατότητα με τις τρέχουσες εκδόσεις Python 2.6, 2.7, 3.4 - 3.13. Σε σύγκριση με το CPython, τα μεταγλωττισμένα σενάρια δείχνουν βελτίωση απόδοσης 335% στις δοκιμές pystone. Ο κώδικας του έργου διανέμεται με την άδεια Apache.

Στη νέα έκδοση:

  • Внесены изменения для улучшения совместимости с Python 3.12, 3.13 и 3.14, например, добавлена поддержка отложенной обработки аннотаций и нового синтаксиса аннотирования типов для обобщённых классов и функций.
  • Добавлена экспериментальная возможность использования компилятора Zig (zig cc) в качестве бэкенда Си-компилятора в Nuitka.
  • Добавлена предварительная поддержка LTO-оптимизаций при использовании компилятора Clang.
  • Предложен декоратор «@nuitka_ignore» для исключения компиляции функций.
  • Реализованы опции: «—project» для сборки с использованием настроек из файла pyproject.toml, «—devel-profile-compilation» для профилирования на этапе сборки, «—debug-self-forking» для отладки форк-бомб, «—include-windows-runtime-dlls» для управление включением C runtime DLL в Windows, «—qt-debug-plugins» для диагностики загрузки Qt-плагинов.
  • Добавлена поддержка актуальных версий пакетов oracledb, win32ctypes, dask, dataparser, puremagic, pygments.lexers, tomli, av, sentry_sdk, jedi, parso, line_profiler и pandas.

Дополнительно можно отметить отчёт о прогрессе развития JIT-компилятора в CPython. Разработчики поставили перед собой цель поднять производительность JIT к выпуску CPython 3.15 на 5%, а к выпуску 3.16 повысить производительность на 10% и реализовать возможность использования JIT в режиме Free-threading (без глобальной блокировки). В текущем состоянии использование JIT в альфа-сборках CPython 3.15 уже демонстрирует в среднем ускорение на 11-12% на платформе macOS AArch64 и на 5-6% на платформе x86_64 Linux по сравнению со стандартным интерпретатором. При этом в отдельных тестах при включении JIT изменение производительности варьируется от ускорения на более чем 100%, до замедления на 20%.

 Κυκλοφορεί το Nuitka 4.0, ένας μεταγλωττιστής Python. Πρόοδος ανάπτυξης JIT CPython


Πηγή: opennet.ru

Προσθέστε ένα σχόλιο