/urwasm

WebAssembly interpreter suite for Urbit

Primary Languagehoon

urwasm

WebAssembly interpreter suite for Urbit

Continuation of my work on UWasm. Copy the files from desk directory to a new Urbit desk and commit them. Run tests with:

-test /=wasm=/tests ~

or try running your own Wasm modules.

State of the project:

  • Complete Wasm interpreter specification in Hoon
  • Parsing of both binary and text Wasm file formats (the latter is done via Wasm calls, so it's slow without jets)

Next:

  • Language for Invocation of Assembly (Lia) specification
  • Lia interpreter in Hoon:
    • Lia-to-Wasm compiler
      • Hoon code compiles
      • Wasm implementation of GC and alloc typechecked
      • Compiler runs and outputs valid Wasm
      • Test the allocator
    • Wasm binary encoder
    • Lia end-to-end interpeting function (jet target)
  • (bonus) Test GC
  • Jet of Lia interpreter:
    • Lia jet
    • Ensure determinism of the Wasm runtime in C
    • Wasm validation in Hoon, Lia validation in Hoon and C
  • Operationalization:
    • Caching of Lia state
    • Unit tests
    • Lia text format
      • Lexer
      • Type inference