UrWasm Phase II

WebAssembly Interpreter in Nock — Phase II

March 14, 2024

Reward: 16 Stars

ID: B0299

Grantee(s): ~dozreg-toplud

Champion(s): ~rovnys-ricfer

In ProgressBountyDev: Core

This is the updated roadmap for the Urwasm Project (phase I).

WebAssembly is a low-level language for a portable virtual machine. Wasm is designed to be a compilation target for a variety of programming languages and its design is hardware independent and relatively simple, making its support ubiquitous in modern browsers. Its simple design made it a perfect first candidate for a first emulator of an conventional computational system on a novel functional computer: Urbit. This is phase II of the UrWasm (Urbit Wasm) project.

Full specification available here.

Milestones

  1. Lia execution in Hoon (1-2 months)

    • Lia-to-Wasm compiler
    • Wasm binary encoder
    • Lia interpreter as a jet target

    Reward: 6 Stars

  2. Jet development and determinism enforcement (1 month)

    • Lia runtime in C
    • Floating point determinism in C
    • Wasm validation in Hoon, Lia validation in Hoon and C

    Reward: 4 Stars

  3. Operationalization: (1-2 months)

    • Lia state caching
    • Unit tests
    • Lia text format specification and lexer

    Reward: 6 Stars