Skip to content

Component multi-core instantiation: cross-core user imports (sibling-module function/memory) aren't linked #375

Description

@avrabe

Follow-up gap surfaced while landing #364 (run command components via wasi:cli/run).

Gap

In kilnd's direct multi-core component instantiation (kiln-component), a core module that imports a non-WASI user function or memory from a sibling core module in the same component is not linked:

  • an imported user function (e.g. main.compute) falls through to the WASI dispatcher → Unknown WASI function;
  • an imported memory → out-of-bounds.

WASI imports ARE wired; only cross-core user imports (the component's own inter-module wiring) are missing.

Why it matters

#364 fixed the run-dispatch (drive wasi:cli/run instead of a core _start), and was verified on a fixture whose run is self-contained in one core module to sidestep this. But a real meld-fused / wac-composed component wires multiple core modules together (stubs + fused app + fixup + caller), so fully running arbitrary such components needs the component's core-instance import graph honored — resolving each core import against the exporting sibling core instance, per the Component Model's core-instance instantiate args.

Scope

Distinct from #364 (run-dispatch, done) and #344 (direct named-export invoke, done). This is the inter-core-module linking layer. Blocks the meld→kiln seam for non-trivial fused components once meld emits --component output (note: meld 0.33 fuse currently emits a core module, not a component — coordinate with meld on the --component path). Refs #364, #344, meld#297.

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