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
    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