JIT-компилятор Python вышел в 3.13, а его авторы отозвали PEP, который должен был его сохранить

Три ключевых разработчика написали PEP 836, чтобы спасти экспериментальный JIT CPython. Совет по развитию назвал их срок проверки «слишком, слишком поздним», и они отозвали документ из-за нехватки личных ресурсов.

Вкратце

JIT, влитый в 2024 году без стандартного PEP, в июне 2026-го поставили на паузу до принятия PEP. Его мейнтейнеры составили PEP 836, но совет хотел конкретных планов по поддержке, производительности и безопасности и возразил против проверки совместимости, назначенной на август 2028 года. 19 октября авторы сдались.

Читатели разделились между сожалением и пожиманием плечами, и один указал на закономерность.

JIT, влитый без бумаг

JIT-компилятор Python вышел в 3.13, а его авторы отозвали PEP, который должен был его сохранить
JIT-компилятор Python вышел в 3.13, а его авторы отозвали PEP, который должен был его сохранить

По отчёту LWN, экспериментальный JIT-компилятор попал в CPython для релиза 3.13 в начале 2024 года: его слил Brandt Bucher без стандартного PEP. В июне 2026-го руководящий совет Python приостановил работу над JIT в основной ветке, пока не будет принят PEP, описывающий сопровождение, совместимость, метрики успеха и сроки.

Bucher, Savannah Ostrowski и Ken Jin составили PEP 836. Заявление совета от 21 сентября говорило, что документ недостаточно конкретен в вопросах поддержки, критериев производительности и безопасности, а запланированную проверку совместимости, назначенную на первый релиз-кандидат Python 3.17 в августе 2028-го, назвало «слишком, слишком поздней».

Авторы отзывают: «у нас нет личных ресурсов»

19 октября Ostrowski объявила, что PEP отозван: «Мы не чувствуем, что у нас есть личные ресурсы, чтобы тянуть текущую версию дальше». Brett Cannon подтвердил, что работа в основной ветке остановится, а удаление, вероятно, произойдёт в начале цикла 3.16. Авторы планируют держать эталонную реализацию вне основного репозитория. LWN не приводит цифр производительности.

Тред: это третий JIT, который задохнулся

CEO бразильской компании bratao назвал это горько-сладким:

«Python — мой любимый язык, но я честно устал всё время переписывать узкие места производительности на Cython или Rust.»

Другой комментатор проследил закономерность между проектами:

«Unladen Swallow умер из-за отсутствия интереса со стороны основного проекта.»

Он добавил, что у PyPy такого тоже нет, а NumPy отказался от поддержки, потому что не мог представить живой проект, отстающий на пару версий от CPython.

Cython как JIT, а Rust как запасной выход

Один комментатор предложил декоратор для inline-Cython с компиляцией при первом запуске, утверждая, что он решает большую часть проблемы. Другой ответил, что он ничего не даёт для библиотек, которые тянет проект, а JIT должен помогать без изменения существующего кода. Основатель, написавший в 2001 году инструмент для inline-C в Python, сказал, что идея тогда работала и должна работать сейчас, хотя сегодня, по его мнению, есть варианты получше.

Один комментатор считает вопрос уже неактуальным: «Claude rewrite the performance bottlenecks in Rust работает так хорошо, что трудно увидеть поверхность атаки безопасности, а рассуждать о производительности как о том, за что стоит платить в ядре, ещё труднее».

Для пользователей Python практический вывод прямой: ускорения от JIT 3.13 не стоит закладывать в планы, а запасные выходы остаются прежними — Cython, Rust и PyPy.

Получайте такие разборы каждый день

Главные истории Hacker News — на email, в Telegram или RSS.

Следующая новость · 3 из 12 Читать дальше
🚀Tech

Два стэнфордских автора отказались от сделки Anthropic на $1,5 млрд и подают в суд за до $150 000 за книгу

Тобиас Вольф насчитал 10 своих книг в пиратских библиотеках, которые скачала Anthropic, и говорит, что использовать его труд таким образом без оплаты — «форма рабского труда».

★ 475 · 💬 265 · stanforddaily.com · 3 мин