fa
Feedback

فریب کلاهبرداران را نخورید! تل‌متریو این کانال‌ها را شناسایی و برچسب‌گذاری می‌کند 👉 برای مشاهده برچسب، اشتراک تهیه کنید

CPython notes

CPython notes

رفتن به کانال در Telegram

Author: Kirill Podoprigora aka @backinblacknext

نمایش بیشتر
2 382
مشترکین
+124 ساعت
اطلاعاتی وجود ندارد7 روز
-730 روز
آرشیو پست ها
Реализация PEP 734 возможно будет отложена до 3.15. Автор PEP Эрик Сноу, не согласен с решением руководящего совета о переименовании модуля из interpreters в concurrent.interpreters: https://discuss.python.org/t/decision-making-process-improvements-or-my-frustrations-with-how-pep-734-has-played-out/95985 За ссылку спасибо @mikhail_efimov

PEP 734: Multiple Interpreters in the Stdlib (Публичное Python API к сабинтерпретаторам) был принят: https://discuss.python.org/t/pep-734-multiple-interpreters-in-the-stdlib/41147/36 Вообще, уже был достигнут feature-freeze для 3.14 (после этого момента не добавляются никакие новые фичи), но руководящий совет решил сделать исключение. 🥳

https://www.microsoft.com/en-us/research/wp-content/uploads/2025/04/pyrona_camera_ready.pdf Paper от Faster-CPython team: "Dynamic Region Ownership for Concurrency Safety"

Был принят и реализован PEP 768. Он позволяет исполнять код в рамках разных процессов(!) одного хоста. API довольно простое. sys.remote_exec принимает первым аргументом pid процесса, в котором уже(!) запущен Python-интерпретатор, а второй аргумент путь до файла с Python кодом который нужно исполнить. Конечно, существуют некоторые ограничения: мажорная и минорная версии интерпретатора, из которого отправляется запрос, должны совпадать с мажорной и минорной версией целевого интерпретатора. И конечно, целевой интерпретатор должен поддерживать эту фичу, которую можно отключить с помощью -X disable-remote-debug или env-переменной PYTHON_DISABLE_REMOTE_DEBUG. Безопасно ли это? Конечно нет. В названии PEP используется слово safe, но оно не про безопасность исполнения кода, а про безопасное API что б "присоединяться" к Python-процессам, что может быть полезно для дебаггеров, например для pdb -p. Теперь о самом интересном. Как же это реализовано? - Windows: https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-writeprocessmemory - UNIX: https://linuxman7.org/linux/man-pages/man2/process_vm_readv.2.html - macOS: https://developer.apple.com/documentation/kernel/1402070-mach_vm_write Все это позволяет нам писать в нужную область памяти целевого процесса. Отлично, мы записали информацию (конкретно, путь до файла с Python кодом который нужно исполнить). Что дальше? Теперь дело остается за целевым процессом. Здесь у нас есть два варианта. 1) Как вы можете знать, в Python существуют обработчики сигналов. Именно в общем обработчике сигналов как раз и проверяется, нет ли у нас <входящих запросов> на выполнение кода. Если таковые есть — считываем Python код из пути что нам отправили и выполняем его. Почему обработка подобных запросов находится в обработчике сигналов, хотя ничего из этого не относится к сигналам? Думаю, дело в частых попытках обработать сигналы, соответственно там же мы можем и проверить входящие запросы на исполнение Python кода. Согласно PEP, код который мы отправили будет исполнен в "следующий возможный момент", что как раз и попадает под обработку сигналов. 2) В самом интерпретаторе есть обработка "внутренних запросов": — "stop-the-world" (пауза для сборки мусора) — обработка тех самых сигналов :) — обработка асинхронных исключений — запуск сборки мусора Теперь к этому списку добавилась обработка запросов на исполнение кода. Осталось только что б кто-то на основе этого построил RPC :)

Официальное подтверждение тому, что Microsoft более не спонсирует Faster CPython. Уволили не всех, видимо тех кого не уволили
Официальное подтверждение тому, что Microsoft более не спонсирует Faster CPython. Уволили не всех, видимо тех кого не уволили перераспределят на новые проекты. Люди, которых уволили: Irit Katriel Eric Snow Mark Shannon

Массовые увольнения происходят в Microsoft. Судя по этому посту, как минимум половина, или возможно даже вся команда Faster-C
Массовые увольнения происходят в Microsoft. Судя по этому посту, как минимум половина, или возможно даже вся команда Faster-CPython была уволена. (Faster-CPython team — команда работающая над ускорением CPython, и спонсируемая Microsoft) Подтверждений этому от самих участников команды еще нет, но это весьма вероятно. Автор поста на скриншоте непосредственно связан с Faster-CPython team. К слову, на текущий момент этот пост выглядит иначе (скриншот первоначальной версии поста я честно украл у Никиты Соболева :)). Автор убрал количество core-developer'ов, и.. непонятно что это значит, честно говоря. Вероятно кого-то все таки не уволили?

Еще одна модель конкурентности в питоне? https://discuss.python.org/t/add-virtual-threads-to-python/91403 За ссылку спасибо @mikhail_efimov

Первая бета 3.14 здесь! Среди новвоведений: - Подсветка синтаксиса в REPL'e - Так называемые t-strings (aka PEP 750) 😭 - Поддержка UUID v6, v7, v8 (yay!) - Тот самый PEP (749) про отложенное вычисление аннотаций (annotationlib) Специфично для CPython: - Tail Calling Interpreter для ускорения VM (+5-10% по производительности) - Примитивы из hashlib были заменены на их формально верифицированные версии из HACL https://discuss.python.org/t/python-3-14-0-beta-1-is-here

PEP 749 (буквально, пеп о том как будет реализован PEP 649) принят: https://discuss.python.org/t/pep-749-implementing-pep-649/54974/66 Что ж, annotationlib, добро пожаловать в семью.

https://playknot.ruff.rs/ Плейграунд для тайпчекера от астралов =) За ссылку спасибо @serjflint

Решил поучаствовать в конкурсе от GitVerse и соответственно написал статью на хабре: https://habr.com/ru/articles/899636/ Буду рад вашей критике!

https://www.youtube.com/watch?v=wgxBHuUOmjA Добавил ключевое слово maybe в Python3.14 https://github.com/python/cpython/pull/131982 🎉

Привет! Стартуем новый проект для любителей опенсорса: помогаем меинтейнерам и контрибьюторам найти друг друга. Как оно работает? - В данном канале меинтейнеры разных Python проектов (от CPython, mypy, Litestar до taskiq) могут в любой момент выложить простые задачки, чтобы люди могли принять участие в разработке их проекта - Если вы хотите поработать над задачкой – напишите в самой задаче на гитхабе: "Can I work on this?", получите подтверждение меинтейнера и приступайте - Делитесь успехами / задавайте вопросы в нашем чате @opensource_findings_chat Если вы меинтейнер какого-то крупного проекта (>= 100 ⭐), то пишите в чат – вас добавят как админа, чтобы вы смогли постить в канал свои задачи. Чем больше – тем лучше, не забывайте ставить тег своей технологии. Всем хорошего опенсорса!

Не могу не поздравить одного из самых молодых (вероятно, самого молодого?) контрибьюторов в CPython с победой на олимпиаде PROD - Илью Любавского. Крудописатели, берегитесь!

История набирает новые обороты https://discuss.python.org/t/shedding-light-on-a-three-month-suspension/66337/238

https://discuss.python.org/t/updating-pep-387-to-prefer-5-year-deprecations-instead-of-2-years/65166/35 Теперь для того чтобы удалить что-то, что deprecated - нужно ждать 5 лет. Как мне кажется, худшее решение за последние годы