Rilis proyek Nuitka 4.0 kasedhiya, ngembangake kompiler kanggo nerjemahake skrip Python menyang perwakilan C, sing banjur bisa dikompilasi dadi file eksekusi nggunakake libpython kanggo kompatibilitas maksimal karo CPython (nggunakake alat CPython asli kanggo obyek manipulasi). Nyedhiyakake kompatibilitas lengkap karo rilis saiki Python 2.6, 2.7, 3.4 - 3.13. Dibandhingake karo CPython, skrip sing disusun nuduhake peningkatan kinerja 335% ing tes pystone. Kode proyek disebarake miturut lisensi Apache.
Ing versi anyar:
- ΠΠ½Π΅ΡΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ 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%.

Source: opennet.ru
