November 14, 2025
Self-host or ghost?
Show HN: Cj–tiny no-deps JIT in C for x86-64 and ARM64
Tiny make-your-own machine code toy sparks “can it run itself?” frenzy
TLDR: A tiny, no-dependency C project called cj lets you generate and run machine code on the fly for PCs and phones. Commenters debated self‑hosting dreams, safety vs. simplicity, missing features, and the cheeky “install (don’t)” vibe—proof that a hobby JIT can still ignite big‑feelings drama.
A lone dev just dropped a teeny-tiny “make your own machine code” kit called cj, and the crowd pounced. It’s a just‑in‑time (JIT) code generator—meaning it writes and runs code on the fly—built in plain C with no dependencies and support for both common chips: x86‑64 (your PC) and ARM64 (your phone/Mac). The very first vibe-check from the comments? Curiosity turbocharged: can this thing… run itself? One user kicked off the self‑hosting fantasy, and the peanut gallery instantly split into two camps: the “this is art, let devs have fun” crew and the “cool, but where are the guard rails?” skeptics.
The drama didn’t stop there. The project’s cheeky “install (don’t)” instruction became a running joke, while the warning that some docs and examples used AI (“peruse at your own peril”) sparked side‑eye and spicy quips about robot scribes. Purists cheered the no‑frills, low‑level API—you push instructions directly, like assembling Lego with no instructions—while pragmatists muttered “just use LLVM” (a heavyweight toolchain) and questioned missing ARM64 SIMD pieces. Others were delighted by the builder helpers that turn gnarly loops into readable blocks, calling it training wheels for bare-metal dabblers. Love it or roast it, cj turned a hobby project into a full‑blown comment section spectacle powered by nostalgia, nerdery, and a dash of chaos.
Key Points
- •“cj” is a small, dependency-free JIT framework written in C for x86-64 and ARM64.
- •It uses auto-generated backends: x86 from asmdb and ARM64 from a handgenerated file based on mra_tools.
- •The API is low-level, enabling direct instruction emission without high-level constructs.
- •Optional builder helpers offer prologue/epilogue setup and structured loop constructs.
- •Requirements include a C11 compiler (gcc/clang), a POSIX-compliant OS (for mmap), and a supported CPU architecture.