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.
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:
main.compute) falls through to the WASI dispatcher →Unknown WASI function;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/runinstead of a core_start), and was verified on a fixture whoserunis 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
--componentoutput (note: meld 0.33fusecurrently emits a core module, not a component — coordinate with meld on the--componentpath). Refs #364, #344, meld#297.