Вышел PyPy 7.3.23 с исправлениями корутин и C-расширений

Команда PyPy выпустила версию 7.3.23 с исправлениями ошибок. Обновление убирает лишние предупреждения о корутинах, чинит множественное наследование в C-расширениях и приближает формат дизассемблера к CPython.

Обложка: Вышел PyPy 7.3.23 с исправлениями корутин и C-расширений

Команда PyPy выпустила версию 7.3.23. Релиз содержит исправления ошибок с корутинами и C-расширениями, а также изменения в байт-кодовом интерпретаторе.

Исправления корутин и C-расширений

Обновление устраняет избыточное предупреждение о неиспользуемых корутинах: интерпретатор теперь корректно отслеживает жизненный цикл асинхронных объектов и не выдаёт ложных предупреждений при штатной работе с asyncio. Кроме того, разработчики починили множественное наследование в C-расширениях — ранее комбинация нескольких базовых типов из cpyext могла приводить к некорректному порядку разрешения методов (MRO) и падениям при инициализации объектов. Эти исправления повышают стабильность при работе с асинхронным кодом и нативными библиотеками.

Изменения в байт-коде

В байт-кодовом интерпретаторе появились таблицы исключений вместо выделенных опкодов. Теперь вывод дизассемблера ближе к формату CPython, что упрощает отладку и сравнение поведения интерпретаторов. На производительности это пока не отразилось, но в будущем изменение позволит унифицировать обработку исключений между реализациями.

Версии и совместимость

Сборка PyPy3.11 поддерживает стандартную библиотеку CPython 3.11.15, а PyPy2.7 ориентирована на Python 2.7.18+ с бэкпортами исправлений безопасности. Разработчики подтвердили совместимость API с предыдущими выпусками линейки 7.3 и рекомендуют установить патч.

Ссылки

Подробности обновления — в официальном анонсе PyPy 7.3.23.