spike: validate WASM phase 0
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# spikes/wasm-phase0 — WASM-PROPOSAL Phase 0 (toolchain & runtime spike)
|
||||
|
||||
Validates the dynamic-linking foundation for the WASM unit runtime:
|
||||
wasi-sdk PIC side modules + a host loader linking a core module and a unit
|
||||
module at runtime with shared memory/table. **Exit criterion passed; runtime
|
||||
selected: Wasmtime.** See `FINDINGS.md` for results and `realunit-report.md`
|
||||
for the real-generated-unit compile log.
|
||||
|
||||
Everything builds and runs **on k-uce** (toolchains under `/opt`, artifacts
|
||||
under `/tmp/uce/wasm-phase0`):
|
||||
|
||||
```
|
||||
bash spikes/wasm-phase0/build_modules.sh # core.wasm + unit.wasm (wasi-sdk)
|
||||
bash spikes/wasm-phase0/build_loader.sh # loader (Wasmtime C API)
|
||||
/tmp/uce/wasm-phase0/loader # expect: PHASE0 EXIT CRITERION: PASS
|
||||
```
|
||||
|
||||
Files:
|
||||
|
||||
- `core.cpp` — core-module stand-in: owns memory/allocator/libc++, exports
|
||||
everything; includes the guest-side GOT.func resolver pattern
|
||||
- `unit.cpp` — unit stand-in: PIC, imports allocator/runtime, exercises GOT,
|
||||
cross-module C++ objects, function pointers, lambdas
|
||||
- `loader.cpp` — minimal runtime linker (standard wasm-c-api): dylink.0
|
||||
parsing, base allocation, GOT resolution, init sequencing
|
||||
- `wasm_inspect.py` — dumps imports/exports/dylink.0 of a module
|
||||
- `FINDINGS.md` — toolchain pins, WAMR rejection evidence, flag recipe,
|
||||
Phase 2/3 implications
|
||||
- `realunit-report.md` — `collections.uce.cpp`/`hello.uce.cpp` compiled as
|
||||
side modules (worker-agent log)
|
||||
Reference in New Issue
Block a user