https://www.python.org/downloads/release/python-3150/
лор по багам :
- (что-то обQtшное) - Python 3.15 (комментарий)
9 дней … десять двадцать
Состоялся релиз Python 3.15.0: Главные новшества и прирост скорости
Спустя год разработки команда core-разработчиков представила релиз Python 3.15.0. Изначально выпуск планировался на 1 октября, но из-за критических регрессий в механизме ленивого импорта релиз-менеджеры экстренно выкатили RC3, сдвинув финальный дедлайн на неделю.
В общей сложности в ветку было влито 5643 коммита от 1012 участников сообщества. Одним из ключевых контрибьюторов версии стал наш соотечественник Никита Соболев, занявший первое место в недавнем конкурсе «Код логики» за вклад в развитие CPython.
🚀 Ключевые нововведения Python 3.15
- Явные ленивые импорты (PEP 810): Появилось новое ключевое слово
lazy. Оно позволяет объявлять импорты в начале файла, но фактически загружать модули только в момент первого обращения. Это значительно ускоряет время запуска CLI-утилит и тяжелых приложений. - Встроенный тип
frozendict(PEP 814): Долгожданный неизменяемый и хешируемый аналог обычного словаря. Его можно использовать в качестве ключей для других словарей или для безопасного хранения конфигураций. - Встроенный тип
sentinel(PEP 661): Предназначен для создания уникальных сигнальных объектов (взамен старого трюка сobject()). Такие объекты корректно проходят проверку типов и имеют понятное строковое представление. - Кодировка UTF-8 по умолчанию (PEP 686): Python больше не пытается определять кодировку на основе системных локалей. Функция
open()теперь всегда использует UTF-8 по умолчанию, что решает многолетние проблемы кроссплатформенности. - Распаковка в генераторах (PEP 798): Добавлена поддержка синтаксиса распаковки прямо внутри comprehensions (например,
[*a for a in matrix]), что упрощает сглаживание списков без использованияitertools.chain. - Новый сэмплирующий профилировщик Tachyon (PEP 799): В библиотеку встроен пакет
profiling.sampling. Статистический профилировщик Tachyon подключается к запущенному процессу и делает снимки производительности почти с нулевыми накладными расходами, в отличие от замедляющего кодcProfile.
Основные изменения:
- PEP 810: Явные ленивые импорты. Добавлено новое ключевое слово
lazy. С его помощью модули можно декларировать в начале файла, но реальная загрузка в память и выполнение байт-кода будут происходить только при первом обращении к объектам. Фича призвана сократить время холодного старта тяжелых CLI-утилит и веб-фреймворков. - PEP 814: Встроенный тип
frozendict. Наконец-то в stdlib завезли из коробки полноценный неизменяемый словарь. Объект является хешируемым, что позволяет использовать его в качестве ключей для другихdictили элементовset. - PEP 661: Встроенный тип
sentinel. Стандартизирован механизм создания уникальных сигнальных объектов. Больше не нужно городить костыли видаsentinel = object(), которые ломали статический анализ. Новые синглтоны корректно обрабатываются тайп-чекерами (mypy, pyright) и имеют вменяемый строковый вывод. - PEP 686: UTF-8 по умолчанию. Python окончательно отказывается от попыток угадать кодировку на основе системных локалей (привет пользователям Windows). Встроенная функция
open()теперь всегда открывает файлы в UTF-8, если не указано иное. - PEP 798: Распаковка в list comprehension. Добавлен синтаксис распаковки прямо внутри генераторов списков (например,
[*item for item in matrix]). Больше не нужно импортироватьitertools.chainради базового уплощения списков. - PEP 799: Сэмплирующий профилировщик Tachyon. В стандартную библиотеку вошел модуль
profiling.sampling. В отличие от старогоcProfile, который вносил огромный overhead и искажал результаты, статистический профилировщик Tachyon работает почти с нулевыми накладными расходами, делая быстрые снимки стека запущенного процесса.
Производительность и internals:
Экспериментальный JIT-компилятор получил очередную порцию оптимизаций: прирост производительности на x86-64 (Linux) составил около 7-8%, а на архитектуре AArch64 (macOS) — до 11-12%. Для Windows-сборок компиляция теперь по умолчанию выполняется в VS 2026 с оптимизацией хвостовых вызовов (tail-calling), что дало до +20% к скорости выполнения синтетических тестов.
Стабилизирован ABI для расширений на Си с поддержкой многопоточности без GIL (свободное выполнение потоков, free-threading) — abi3t. На macOS сборки теперь идут с включенным free-threading из коробки.
⚙️ Производительность и изменения под капотом
Экспериментальный JIT-компилятор стал работать быстрее. В Linux (x86-64) он дает прирост производительности на 7–8%, а на macOS (AArch64) — на 11–12%. Официальные 64-битные сборки для Windows теперь по умолчанию используют оптимизированный интерпретатор с хвостовыми вызовами (tail-calling), собранный в VS 2026 (+15-20% скорости в тестах).
Разработчики также официально представили стабильный abi3t для расширений на Си с поддержкой свободного выполнения потоков (free-threading без GIL). На macOS сборки по умолчанию теперь устанавливаются с поддержкой free-threading.
Известные проблемы:
Разработчики предупреждают о возможных дедлоках и зависаниях GUI-приложений на базе tkinter (включая IDLE) в свежей macOS 27.0 из-за несовместимости с обновленной логикой оконного менеджера Apple. В Linux-дистрибутивах под Wayland/X11 проблем не обнаружено.
⚠️ Важное предупреждение: Разработчики предупредили пользователей macOS 27.0 о возможных зависаниях графических интерфейсов на
tkinter(включая встроенную среду IDLE) из-за внутренних изменений в логике оконной системы Apple.











