Stream: git-wasmtime

Topic: wasmtime / issue #14854 implements loses its version suff...


view this post on Zulip Wasmtime GitHub notifications bot (Oct 19 2026 at 20:46):

jrandolf opened issue #14854:

With Config::wasm_component_model_canonical_names(true), an import like (import "p" (implements "a:b/c@1") (version-suffix ".2.3") (instance)) is reported with implements == "a:b/c@1", and ComponentExtern::is_implements("a:b/c@1.2.3") and is_implements("a:b/c@1.0.0") are both false.

That means bindgen!'s named_imports and the WASI crates' add_named_to_linker, which match with is_implements, silently skip these imports, e.g. for any component built with wasm-tools component new --emit-canonical-names. wasmparser exposes the full version through full_implements(), but Wasmtime stores implements (inline.rs ~1959 and types_builder.rs ~251). The plain canonical import name a:b/c@1 with that suffix doesn't resolve against a host a:b/c@1.2.3 either.

I realize canonical names are still a work in progress, but since the config option is exposed it seemed worth tracking.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 19 2026 at 20:55):

alexcrichton added the wasm-proposal:component-model label to Issue #14854.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 19 2026 at 20:55):

alexcrichton added the wasm-proposal:component-model-implements label to Issue #14854.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 19 2026 at 20:56):

alexcrichton added the wasm-proposal:component-canon-names label to Issue #14854.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 20 2026 at 20:43):

alexcrichton closed issue #14854:

With Config::wasm_component_model_canonical_names(true), an import like (import "p" (implements "a:b/c@1") (version-suffix ".2.3") (instance)) is reported with implements == "a:b/c@1", and ComponentExtern::is_implements("a:b/c@1.2.3") and is_implements("a:b/c@1.0.0") are both false.

That means bindgen!'s named_imports and the WASI crates' add_named_to_linker, which match with is_implements, silently skip these imports, e.g. for any component built with wasm-tools component new --emit-canonical-names. wasmparser exposes the full version through full_implements(), but Wasmtime stores implements (inline.rs ~1959 and types_builder.rs ~251). The plain canonical import name a:b/c@1 with that suffix doesn't resolve against a host a:b/c@1.2.3 either.

I realize canonical names are still a work in progress, but since the config option is exposed it seemed worth tracking.


Last updated: Oct 31 2026 at 23:03 UTC