kavak.run compiler stack

Language survey

Languages, by status.

Seven languages run the full kavak stack and open in the tab: QBasic, Lua, Go, C, Hack, Objective-C and Java. Four more ship standalone as their own studios. The rest are languages we’re taking on next.

Running in Studio

Open any of them in the tab. The compiler itself is wasm; nothing runs on a server.

seven

  • QBasic .BAS Open in Studio →

    498 corpus tests · 433 of them arbitrated against real QB64-PE · 126 of 157 tracked keywords fully implemented

    Graphics, sound, files and interactive input are supported. See the measurement →

  • Lua .lua Open in Studio →

    1,422 of 2,505 in-scope asserts pass in the official Lua 5.4.8 test suite · a 219-row ledger is arbitrated by the real lua

    Closures, coroutines, metatables and a real garbage collector, on the same machine. See the measurement →

  • Go .go Open in Studio →

    659 of 2,016 in-scope files pass in Go’s OWN compiler test suite, run unmodified

    Slices, maps, structs, methods, interfaces and closures. No goroutines or channels yet. See the measurement →

  • C .c Open in Studio →

    Vendored zlib, lz4 and brotli compress byte-for-byte identically to emcc · every one of the 54 visitor programs matches the terminal compiler byte for byte

    Pointers, structs, unions, arrays of any rank, function pointers, varargs and pthreads. No file system, no clock. Measured by the four gates in the repository.

  • Hack .hack Open in Studio →

    2,775 of 7,982 of HHVM’s own slow tests and 456 of 864 quick tests agree with HHVM 6.79 exactly · the rest are refused by name, not guessed

    Shapes and the HSL, async/await on HHVM’s run order, reified generics, enums, traits, generators and XHP. No readonly, include or file system yet.

  • Objective-C .m Open in Studio →

    All 21 visitor programs and 160 probe programs match clang byte for byte · the published compiler’s 320 programs differ from the terminal build in 0

    Classes and message sends, ARC with -dealloc, blocks that capture, @try/@catch/@finally and fast enumeration. No Foundation: NSString, @"..." and NSLog are refused by name. See the measurement →

  • Java .java Open in Studio →

    All 54 visitor programs match Temurin 25 byte for byte · the published compiler’s 54 programs differ from the terminal build in 0

    Records, sealed types, switch expressions with patterns, text blocks, streams, enums and generics. No BigInteger in the tab (terminal only), no java.io/time/net.

Standalone studios

Built on the same stack, shipped as their own products.

same family · separate products

On the roadmap

The languages we’re taking on next.

and growing

  • Python
  • C++
  • Rust
  • PHP
  • Ruby
  • Dart
  • SQL
  • Shell
  • R
  • Julia
  • Perl
  • Haskell
  • OCaml
  • Clojure
  • Zig
  • Erlang / Elixir
  • Lisp / Scheme
  • Prolog
  • Ada
  • Smalltalk
  • Tcl
  • AWK
  • Forth
  • COBOL
  • APL
  • Verilog