Новости Python 3.15 почти собран. Что разработчики добавили перед заморозкой функций

NewsMaker

I'm just a script
Премиум
27,580
46
8 Ноя 2022
Финальный релиз Python 3.15 запланирован на 1 октября.


9bqsem0nnxo5yhkbu96y356ryg0jafxr.jpg

Вышла первая бета Python 3.15. Финальный релиз запланирован на 1 октября, а после первой беты команда разработки уже не добавляет в язык новые функции. Значит, главные изменения будущей версии почти сформированы: Python станет быстрее запускаться, получит более удобную поддержку CPython без GIL, новый профилировщик и доработанный JIT-компилятор.

Одним из важных изменений стала стабильная ABI для сборок CPython без GIL. В Python 3.14 разработчики получили возможность запускать интерпретатор без глобальной блокировки, что улучшило параллельную работу на многоядерных процессорах. В Python 3.15 авторы C-расширений смогут собирать модули сразу для нескольких минорных версий Python в режиме без GIL. Команда предупреждает , что при таком подходе доступна только часть полного CPython API, но поддержка расширений всё равно станет проще: разработчикам не придётся пересобирать пакеты под каждый небольшой релиз.

Python 3.15 также получил явные отложенные импорты. Новый синтаксис <span class="font-RobotoMono">lazy import json</span> позволяет загрузить модуль только при первом реальном обращении. Для больших приложений такой подход может ускорить запуск: Python не будет сразу загружать и компилировать в байткод всё, что указано в импортах. Раньше похожего поведения добивались обходными способами, но подобные решения часто портили читаемость кода.

Ещё одно заметное новшество — профилировщик Tachyon. Инструмент собирает стеки вызовов у работающих процессов и не встраивается в каждый вызов функции. Документация описывает подход как почти бесплатный по накладным расходам: Tachyon может работать с частотой выборки до 1 000 000 Гц и подходит для поиска проблем производительности даже на рабочих системах.

В Python 3.15 кодировкой текста по умолчанию стал UTF-8. Разработчики всё равно советуют явно указывать кодировку там, где важна максимальная совместимость, но новое поведение должно сократить число странных ошибок при работе с файлами и текстом на разных платформах.

Команда CPython продолжила ускорять интерпретатор. Экспериментальный JIT-компилятор появился ещё в Python 3.14, но тогда разработчики не советовали использовать механизм в рабочих проектах: часть программ могла работать медленнее обычного интерпретатора. В Python 3.15 JIT заметно доработали. По текущим данным команды, средний прирост производительности составляет 8-9% на x86-64 Linux и 12-13% на macOS с Apple silicon. В отдельных случаях код всё ещё может замедляться до 15%, а цифры могут измениться до финального релиза.

Не все эксперименты добрались до новой версии. Инкрементальный сборщик мусора, выпущенный в Python 3.14, убрали после сообщений об утечках памяти. Механизм должен был повышать производительность за счёт более редкого освобождения памяти, но разработчики откатили изменение в Python 3.14.5. Команда CPython допустила возвращение идеи в Python 3.16, но только после полноценного обсуждения через обычный процесс PEP.

Полный список изменений Python 3.15 опубликован в документации проекта.
 
Источник новости
www.securitylab.ru

Похожие темы