Skip to content

Phase 1: multi-module region-imports (L13 positive-form) + cross-module differential fixtures #140

@hyperpolymath

Description

@hyperpolymath

Follow-up carved out of #128 after its linear-ownership boundary half landed in #139 (merged). #128 delivered producer-side multi-module emission at parity with the verifier's existing cross-module coverage (extract_exports + verify_cross_module — the L10 linear import boundary). This issue tracks the remainder.

Remainder

  • L13 positive-form / region-imports. Producer-side emission of the typedwasm.region-imports carrier for shared-region schema agreement across modules — the examples/02-multi-module.twasm "killer feature": one module export regions a schema, others import region … from it.
    • Blocked: the carrier is proposal 0003 [draft] (docs/proposals/0003-region-imports-carrier.adoc) with no verifier pass yet, so emission would be unverifiable today. Gate: proposal 0003 leaves draft + a verifier pass lands.
    • Field IDs must be shared-schema-stable across modules (per docs/developer/handoff-typed-access-sites-codegen.adoc).
  • Cross-module differential fixture. Land a producer-emitted callee/caller .wasm pair under crates/typed-wasm-verify/tests/fixtures/c5_real/, exercised against verify_cross_module. (The in-crate crates/typed-wasm-codegen/tests/multimodule.rs is the parity oracle until then.)
  • Wire examples/02-multi-module.twasm. Build it through the producer once the front-end → IR seam (Phase 1 / D1: codegen coverage — all 10 levels across all 6 .twasm examples #127) lands; today the multi-module emitters use hand-built in-Rust IR (like example 01).

Context

Part of Phase 1 (#49).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions