Skip to content

WASI P3: retarget RC → stable v0.3.0 (ratified 2026-06-11) #500

@avrabe

Description

@avrabe

WASI 0.3.0 was ratified and tagged v0.3.0 on 2026-06-11. Our P3 work (plan: docs/superpowers/plans/2026-03-21-wasi-p3-support.md, branch fix/p3-dual-compile) was built against the RC 0.3.0-rc-2026-03-15. This tracks finalizing it to stable.

The architecture (target-level wasi_version attr, same tools serve P2/P3) is unchanged — this is a finalization pass, not a redesign.

Scope (0.3.0 = async only)

  • wasmtime: bump pin 43.0.145.0.1 (runs 0.3.0 today; latest as of 2026-06-05). Move to 46 when released (ships 0.3.0 with Component-Model async on by default). Add checksums.
  • wit-bindgen: on 0.55.0; latest is 0.58.0 (2026-06-08). Verify final-0.3.0 async codegen (future<T>/stream<u8>/async func) and bump.
  • WIT source: retarget from the RC monorepo tag / wit-0.3.0-draft/ to the stable v0.3.0 interface tags (interfaces may have shifted during finalization). Recompute wasi_p3_deps.bzl archive checksums.
  • Bundle: graduate experimental-p3 once tools settle on wasmtime 46 (or add stable-p3). Update compatibility.wasi_rcwasi_version: "preview3" final.
  • Examples: re-verify examples/p3/rust_async + examples/p3/python_cli build/run against stable 0.3.0.
  • Land/merge fix/p3-dual-compile.

Language support (matches upstream)

Rust + JS (jco) ready; Python (componentize-py) + C in progress; TinyGo still no P3 (stays blocked); wac still no async composition (#180).

Explicitly OUT of scope — cooperative threading (future)

0.3.0 shipped async only. Cooperative threading is a distinct Component-Model feature, "coming soon" and behind async. It changes the core ABI (shadow-stack pointer → context.get 0, TLS → context.get 1), so it needs a new-ABI wasi-sdk/LLVM toolchain — see wasi-sdk#589. Track separately; do not attempt in the 0.3.0 retarget. (Shared-everything threads / true parallelism is further out still.)

Filed from a research request after the 0.3.0 ratification.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions