kavak.run compiler stack

C11 frontend · typed KIR · WebAssembly

A compiler stackfor languages.

Describe a language on the C11 frontend kernel, lower it through typed KIR, and emit WebAssembly for linear memory or WASM-GC. The compiler itself runs as wasm in the tab; source programs are never handed to a JavaScript interpreter.

Pre-1.0 · MIT licensed

Shared compiler path
  1. 01 Frontend kerneldescriptor → AST / types
  2. 02 KIRtype → verify → structure
  3. 03 WebAssemblylinear memory · WASM-GC
  4. 04 Host boundaryfs · gfx · input · frame · clock · sound

The shared substrate

Language-specific at the edge. Shared underneath.

  1. 01 / Frontend

    Frontend work in C11.

    Descriptor-driven lexing, Pratt parsing, arena AST/types, sema, and flow narrowing. About 6,467 lines of C11 across 20 files; the kernel has zero external dependencies.

  2. 02 / KIR

    One typed IR.

    KIR is typed and verified. Its structured lowering is total: reducible and irreducible control flow both become valid wasm.

  3. 03 / Runtime

    Runtime at the boundary.

    Opt-in runtime packs sit beside three freestanding wasm libraries: regex, crypto, and math. Six neutral host boundaries expose capabilities; the host blits output rather than interpreting source.

Stack-level numbers

Small, explicit counts.

  1. 1 typed IR verified before wasm
  2. 2 wasm targets linear memory · WASM-GC
  3. 3 freestanding libraries regex · crypto · math

Running pilot

QBasic is the first language through the full path.

Its compiler runs as wasm in the browser tab.

Open Studio