Технологии

Python 3.15 вышел: UTF-8 по умолчанию, JIT и lazy imports

В Python 3.15 ускорили экспериментальный JIT-компилятор, включили UTF-8 по умолчанию и добавили sentinel, frozendict и отложенный импорт.

Python 3.15 вышел: UTF-8 по умолчанию, JIT и lazy imports

9 октября 2026 года состоялся релиз стабильной версии Python 3.15. В новой ветке разработчики сосредоточились на ускорении запуска и выполнения программ, расширении стандартной библиотеки и развитии инструментов типизации. Среди заметных нововведений — встроенные типы sentinel и frozendict, кодировка UTF-8 по умолчанию и явный механизм отложенного импорта.

По данным команды проекта, выпуск включает изменения, реализованные в 5643 коммитах при участии 1012 разработчиков и контрибьюторов. Python 3.15 стал следующим мажорным релизом после версии 3.14, которая вышла годом ранее.

JIT стал быстрее, а запуск программ — гибче

Экспериментальный JIT-компилятор Python сохраняет статус технологии, находящейся в разработке, однако в версии 3.15 его производительность заметно выросла. В Linux на архитектуре x86-64 ожидаемый средний прирост относительно стандартного интерпретатора составляет 7–8% по геометрическому среднему.

На macOS с архитектурой AArch64 JIT, как сообщается, работает на 11–12% быстрее интерпретатора с поддержкой tail-calling. Кроме того, в языке появился явный механизм lazy imports — отложенного импорта модулей. Он позволяет не загружать зависимости до момента, когда они действительно понадобятся, и тем самым может сократить время запуска скриптов.

В Python 3.15 также появилась распаковка в генераторах и comprehensions. Кодировка UTF-8 теперь используется по умолчанию. Среди новых возможностей языка и встроенных типов — sentinel и неизменяемый словарь frozendict. Для инициализации пакетов добавлены файлы конфигурации.

Стандартная библиотека и типизация

Стандартная библиотека получила специализированный пакет для организации инструментов профилирования. В релиз также вошёл Tachyon — высокочастотный статистический сэмплирующий профилировщик.

В системе типизации появились TypedDict с типизированными дополнительными элементами, аннотирование форм типов с помощью TypeForm и поддержка непересекающихся базовых классов. Для разработчиков расширений добавлен новый C API PyBytesWriter, предназначенный для создания объектов bytes в Python.

Отдельно команда проекта отмечает стабильный ABI для сборок с поддержкой free-threading и связанный с ним C API. В процессе сборки указатели на кадры, или frame pointers, теперь включены по умолчанию — это должно упростить системный мониторинг и отладку.

Изменения в официальных сборках

Официальные 64-битные бинарные файлы Python для Windows теперь используют интерпретатор с поддержкой tail-calling. Сборки для macOS по умолчанию включают поддержку free-threading. Эти изменения рассчитаны на более широкое использование новых возможностей выполнения и наблюдения за программами.

Интерактивный обзор новинок

К релизу разработчик Barry Warsaw подготовил текстовый квест, посвящённый возможностям Python 3.15. Игрок начинает в «Фойе запуска» внутри интерпретатора и должен добраться до «Врат релиза», решив восемнадцать головоломок.

Каждая задача основана на реальной функции Python 3.15: для прохождения нужно писать и запускать код в новом интерпретаторе. В заданиях, связанных с проверкой типов, используется утилита pyrefly, добавленная в зависимости специально для этой игры. Запустить квест можно командой uvx -python 3.15 whatsnewt.

Поддержка Python 3.15 запланирована на полтора года. После этого ещё три с половиной года для ветки будут выпускаться исправления, устраняющие уязвимости.

Источник
404 Media

Читайте новые материалы журнала — свежие сюжеты каждый день.

На главную