После года разработки Анонсирован выход стабильной версии а также начало фазы альфа-тестирования языка программирования Python 3.12 и Python 3.13 (соответственно). Упоминается, что эта новая ветка Python 3.12 будет поддерживаться в течение полутора лет, после чего еще в течение трех с половиной лет будут генерироваться исправления для устранения уязвимостей.
Представленная новая версия Python 3.12 содержит улучшения в гибкость анализа f-строки. Теперь с этим улучшением многие ограничения можно оставить в стороне, поскольку, например, теперь вы можете содержать любое допустимое выражение в Python, включая многострочные выражения, комментарии, обратную косую черту и escape-последовательности Unicode. Кроме того, внутренние строки теперь позволяют повторно использовать одни и те же кавычки, т. е. теперь двойные кавычки можно повторно использовать внутри. без необходимости перехода на одинарные кавычки.
Например:
f"""{f'''{f'{f"{1+1}"}'}'''}"""
Теперь можно вкладывать произвольно:
f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"
Еще одно из отличительных изменений — это поддержка изолированных субинтерпретаторов и отдельных глобальных блокировок, которые повышают эффективность использования ресурсов в многоядерных системах, поскольку для разных интерпретаторов внутри процесса CPython позволяет одновременно запускать несколько интерпретаторов в процессе. В настоящее время эта функция доступна только через C-API (поддержка Python API появится в следующей основной ветке).
Помимо этого также подчеркивается, чтоПовышена информативность сообщений об ошибках. расширен диапазон исключений и даны рекомендации по устранению опечаток. Например, теперь отображаются предложения по импорту забытых модулей стандартной библиотеки и предложения по добавлению префикса «self».
Добавлена возможность использовать протокол буфера в коде Python. Классы, предоставляющие метод «__buffer__()», теперь можно использовать как типы, которые работают непосредственно с двоичными данными в памяти.
Модуль sys.monitoring предлагается для отладки и профилирования, позволяя вам отслеживать события в CPython, такие как вызовы, возвраты функций, выполнение произвольных строк кода, исключения и переходы с минимальными накладными расходами.
В интерпретаторе реализована поддержка подсистемы производительности ядра Linux., что позволяет определять имена функций Python при профилировании с помощью утилиты производительности (ранее в трассировках определялись только имена функций C).
Что касается улучшения производительности, упоминается, что оптимизация продолжается, с которым Общий прирост производительности оценивается в 5%., это тоже было добавлено экспериментальная поддержка бинарного оптимизатора BOLT в процесс сборки, увеличив производительность на 1-5%, при этом производительность пакета asyncio значительно улучшилась (некоторые тесты показывают ускорение на 75%).
Реализовано встроенное расширение списков, что ускоряет работу со списками до двух раз (для кода, активно использующего списки, тестирование показало общий прирост производительности на 11%).
Чтобы повысить безопасность, встроенные реализации Алгоритмы SHA1, SHA3, SHA2-384, SHA2-512 и MD5 в hashlib заменены. с формально проверенными опциями из проекта HACL* (встроенные реализации используются только в том случае, если OpenSSL недоступен).
Из другие изменения которые выделяются:
- Модуль имеет расширенную поддержку Windows.
- Python реализует защиту от переполнения стека.
Ускорено создание класса asyncio.Task. - Размер объектов Unicode уменьшен с 8 до 16 байт.
- Ускорена работа с регулярными выражениями re.sub(), re.subn() и re.Pattern.
- Выполнение проверок isinstance() для некоторых протоколов было ускорено от 2 до 20 раз.
- Значительно (в некоторых тестах до 64%) ускорены функции tokenize.tokenize() и tokenize.generate_tokens().
- Загрузка атрибутов и вызов метода super() были ускорены.
- Для универсальных классов и функций был предложен новый, более компактный синтаксис аннотаций типов.
- Модуль веб-браузера больше не поддерживает старые браузеры, включая Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird и Firefox до версии 36.
- В рамках подготовки к будущим оптимизациям внутреннее представление целых чисел было изменено.
И последнее, но не менее важное, как уже упоминалось, началось альфа-тестирование Python 3.13, в котором появился режим компиляции. CPython без глобальной блокировки интерпретатора (GIL, глобальная блокировка интерпретатора).
Филиал Python 3.13 будет находиться в стадии альфа-версии семь месяцев. в течение которого будут добавляться новые функции и исправляться ошибки согласно новому графику разработки, работа над новой веткой начинается за пять месяцев до выпуска предыдущей ветки и к моменту выхода следующей версии на стадию тестирования альфа.
После этого бета-версии будут тестироваться в течение трех месяцев, в течение которых будет запрещено добавление новых функций и все внимание будет уделено исправлению ошибок. В течение последних двух месяцев перед выпуском ветка будет находиться на стадии кандидата на выпуск, где произойдет окончательная стабилизация.
Наконец да вы заинтересованы в возможности узнать об этом больше, вы можете проверить подробности в по следующей ссылке.