Phase 01 — WebAssembly Foundations
This phase makes WebAssembly visible. The goal is to understand the module and every byte crossing the host boundary before a framework turns those mechanics into a helper API.
Branches
- WebAssembly Execution Model — binary format, WAT, stack-machine semantics, validation, functions, tables, memory, imports, exports, traps, and instantiation.
- Toolchains & Language Targets — WAT, Clang, Emscripten, Rust targets, wasm-bindgen, glue, optimization, source maps, and debugging.
- Linear Memory, ABI & Host Interop — pointers, offsets, typed arrays, ownership, allocation, growth, callbacks, Canonical ABI, and copy costs.
Workbench milestone
v0 — WebAssembly visible: write a small vector-processing module in WAT,
instantiate it from TypeScript, move Float32Array data through linear memory, inspect
the generated binary, and report module size plus output checksum.
What this phase establishes
- A precise module/instance/store mental model.
- A reproducible WAT-to-Wasm and language-to-Wasm toolchain.
- A documented tensor-like buffer contract between host and guest.
- Explicit allocation, ownership, growth, and failure behavior.
- A scalar baseline that later acceleration can compare against.
Exit criteria
- You can inspect imports, exports, sections, instructions, and traps without a framework.
- You can explain where every host array byte lives and when it is copied.
- The v0 artifact runs from documented commands and matches a golden vector output.
- Build flags, tool versions, binary size, and runtime environment are recorded.
Continue with Phase 02: Inference from First Principles. Keep Always Active attached to the milestone.