Nuitka 4.0, Python konpiladore bat, kaleratu da. CPython JIT garapenaren aurrerapena.

Nuitka 4.0 proiektuaren bertsio bat dago eskuragarri, Python script-ak C irudikapen batera itzultzeko konpiladore bat garatzen duena, eta gero fitxategi exekutagarri batean konpilatu daiteke libpython erabiliz CPythonekin bateragarritasun handiena lortzeko (objektuak manipulatzeko CPython jatorrizko tresnak erabiliz). Python 2.6, 2.7, 3.4 - 3.13-en egungo bertsioekin bateragarritasun osoa eskaintzen du. CPythonekin alderatuta, konpilatutako scriptek % 335eko errendimendua hobetu dute pystone probetan. Proiektuaren kodea Apache lizentziapean banatzen da.

Bertsio berrian:

  • ВнСсСны измСнСния для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ совмСстимости с 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 konpiladore bat, kaleratu da. CPython JIT garapenaren aurrerapena.


Iturria: opennet.ru

Gehitu iruzkin berria