minikotlin is written from scratch in C and emits WebAssembly GC bytecode by hand β no JVM, no LLVM, no Binaryen, no Gradle. The compiler is itself compiled to WASM, so .kt source goes in and a running .wasm module comes out, entirely in the tab .
No intermediate VM, no external backend. The frontend β lexer, parser, semantic analysis (itβs called mkf ) β hands off to two of its own IRs before writing WASM-GC by hand.
The compiler ships as WASM itself , so it runs where your code runs β no toolchain to install.
Not a token subset. These are lowered properly onto the WASM-GC type system β each one has end-to-end tests behind it.
How a Kotlin idea becomes a WASM instruction.
The lowering is the interesting part of any compiler. Four real ones β each maps a language construct onto a concrete WASM-GC mechanism, written by hand.