Hacker News

Hacker News

Show HN: Full Python 3.15 Implemented in 25k LoC C11
10 points by soasme •                         
I burned about $500 for this fun project: Small Python. Initial PoC used 3 resets of Codex in one session but all later development happens in Claude Code, also in one Opus 5.5 session over three days.

The outcome is a quickjs-like implementation for Python. Almost full Python 3.15 language features plus builtins are covered. No Lib/ support. Great for embedding scenarios.

No rust. Just plain C11 code.

Repo is here: https://github.com/soasme/small-python/

Ask me anything.

d3Xt3r •                         
If you were going to burn tokens anyway, why not just go for Rust? Or if you really wanted to stick to C for some reason, then why not Fil-C?
soasme •                         
If you were going to a restaurant, would you order steak everytime?

I just like the good old c from deep bottom of my heart. Besides, using c does not mean the program is memory unsafe.

d3Xt3r •                         
If you like C so much then why not hand code it?
soasme •                         
I don't get it. Liking c means i need to hand code it? To be fair, i hand code parsers and interpreters alot in the past decade. And the time has changed. Handcode is dead.
marcankaitiaki •                         
How did you manage this much C code not blowing up in your face if it is fully ~vibes~?
soasme •                         
I think we need to distinguish vibe coding from agentic engineering.

A project that happens to work is vibe coding.

A project built with solid engineering practices—specs, unit tests, formal verification, fuzzing, benchmarks, documentation, coding standards, and good engineering taste—is agentic engineering.

It’s fundamentally no different from what Guido and the CPython core developers do every day. The difference is who’s writing the code, not how we ensure its quality.

I cannot ensure it won't screw but making oroject fixable and being able to distribute patches further down the stream is also important. Think php2shell.

xchip •                         
Thanks!