So I had a slightly unreasonable idea two years ago:
What if I built a programming language without depending on C, LLVM, or any existing toolchain?
The result is Jda — a high-performance systems language bootstrapped from raw x86-64 assembly. The compiler now compiles itself. No GC. No runtime. Single static binaries.
And on real benchmarks, it’s doing things I genuinely didn’t expect.
The numbers that made me double-check
I ran a 6-language benchmark suite (C, Rust, Go, Jda, Python, Ruby) on real algorithms — not microbenchmarks.
• Sudoku (500 puzzles): C 62ms, Rust 62ms, Go 66ms, Jda 41ms
• LZ77 (1 MB compress): C 1,830ms, Rust 2,185ms, Go 2,721ms, Jda 277ms
That’s 1.5× faster than C on Sudoku and 6.6× faster than C on LZ77. Running via Rosetta 2, no less — C/Rust/Go were native ARM64, Jda was x86-64 emulated.
How? Source-level optimizations the C compiler can’t easily do: MOD→AND strength reduction, hash-chain hoisting, aggressive DCE.
Compile times are kinda absurd too
33× faster compilation than Rust, 16× faster than Go. Skipping LLVM saves a lot of time.
A taste of the syntax
fn search_file(path: &i8, pattern: &i8) -> i64 {
let fd = file_open(path, 0)
let buf = file_read_all(fd)
let matches = 0
for i in range(str_len(buf)) {
if substr_match(buf, i, pattern) {
matches += 1
}
}
ret matches
}
A real ripgrep-style search tool, ~400 lines total, compiles to a 1 MB static binary with zero dependencies.
What’s in the box
• Self-hosted compiler — byte-identical fixed point reached April 2026
• 117 stdlib packages — HTTP, JSON, crypto, tensors, neural networks
• Built-in concurrency — goroutine-style green threads, no GC
• 388 conformance tests passing
• Native installers for Windows, macOS, Linux
Try it
Repo: https://www.github.com/jdalang/jda-lang
Happy to answer questions about the bootstrap process, the codegen, or why on earth I did this in the comments.
Top comments (0)