Fase 01 — Fundamentos de WebAssembly
Esta fase vuelve visible WebAssembly. El objetivo es entender el módulo y cada byte que cruza el límite del host antes de que un framework convierta esos mecanismos en una API de ayuda.
Ramas
- Modelo de ejecución de WebAssembly — formato binario, WAT, semántica de máquina de stack, validación, funciones, tablas, memoria, imports, exports, traps e instanciación.
- Toolchains y lenguajes objetivo — WAT, Clang, Emscripten, targets de Rust, wasm-bindgen, glue, optimización, source maps y debugging.
- Memoria lineal, ABI e interop con el host — punteros, offsets, typed arrays, ownership, asignación, crecimiento, callbacks, Canonical ABI y costos de copia.
Hito del Workbench
v0 — WebAssembly visible: escribí en WAT un módulo pequeño de procesamiento
vectorial, instancialo desde TypeScript, mové datos Float32Array a través de la memoria
lineal, inspeccioná el binario generado e informá el tamaño del módulo junto con el
checksum del resultado.
Qué establece esta fase
- Un modelo mental preciso de módulo/instancia/store.
- Un toolchain reproducible de WAT a Wasm y de lenguaje a Wasm.
- Un contrato documentado de buffers tipo tensor entre host y guest.
- Comportamientos explícitos de asignación, ownership, crecimiento y falla.
- Un baseline escalar contra el cual comparar la aceleración posterior.
Criterios de salida
- Podés inspeccionar imports, exports, secciones, instrucciones y traps sin un framework.
- Podés explicar dónde vive cada byte del array del host y cuándo se copia.
- El artefacto v0 se ejecuta con los comandos documentados y coincide con un golden output vectorial.
- Se registran flags de build, versiones de herramientas, tamaño del binario y entorno de runtime.
Seguí con Fase 02: Inferencia desde primeros principios. Mantené Siempre activo unido al hito.