Internals
Build guide
Build targets, feature flags, testing, and how to assemble the dev environment with bundled binaries.
Targets
Command
Output
make build
slim ~2.3 MB WASM, no bundled binaries (default)
make build-full
~68 MB WASM with busybox + node + devenv bundled
make build-busybox
~3.1 MB WASM with just the BusyBox guest baked in
make test
runs the full suite
make serve
build + serve wasm/ on localhost:8080
Sizes
- ~2.3 MB — the slim default: a bare VM with no bundled binaries.
- ~3.1 MB — with just the BusyBox guest embedded (make build-busybox).
- ~68 MB — the legacy all-in-one with BusyBox, Node.js and the dev environment embedded (make build-full).
The dev environment
make build-full expects runners/riscv/images/busybox, runners/riscv/images/node and build/devenv.tar.gz. The devenv archive is produced by the Docker build scripts under build/ and contains the npm / TypeScript toolchain.
bash
# produce the devenv archive, then the fully-bundled build # (see build/ for the Docker scripts) make devenv make build-full
Testing
The suite runs applet differential tests, ELF execution tests, BusyBox smoke tests, the Boa scripting layer, and — with a bundled build — the devenv tool tests.
bash
$ make test --- ELF Execution Tests --- 6 passed --- BusyBox Smoke Tests --- 17 passed --- Devenv Tool Tests --- skipped (needs a bundled build) Scripting layer (Boa) 21 passed ============================================ Results: 55 passed, 0 failed, 1 skipped (56 total)