Skip to content

gust OS: runtime wasm loading on-target for the kiln on-board interpreter (distinct from build-time dissolve) #161

Description

@avrabe

Context

kiln is adding a no_std interpreter mode so it can interpret WebAssembly on-board — the alternative to synth-AOT for payloads where AOT is not wanted (dynamic/late-loaded, migrated, untrusted, or smaller-TCB cert contexts). Write-up: pulseengine/kiln#415 (decision AD-NOSTD-INTERP-001, requirement REQ_NOSTD_INTERP).

Aligns with gust's existing phase-2 kiln integration (SYSREQ-KILN-002 end-to-end verified compilation pipeline, SWREQ-KILN-003 synth ARM codegen, STKH-002 eliminate-C-FFI). kiln's REQ_NOSTD_INTERP now depends-on gust:SYSREQ-KILN-002.

The new ask (narrow)

gust's model today is build-time dissolve (verified wasm → native via meld/loom/synth, TCB ≈ 4-fn shim). The on-board interpreter needs something not yet provided:

  1. Runtime wasm loading — get wasm module/component bytes to the interpreter at runtime on-target (from storage/uplink), not just link a dissolved-at-build image. This is the interpreter's whole value: running payloads that were never AOT'd.
  2. Host the interpreter image — either (a) run the synth-compiled kiln image (if kiln-as-wasm→synth pans out — philosophically identical to gust's kernel-as-dissolved-wasm), or (b) link the no_std-Rust kiln staticlib (the proven baseline — exactly how kiln-async deploys today for thumbv7em).

Alignment notes

  • The wasm→native-toolchain-in-TCB trust argument (your existing concern) is helped here: payloads the interpreter runs never go through synth, so they don't rely on that toolchain's trust.
  • gale's north-star ("dissolved CM composition runs on the kiln/gust stack, kiln-async drives it bare metal") already proves the no_std/no_alloc embedded execution model this builds on.

Coordination

Planning/coordination issue; kiln-side tracked in kiln#415. kiln Phase-1 is a feasibility spike (kiln-as-wasm→synth go/no-go); the gust runtime-loading surface can be scoped in parallel. For the phase-2 kiln integration track.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions