Inspired by @hugovk 's Bluesky Python core devs starter pack, I created one for Mastodon(.social): https://mastodon.social/collections/116540107831540575

A very new feature, and as such quite limited. If I've missed anyone on mastodon.social please let me know! If you're on another instance, I'm afraid I can't add you yet :'-(

#cpython #python #foss

Как устроен словарь в CPython: compact dict, key sharing и что с ним делает free-threading

У dict в Python слишком простая внешность: положили ключ, достали значение, пошли дальше. Но за этим стоит один из самых вылизанных участков CPython — с компактным хранением, сохранением порядка вставки, общими ключами для экземпляров классов, оптимизациями доступа к атрибутам и новыми компромиссами из-за free-threading. В статье разберём, почему обычный словарь давно перестал быть «просто хеш-таблицей», как его устройство влияет на память и скорость кода, и какие привычки Python-разработчика могут незаметно ломать быстрый путь интерпретатора. Разобрать dict

https://habr.com/ru/companies/otus/articles/1029210/

#python #CPython #словарь_Python #хештаблица #compact_dict #оптимизация_памяти

Как устроен словарь в CPython: compact dict, key sharing и что с ним делает free-threading

Когда я в первый раз залез в dictobject.c (исходник словаря в CPython), я ожидал увидеть хеш-таблицу. Увидел три с половиной тысячи строк С-кода и комментарий Тима Петерса 2001 года, в котором он...

Хабр
It will be much better behaved in 3.15 though (the improved implementation will be in the upcoming 3.15b1 release) #python #cpython

Me (yesterday): I'll just tidy up the way the inspect module's CLI reports objects from modules with no source code available (as cryptic tracebacks are not a friendly outcome)
Me (today): oh, wow, we did NOT consider how this interface would behave when the given object reference is an alias rather than the actual defining location for that object (it lies, oh how it lies)

#python #cpython

Nuitka 4.0: как я разогнал свой Python-скрипт на 335% и почему JIT-будущее уже на пороге

Представьте себе: вы запускаете свой старый добрый Python-скрипт, он привычно задумывается на пару секунд, а потом начинает работать. А теперь представьте, что тот же самый скрипт без единого изменения в коде — просто после прогона через одну утилиту — стартует почти мгновенно и работает втрое быстрее. Никакой магии, просто вышел Nuitka 4.0. 22 апреля 2026 года проект, который когда-то начинался как нишевый компилятор, дорос до мажорной версии 4.0. И это не просто «пофиксили баги, добавили пару флагов» — это реально меняет правила игры для тех, кто пишет на Python и хочет, чтобы код летал, а не ползал. По данным официальных тестов, скомпилированные скрипты показывают повышение производительности на 335% в pystone-бенчмарке по сравнению с CPython. Можете представить, что ваш веб-парсер или ML-пайплайн ускоряется втрое без переписывания на Rust. Если совсем просто: PyInstaller просто пакует ваш скрипт вместе с интерпретатором в один файл — по сути, это архив с «батарейками». А Nuitka переписывает весь Python-код на чистый C и компилирует его в настоящий исполняемый файл. Никакой интерпретации на лету — только скомпилированный бинарник, который в теории может обогнать даже PyPy. И теперь, с версией 4.0, эта теория стала куда ближе к практике. «Раньше я думал, что ускорение от Nuitka довольно скромное... но с версией 4.0 вижу реальный прогресс», — примерно так звучат комментарии на Hacker News , и я с ними согласен.

https://habr.com/ru/articles/1027354/

#python #cpython #nuitka #nuitka_40 #pyinstaller

Nuitka 4.0: как я разогнал свой Python-скрипт на 335% и почему JIT-будущее уже на пороге

Представьте себе: вы запускаете свой старый добрый Python-скрипт, он привычно задумывается на пару секунд, а потом начинает работать. А теперь представьте, что тот же самый скрипт без единого...

Хабр
😂 Look, someone created a #dynamic #language called "Zef" (because why not?) and now believes they can compete with #Lua, #QuickJS, and #CPython. 🚀 Just another wild ride through "how to optimize your #hobby #project to do something totally unnecessary" land! 🛠️
https://zef-lang.dev/implementation #Zef #HackerNews #ngated
How To Make a Fast Dynamic Language Interpreter

RE: https://fosstodon.org/@savannah/116416941269710052

This is really good! There's a lot going on in CPython, here's just a few highlights.
#Python #CPython #CoreDispatch

I also built `ft-review-toolkit` (using ThreadSanitizer) to check for free-threading readiness, which has found real data races in 12 extensions so far.

If you maintain a Python C extension and want a high-quality, human-reviewed bug report (or help migrating to free-threading), just let me know!

All the toolkits are open source:
https://github.com/devdanzin/cext-review-toolkit
https://github.com/devdanzin/ft-review-toolkit

#Python #CPython

The results so far? Fixes merged in 14 projects!

Massive shoutout to the maintainers of simplejson, Cython, memray, h5py, greenlet, bottleneck, guppy3, bitarray, igraph, APSW, Pillow, regex, and many others!

The feedback they gave me, especially when pointing out my tool's false positives, was invaluable for making the scanners better.

It's been incredibly rewarding to see the tools find interesting bugs and watch the community merge the fixes so quickly.
#Python #CPython

Historically, automated bug-finding tools have a bad habit of producing high-noise findings (and now worse: convincing AI slop) that just wastes maintainer time.

I built `cext-review-toolkit` using multiple specialized agents to find bugs, and I try to reproduce every finding from pure Python before reporting it.

Human review + pure-Python reproducers act as a necessary filter against false positives.

#Python #CPython