mastodon.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
The original server operated by the Mastodon gGmbH non-profit

Administered by:

Server stats:

356K
active users

#cpython

0 posts0 participants0 posts today

The Python version diagram has been updated to show the bugfix/security split for each release. (Before, the bars were either completely green or yellow.)

devguide.python.org/versions/

It's also zoomed in and shows fewer releases than before. There's another chart further down the page showing all of 2.6 to 3.14. And the wording in the status key has been refreshed to make it clearer.

Thanks to @nedbat and @encukou for updating it!

#Python#CPython#EOL

[Перевод] Производительность интерпретатора Python 3.14 с оптимизацией хвостовых вызовов

Примерно месяц назад проект CPython смерджил новую стратегию реализации интерпретатора байт-кода. Первоначальные результаты были очень впечатляющими , продемонстрировав среднее повышение производительности на 10-15% в широком спектре бенчмарков на различных платформах.

habr.com/ru/companies/ruvds/ar

ХабрПроизводительность интерпретатора Python 3.14 с оптимизацией хвостовых вызововПримерно месяц назад проект CPython смерджил новую стратегию реализации интерпретатора байт-кода. Первоначальные результаты были очень впечатляющими , продемонстрировав среднее повышение...
#cpython#gcc#clang

Performance of the #Python 3.14 tail-call interpreter- About a month ago, the #CPython project merged a new implementation strategy for their bytecode interpreter. The initial headline results were very impressive, showing a 10-15% performance improvement on average across a wide range of benchmarks across a variety of platforms.

Unfortunately, as I will document in this post, these impressive performance gains turned out to be primarily due to inadvertently working around a regression in #LLVM 19. When benchmarked against a better baseline (such GCC, clang-18, or LLVM 19 with certain tuning flags), the performance gain drops to 1-5% or so depending on the exact setup.

blog.nelhage.com/post/cpython-

Made of Bugs · Performance of the Python 3.14 tail-call interpreterA deep dive into the performance of Python 3.14's tail-call interpreter: How the performance results were confounded by an LLVM regression, the surprising complexity of compiling interpreter loops, and some reflections on performance work, software engineering, and optimizing compilers.

Под чешуёй асинхронности: from yield to await

В данной статье мы рассмотрим основы асинхронного программирования в python, фокусируясь на ключевых концепциях и их практическом применении. Мы начнем с изучения генераторов и итераторов — фундаментальных механизмов, лежащих в основе асинхронности python. Затем поговорим о потоках и процессах, чтобы понять, как они соотносятся с асинхронным подходом. Основная цель статьи — создание собственной упрощенной реализации asyncio, включая цикл событий, задачи и примитивы синхронизации. Это позволит глубже понять внутреннее устройство асинхронной разработки в python.

habr.com/ru/articles/889490/

ХабрПод чешуёй асинхронности: from yield to awaitВ данной статье мы рассмотрим основы асинхронного программирования в python, фокусируясь на ключевых концепциях и их практическом применении. Мы начнем с изучения генераторов и итераторов —...

I'm trying to compile CPython with the mold(1) linker, but so far I haven't been able to get the build system to pick it up. Can anyone point me in the direction of building CPython with mold(1).

This isn't for any purpose other than playing around/learning.

If anyone is willing, I'd appreciate a boost for visibility :)

New account, so new #introduction. Let's do it again!

I have a
#MastersDegree in #ComputerScience and #ComputerEngineering. I went to #NMU for undergrad and #MSU for my graduate degree. I currently work at #UChicago for the #TMWCenter, which focuses on helping young children acquire language (and therefore other learning skills) faster.

In my spare time, I develop
#OpenSourceSoftware such as
- a
#SphinxDoc extension that embed #Fediverse comments on your page
- a library to talk to
#ManifoldMarkets from native #Python
- a
#PredictionMarket manager using the above
- a
#transpiler from a subset of Python to #OpenStreetMaps's #OverpassQL
- bug fixes to many other projects, including
#mypy, #base58, #attrs, #CPython, & more

I spend a fair bit of my time these days on
#MathResearch, specifically into the #ThueMorse Sequence and its extensions.

I'm also a hobbyist editor on OpenStreetMap.

#Demisexual, #transfem, and happily engaged to my #enby sweetheart.

We have two cats:
#OpheTheLoaf and #MayalaranTheCat (yes, from #StormlightArchive) See here for more on them!

