Выпуск Nuitka 4.0, компилятора для языка Python. ΠŸΡ€ΠΎΠ³Ρ€Π΅ΡΡ развития JIT Π² CPython

Kuburitswa kweiyo Nuitka 4.0 purojekiti iripo, iyo inogadzira compiler yekushandura zvinyorwa zvePython muC inomiririra, iyo inogona kuunganidzwa kuita faira rinoshandiswa uchishandisa libpython kuti ienderane zvakanyanya neCPython (uchishandisa maturusi eCPython ekugadzirisa zvinhu). Yakapihwa kuenderana kuzere nekuburitswa kwazvino kwePython 2.6, 2.7, 3.4 - 3.13. Kuenzaniswa neCPython, zvinyorwa zvakaunganidzwa zvinoratidza 335% kuvandudzwa kwekuita mubvunzo dzepystone. Iyo kodhi yeprojekiti yakagoverwa pasi peiyo Apache rezinesi.

Mushanduro itsva:

  • ВнСсСны измСнСния для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ совмСстимости с 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


Source: opennet.ru

Voeg