I built a programming language from raw assembly — and it beats C by 6.6 on LZ77
Source: Dev.to
The numbers that made me double‑check
I ran a six‑language benchmark suite (C, Rust, Go, Jda, Python, Ruby) on real algorithms — not micro‑benchmarks.
- Sudoku (500 puzzles): C 62 ms, Rust 62 ms, Go 66 ms, Jda 41 ms
- LZ77 (1 MB compress): C 1,830 ms, Rust 2,185 ms, Go 2,721 ms, Jda 277 ms
That’s 1.5× faster than C on Sudoku and 6.6× faster than C on LZ77. The Jda binary ran under Rosetta 2 (x86‑64 emulated) while the C/Rust/Go binaries were native ARM64.
How?
Source‑level optimizations the C compiler can’t easily do: MOD→AND strength reduction, hash‑chain hoisting, aggressive dead‑code elimination.
Compile times
Compilation is dramatically faster:
- 33× faster 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 {
// …
}
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 standard‑library 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
Repository:
Feel free to ask questions about the bootstrap process, the code generation, or why I undertook this project.