Масштаб обновления
Python 3.15.0 официально доступен для загрузки. Это крупное обновление, в которое вошли 5 643 коммита от 1 012 разработчиков. Релиз привносит значительные оптимизации производительности, новые встроенные типы и изменения в системной конфигурации, делая язык быстрее и безопаснее.
Производительность и JIT
Экспериментальный JIT-компилятор получил серьезное обновление. В бенчмарках зафиксирован рост скорости: на x86-64 Linux прирост составляет 7–8% (геометрическое среднее), а на AArch64 macOS — 11–12% по сравнению с интерпретатором с хвостовой рекурсией. Официальные бинарные файлы для Windows теперь используют интерпретатор с хвостовой рекурсией, а для macOS поддержка free-threading (свободного от глобальной блокировки интерпретатора) включена по умолчанию.
Ключевые нововведения
Среди главных изменений — переход на UTF-8 как кодировку по умолчанию (PEP 686), что упрощает работу с международными символами, и новые встроенные типы. Ниже приведена таблица основных новшеств:
| Функция / PEP | Описание |
|---|---|
| PEP 686 | UTF-8 как кодировка по умолчанию для всей системы |
| PEP 814 | Добавлен встроенный тип frozendict (неизменяемый словарь) |
| PEP 661 | Добавлен встроенный тип sentinel |
| PEP 798 | Разворачивание (unpacking) в генераторах |
| PEP 810 | Явные ленивые импорты для ускорения старта |
| PEP 728 | TypedDict с типизированными дополнительными элементами |
Профилирование и безопасность
Появился выделанный пакет для профилирования (PEP 799) с инструментом Tachyon — статистическим профайлером высокой частоты. Также улучшены сообщения об ошибках и добавлена защита от финализации в C API (PEP 788). Для разработчиков системных инструментов фрейм-поинтеры теперь включены по умолчанию (PEP 831).
Важное предупреждение для macOS
Пользователи macOS 27.0 должны быть осторожны: приложения, использующие tkinter или IDLE, могут зависать при открытии диалоговых окон из-за изменений в ОС. Рекомендуется отложить обновление macOS или проверить совместимость ваших рабочих процессов. Проблема отслеживается в issue #158053.
Как отметить релиз
Для празднования выхода версии Barry Warsaw выпустил текстовое приключение "whatsnewt". Это игра, где нужно решать головоломки, используя реальные функции Python 3.15. Запустить её можно командой: uvx --python 3.15 whatsnewt.
Источник: Python ↗
