Python 3.15's JIT is now back on track

fidget-spinner.github.io

196 points by guidoiaquinti 4 hours ago


owaislone - 14 minutes ago

Oh man, Python 2 > 3 was such a massive shift. Took almost half a decade if not more and yet it mainly changing superficial syntax stuff. They should have allowed ABIs to break and get these internal things done. Probably came up with a new, tighter API for integrating with other lower level languages so going forward Python internals can be changed more freely without breaking everything.

adrian17 - 2 hours ago

I'm been occasionally glancing at PR/issue tracker to keep up to date with things happening with the JIT, but I've never seen where the high level discussions were happening; the issues and PRs always jumped right to the gritty details. Is there anywhere a high-level introduction/example of how trace projection vs recording work and differ? Googling for the terms often returns CPython issue tracker as the first result, and repo's jit.md is relatively barebones and rarely updated :(

Similarly, I don't entirely understand refcount elimination; I've seen the codegen difference, but since the codegen happens at build time, does this mean each opcode is possibly split into two (or more?) stencils, with and without removed increfs/decrefs? With so many opcodes and their specialized variants, how many stencils are there now?

oystersareyum - 3 hours ago

> We don’t have proper free-threading support yet, but we’re aiming for that in 3.15/3.16. The JIT is now back on track.

I recently read an interview about implementing free-threading and getting modifications through the ecosystem to really enable it: https://alexalejandre.com/programming/interview-with-ngoldba...

The guy said he hopes the free-threaded build'll be the only one in "3.16 or 3.17", I wonder if that should apply to the JIT too or how the JIT and interpreter interact.

ecshafer - 2 hours ago

What is wrong with the Python code base that makes this so much harder to implement than seemingly all other code bases? Ruby, PHP, JS. They all seemed to add JITs in significantly less time. A Python JIT has been asked for for like 2 decades at this point.

ekjhgkejhgk - 2 hours ago

Doesn't PyPy already have a jit compiler? Why aren't we using that?

fluidcruft - 2 hours ago

(what are blueberry, ripley, jones and prometheus?)

killingtime74 - 2 hours ago

Sorry but the graphs are completely unreadable. There are four code names for each of the lines. Which is jit and which is cpython?

rafph - 2 hours ago

[flagged]

AgentMarket - 2 hours ago

[flagged]

wei03288 - an hour ago

[flagged]