pon: A Rust-based Python 3.14 compiler that skips the interpreter entirely
pon is a native compiler and runtime for Python 3.14 written in Rust, built on the premise that Python doesn’t need an interpreter or bytecode at all. Source is parsed with ruff, lowered into a single intermediate representation, and handed to Cranelift, which either JIT-compiles it in-process (pon run) or emits a standalone native executable (pon build). Memory is handled by a Green Tea garbage collector rather than CPython’s reference counting, and the object model reuses CPython’s heap layout minus the refcount header, with errors propagating as NULL sentinels instead of stack unwinding.
Correctness is the project’s central discipline. Every corpus module must produce byte-identical output to CPython 3.14.0 under fixed conditions, and passing sets are locked into committed floor files that CI refuses to regress below. Today that means 209 differential modules match under the JIT, 172 of which also pass when compiled ahead-of-time. The runtime already carries the machinery for real performance work — a tiered JIT with baseline and typed tiers, background recompilation, on-stack replacement, inline caches, and type feedback — plus a uv-style package manager built on pubgrub resolution, though that isn’t yet wired into the correctness gates.
The stated ambition is to be the bun or V8 of Python: a single-binary, batteries-included runtime that clears the full CPython test suite and beats CPython on speed, targeting a 5x geomean improvement and 20x on numerics. Much of that remains roadmap rather than reality — the standard library is still being ported module by module, AoT parity lags the JIT, and free-threaded/no-GIL hardening is ongoing. The committed floor files, not the README, are presented as the authoritative measure of what actually works.
Read the full article
Continue reading at Hacker News →This is an AI-generated summary. Read the original for the full story.