Skip to content

watch: Component Model 1.0 roadmap items to monitor (lazy ABI, multivalue, function subtyping/map) #274

Description

@avrabe

Tracking note from reviewing the Bytecode Alliance roadmap post "The Road to Component Model 1.0" (https://bytecodealliance.org/articles/the-road-to-component-model-1-0, June 8 2026) against meld.

Conclusion: no code adjustments implied today

The article is a roadmap/announcement, not a normative spec. It commits to no version/date for 1.0, and its headline ABI change (lazy ABI) ships first as an opt-in 0.3.x option, default only "when 1.0 arrives." meld correctly targets the current eager linear-memory Canonical ABI (baseline pinned to spec commit deb0b0a, 2025-05-19, proofs/DECISIONS.md:12-13), which the article confirms stays supported via adapters.

Everything meld implements that the article touches is already present/correct:

  • error-context intrinsics + opaque-i32 handle type (parser.rs:572-577, 3554-3555, 3802-3812) — article's change is making it mandatory in result error cases (a producer/WIT convention, not a fuser obligation).
  • P3 stream/future/async lowering (p3_stream.rs, p3_async.rs, p3_bridge.rs) — article's async-overhead work is runtime-side; stream-splicing/cooperative-threads are unshipped.
  • string encodings (utf8/utf16/latin1+utf16 with UTF16_TAG, fact.rs), MAX_FLAT/retptr spilling — not mentioned by the article at all.

Strategic note: the article's proposed lower-components tool ("smash a compound component into a single core Wasm module") is what meld does — meld appearing as a desired capability on the BA's own 1.0 roadmap validates its design.

Watch-list (no action now — monitor the 0.3.x release where opt-ins land)

  1. Lazy ABI — callee returns opaque lazy value handles instead of eager cabi_realloc+memory.copy. Would require a genuinely new adapter lowering mode at meld's realloc/copy seam (adapter/fact.rs, merger.rs cabi_realloc handling). Largest eventual effort; spec-conformance, future.
  2. Multivalue returns at the C-ABI level — would simplify/replace retptr spilling (resolver.rs:320-353, fact.rs result lifting). Medium, future.
  3. Function subtyping / map type — would extend ComponentValType / canonical_abi_size/align (parser.rs) and CopyLayout (resolver.rs) if they reach a stable ABI representation. Future, unshipped.

Action: revisit when CM publishes a newer normative ABI or the 0.3.x lazy-ABI opt-in lands; bump the deb0b0a baseline in proofs/DECISIONS.md then. Nothing actionable from the roadmap post itself.

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