Python 3.15 ускоряет запуск и выполнение кода благодаря ленивым импортам и JIT-компилятору

Python 3.15.0

Вышел стабильный релиз Python 3.15.0 — 5 643 коммита от 1 012 участников. Главные новшества: ленивые импорты (PEP 810) для быстрого старта, экспериментальный JIT-компилятор с ускорением до 12% на AArch64 macOS, UTF-8 по умолчанию, встроенные типы sentinel и frozendict, а также профилировщик Tachyon. Официальные сборки для Windows и macOS теперь используют tail-calling интерпретатор и поддержку free-threading.

Вы просыпаетесь в Startup Foyer где-то внутри интерпретатора и пробираетесь к Release Gate. По пути вас ждут восемнадцать головоломок, и каждая из них — это реальная возможность Python 3.15, которую нужно действительно использовать.
  1. simonw

    Как мейнтейнер целой кучи open source Python-библиотек, больше всего в новом релизе Python я люблю то, что он означает прекращение поддержки более старого. В данном случае это Python 3.10... а значит, мои библиотеки, которые стремятся поддерживать все текущие версии Python, наконец-то могут начать использовать фичи из Python 3.11!

    Вот документ «что нового в Python 3.11»: https://docs.python.org/3/whatsnew/3.11.html

  2. ngoldbaum

    Моя главная фича — новый стабильный ABI «abi3t» для сборки без GIL. Хотя большую часть реализации в CPython сделал Petr Viktorin, я старался позаботиться о том, чтобы экосистема была готова. Это был полезный, но довольно сложный проект — убедиться, что всё работает. Были поздние вечера перед выпуском beta1, когда мы нашли проблему, специфичную для Windows, которую нужно было исправить.

    Я особенно горжусь тем, что проект cryptography уже выпускает единый wheel abi3.abi3t для каждой платформы на Python 3.15 или новее. Сборка с GIL и сборка без GIL теперь могут использовать один и тот же wheel, потому что PyObject стал непрозрачным.

    Если хотите узнать больше, я выступал с докладом на EuroPython в этом году про ABI Python и путь к сборке и выпуску abi3t сегодня. Смотрите https://youtu.be/An8lO29SxXE.

  3. zahlman

    Сжатый XZ архив с исходниками примерно в полтора раза больше, чем для 3.14. Что случилось?

    Edit: Копнув немного, многое в целом стало чуть больше, как и ожидалось; но заметно, что папка с документацией пополнилась двумя анимированными GIF-ками общим размером более 10MB (которые, предположительно, не сожмутся сильно даже с XZ), демонстрирующими «tachyon» (что, вероятно, относится к новому сэмплирующему профайлеру, https://docs.python.org/3.15/library/profiling.sampling.html). Похоже, это записи экрана из терминальных сессий, которые достаточно хорошо показывают, как выглядит TUI, но, вероятно, не очень информативны насчёт того, как им пользоваться. Я бы гораздо предпочёл SVG-диаграммы на основе статических скриншотов.

  4. wg0

    Это может многих раздражать, но в будущем, как я вижу, выживут только следующие языки:

    1. Typescript + Javascript

    2. Rust.

    3. Python — из-за data science и интерактивных приложений.

    По сути, всё, что можно переписать на Rust с AI или без него, будет переписано на Rust с AI или без него в ближайшее десятилетие.

    Известные случаи:

    1. Некоторые бэкенды в 37 signals с Ruby на Rust.

    2. Bun с Zig на Rust.

    3. Git в процессе перехода.

    4. Линкер Mold с C на Rust.

    5. Biome

    6. TailwindCSS CLI

    И многое-многое другое. Даже интерпретатор Python, если я не ошибаюсь, в процессе использования Rust в качестве основного языка.

    [0]. https://github.com/kevincouton/awesome-rust-migrations#1

  5. kbumsik

    > PEP 810: Явные ленивые импорты для ускорения запуска

    Да, ленивые импорты! Наконец-то!

Ещё за этот день

2026-10-09