I speak English fluently, Spanish haltingly, and am trying to learn Chinese

#queer #Chicago

TransFem SpaceOlivia A-C (@LivInTheLookingGlass)These are our cats, #OpheTheLoaf and #MayalaranTheCat. Ophelia was originally my partner's, we live together full time now, and are an integrated family Fun facts about Ophelia: * She is missing a tooth, so her lip sometimes gets stuck open in a cute way * She has an "activation noise" that sounds kinda like a pigeon * She will often do 10/10 loafs, hence the nickname Some facts about Maya: * Her favorite hobby is judging the neighbors * She is very anxious * She has an incredibly dainty play style * She has a series of increasingly ridiculous nicknames: Mayalaran -> Maya -> Mayo -> Aioli -> Au Jus (Follow the hashtags if you want just my cats) #CatsOfMastodon #CatsOfFedi (📎8)

Moim zdaniem, polityka projektu #CPython dotycząca starszych wersji otrzymujących wyłącznie "poprawki bezpieczeństwa" nie sprawdza się.

W praktyce sprowadza się do tego, że mamy kilka starszych gałęzi, które rzekomo są wspierane, użytkownicy polegają na tym wsparciu, a w rzeczywistości wsparcia nie ma, więc dystrybucje muszą samemu zaciągać łatki po to, by naprawiać problemy z tymi wersjami. Włączając w to poprawki bezpieczeństwa, które jeszcze nie doczekały się wydania w tych gałęziach.

(Tutek sponsorowany przez konieczność zaciągnięcia kolejnego zestawu paczek do #Gentoo.)

I think the #CPython approach of "security supported" releases is pretty bad.

It basically means that there's a bunch of versions that upstream pretend to support and users rely on being supported, except that they aren't really supported, so downstreams have to do all the work backporting patches to fix bugs. Including security bugs that haven't made it into a release yet.

(Post sponsored by yet another bunch of patches being backported in #Gentoo.)

#Python 3.14 se dote d'un interpréteur plus performant (mais pas disponible dans toutes les versions de #CPython car ça dépend du compilateur utilisé). Avec des gains qui semblent comparable à ceux qu'on a pu voir avec Python 3.11 (10% ou mieux)
@simon regroupe des liens sur comment c'est arrivé et comment tester la version alpha dès aujourd'hui :
simonwillison.net/2025/Feb/13/

Simon Willison’s Weblogpython-build-standalone now has Python 3.14.0a5Exciting news [from Charlie Marsh](https://twitter.com/charliermarsh/status/1889837406322565305): > We just shipped the latest Python 3.14 alpha (3.14.0a5) to uv and python-build-standalone. This is the first release that includes the tail-calling interpreter. > …

Jeżeli kiedyś zastanawialiście się, jak szybko rośnie `packaging.tags.sys_tags()` na GNU / #Linux, to mam formułkę (chyba że coś popieprzyłem). Dla #CPython 3.x na #glibc 2.y, łączną liczbę tagów wyraża wyrażenie:

2xy + x + 3y + 3

Albo równoważnie:

x(2y + 1) + 3y + 3
y(2x + 3) + x + 3

Co za tym idzie, jeżeli nic innego się nie zmienia, to każda nowa wersja Pythona dodaje (2y + 1) tagów, a każda nowa wersja glibc dodaje (2x + 3) tagów. Dla glibc 2.41, daje to 83 nowe tagi na nową wersję CPythona. Dla CPythona 3.13, mamy 29 nowych tagów na nową wersję glibc.

No i dla porównania: CPython 3.13 na architekturze x86_64 z glibc 2.41 ma już 1205 zgodnych tagów paczek wheel.

If you were ever wondering how fast `#packaging.tags.sys_tags()` are growing on GNU / #Linux, I have a formula for you (unless I screwed up the maths). For #CPython 3.x on #glibc 2.y, the total number of tags is:

2xy + x + 3y + 3

Or equivalently:

x(2y + 1) + 3y + 3
y(2x + 3) + x + 3

So all other things equal, every new minor version of #Python introduces (2y + 1) tags, and every new minor version of glibc introduces (2x + 3) tags. For glibc 2.41, this means 83 new tags per CPython version. For CPython 3.13, this means 29 new tags per glibc version.

Oh, and for a good measure: CPython 3.13 on x86_64 with glibc 2.41 features 1205 compatible wheel tags.