cd /news/developer-tools/show-hn-kcc-a-c-compiler-built-solo-… · home › topics › developer-tools › article
[ARTICLE · art-146216] src=github.com ↗ pub= topic=developer-tools verified=true sentiment=↑ positive

Show HN: Kcc, a C compiler built solo with an LLM on $100/mo boot Linux kernel

Cuauhtémoc Pacheco released kcc, a formal C17 compiler written entirely in ARM64 assembly as a single literate program using the weft metalanguage, co-authored with an AI collaborator (Claude) on a $100/month budget. The compiler checks C against the Standard, optimizes, allocates registers, emits native machine code, self-compiles to a byte-identical binary, cross-compiles to x86-64 on Linux and macOS, builds and runs Lua, SQLite and DOOM, and boots a Linux kernel. The roughly 1000-page book kcc.pdf is committed to the repository under an MIT license and is published as a GitLab Release asset.

read3 min views1 publishedOct 6, 2026
Show HN: Kcc, a C compiler built solo with an LLM on $100/mo boot Linux kernel
Image: Michielbdejong (auto-discovered)

kcc is a formal C17 compiler written entirely in ARM64 assembly, and set down as a single literate program using weft, a metalanguage built to be authored and read by human and AI collaborators alike. Every instruction is explained in prose before it is written in code.

It checks C against the Standard, optimises it, allocates registers, and emits native machine code; it compiles itself to a byte-identical binary; and it cross-compiles to x86-64 (Linux and macOS). It builds and runs Lua, SQLite, and DOOM — and boots a Linux kernel.

The whole book is the compiler (≈1000 pages): read kcc.pdf in this repository, also published on Releases, or build it yourself (see below). Learn more about Literate Driven Development at https://literatedriven.com.

Everything the machine builds — the assembly modules, the verification scripts, and the Makefile itself — is generated by tangling the literate sources. You never edit generated files; you edit the book.

kcc.weft          master document (LaTeX preamble + @i includes)
literate/         all the chapters (prose + code fragments)
assets/           cover art (SVG → the PDF covers)
kcc.pdf           the typeset book (committed; rebuilt with `make pdf`)
README.md         this file
LICENSE           MIT

The typeset book, kcc.pdf, is committed, so the repository always carries a readable copy of the current text. Rebuild it with make pdf.

There is a one-time bootstrap: because the Makefile is itself tangled from the book, you generate it first, then use it.

weft -p gen/ --mkdirs kcc.weft

make

./gen/kcc gen/hello.c -o gen/hello && ./gen/hello

-p gen/ prepends gen/ to every tangle output; --mkdirs creates the directories. The generated tree lives entirely under gen/ (plus the root Makefile); make clean removes it and the command above regenerates it.

Target What it does
make /make build assemble + link gen/kcc
make difftest compile a corpus with kcc and clang, compare
make diagtest /make warntest invalid programs are rejected; -Wall warns
make test-codegen /make e2e /make interop run generated programs
make selfhost-* recompile a module in C with kcc, relink, verify
make meta-c full self-host fixpoint on Linux (needs Docker + qemu)
make ci the complete verification suite
make pdf weave the book and typeset kcc.pdf

The verification scripts locate their own base directory, so they work under any -p prefix.

make pdf weaves the .weft sources to kcc.tex and typesets kcc.pdf with LuaLaTeX. The covers are regenerated from assets/*.svg when rsvg-convert is available. The resulting kcc.pdf is committed alongside the sources, so the book can be read straight from the repository; tagged versions are also published as a Release asset on GitLab.

  • weft ≥2.0.0 (the literate tool).
  • A C toolchain's as andld (Xcode command-line tools on macOS).
  • For the book: a TeX distribution with LuaLaTeX and latexmk — a fullTeX Live , or the lightweightTinyTeX (a minimal TeX Live) — and, optionally,rsvg-convert for the covers.
  • For make meta-c and the kernel-boot reproduction: Docker and qemu-user.

MIT — see LICENSE. Copyright © 2026 Cuauhtémoc Pacheco, co-authored with an AI collaborator (Claude).

── more in #developer-tools 4 stories · sorted by recency
── more on @kcc 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-kcc-a-c-comp…] indexed:0 read:3min 2026-10-06 · —