Python 3.15 добрался до rc1: ленивые импорты, frozendict и UTF-8 по умолчанию
4 августа вышел первый релиз-кандидат. Финал ожидается в октябре, так что смотреть, что придётся чинить, стоит уже сейчас. Самое заметное:
— PEP 810, ленивые импорты. Новый синтаксис
— PEP 686, UTF-8 по умолчанию. Кодировка для I/O больше не зависит от системной локали. Откатить можно через
— PEP 814, встроенный
— PEP 798, распаковка в comprehensions.
— PEP 799, семплирующий профайлер Tachyon прямо в стандартной библиотеке. Другой класс инструмента, чем cProfile: тот инструментирует каждый вызов и искажает картину на горячем коде, семплирующий периодически снимает стек и почти не мешает.
— JIT прибавил 6–7% среднего геометрического на x86-64 Linux и 12–13% на AArch64 macOS.
Плюс по мелочи: sentinel из PEP 661, TypedDict с типизированными extra-полями (PEP 728), TypeForm (PEP 747) и более внятные подсказки в AttributeError.
Полный список — в whatsnew, там же примеры кода и раздел с несовместимостями.
#python315 #cpython
4 августа вышел первый релиз-кандидат. Финал ожидается в октябре, так что смотреть, что придётся чинить, стоит уже сейчас. Самое заметное:
— PEP 810, ленивые импорты. Новый синтаксис
lazy import json и lazy from json import dumps. Модуль не грузится, пока имя реально не тронули. Строго opt-in: меняется поведение только помеченных строк. Главные бенефициары — CLI-утилиты и тест-сьюты с тяжёлым деревом зависимостей.— PEP 686, UTF-8 по умолчанию. Кодировка для I/O больше не зависит от системной локали. Откатить можно через
PYTHONUTF8=0 или -X utf8=0 — и вот это стоит проверить заранее, если у вас Windows и legacy-файлы в cp1251.— PEP 814, встроенный
frozendict. Наконец-то неизменяемый словарь в ядре, а не в трёх конкурирующих пакетах на PyPI.— PEP 798, распаковка в comprehensions.
[*L for L in lists] для плоского списка, {**d for d in dicts} для слияния словарей — синтаксическая дыра, которая раздражала лет десять.— PEP 799, семплирующий профайлер Tachyon прямо в стандартной библиотеке. Другой класс инструмента, чем cProfile: тот инструментирует каждый вызов и искажает картину на горячем коде, семплирующий периодически снимает стек и почти не мешает.
— JIT прибавил 6–7% среднего геометрического на x86-64 Linux и 12–13% на AArch64 macOS.
Плюс по мелочи: sentinel из PEP 661, TypedDict с типизированными extra-полями (PEP 728), TypeForm (PEP 747) и более внятные подсказки в AttributeError.
Полный список — в whatsnew, там же примеры кода и раздел с несовместимостями.
#python315 #cpython
Python documentation
What’s new in Python 3.15
Editor, Hugo van Kemenade,. This article explains the new features in Python 3.15, compared to 3.14. For full details, see the changelog. Summary – Release highlights: PEP 810: Explicit lazy import...
🔥3
CPython официально поддерживает RISC-V как платформу третьего уровня
Работа шла несколько месяцев, и теперь RISC-V официально поддержан в CPython как tier 3. Для питониста это означает, что сборки под эту архитектуру перестали быть самодеятельностью и попали в зону ответственности проекта.
RISC-V это открытая система команд: в отличие от x86 и ARM, она развивается как открытый стандарт, и реализовать её может кто угодно. Экосистема за последние годы выросла заметно.
Третий уровень означает поддержку без гарантий на каждый релиз: сборка проверяется, но падение на этой платформе не блокирует выпуск. Для продакшена на RISC-V это ещё не зелёный свет, а сигнал, что можно начинать проверять свои колёса.
#cpython
Работа шла несколько месяцев, и теперь RISC-V официально поддержан в CPython как tier 3. Для питониста это означает, что сборки под эту архитектуру перестали быть самодеятельностью и попали в зону ответственности проекта.
RISC-V это открытая система команд: в отличие от x86 и ARM, она развивается как открытый стандарт, и реализовать её может кто угодно. Экосистема за последние годы выросла заметно.
Третий уровень означает поддержку без гарантий на каждый релиз: сборка проверяется, но падение на этой платформе не блокирует выпуск. Для продакшена на RISC-V это ещё не зелёный свет, а сигнал, что можно начинать проверять свои колёса.
#cpython
Python Insider
RISC-V is now officially supported by CPython! | Python Insider
I’m happy to announce that RISC-V platforms are now officially supported by CPython. 🎉 🚀
JIT в CPython перестанет быть экспериментом, если обгонит free-threaded интерпретатор на 20%
JIT лежит в main с 3.13, и включать его до сих пор незачем. В 3.15 он даёт 4–12% ускорения (среднее геометрическое по платформам Tier 1), отдаёт кадры, которые нативные отладчики разматывают в нормальный стек, и занимает меньше памяти под сгенерированный код, чем в 3.14.
PEP 836 называет цену выхода из статуса «экспериментальный»: к первой бете сборка с JIT и free-threading должна обойти free-threaded интерпретатор без JIT минимум на 20% по среднему геометрическому на pyperformance. Плюс совместимость, инструменты, дистрибуция и модель поддержки.
То есть JIT и free-threading перестают быть двумя отдельными экспериментами, их сводят в одну цель. Прогнать свои бенчмарки на сборке с JIT стоит сейчас, пока цифры в PEP обсуждаются.
#cpython
JIT лежит в main с 3.13, и включать его до сих пор незачем. В 3.15 он даёт 4–12% ускорения (среднее геометрическое по платформам Tier 1), отдаёт кадры, которые нативные отладчики разматывают в нормальный стек, и занимает меньше памяти под сгенерированный код, чем в 3.14.
PEP 836 называет цену выхода из статуса «экспериментальный»: к первой бете сборка с JIT и free-threading должна обойти free-threaded интерпретатор без JIT минимум на 20% по среднему геометрическому на pyperformance. Плюс совместимость, инструменты, дистрибуция и модель поддержки.
То есть JIT и free-threading перестают быть двумя отдельными экспериментами, их сводят в одну цель. Прогнать свои бенчмарки на сборке с JIT стоит сейчас, пока цифры в PEP обсуждаются.
#cpython
❤1😁1