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 withimplements == "a:b/c@1", andComponentExtern::is_implements("a:b/c@1.2.3")andis_implements("a:b/c@1.0.0")are both false.That means
bindgen!'snamed_importsand the WASI crates'add_named_to_linker, which match withis_implements, silently skip these imports, e.g. for any component built withwasm-tools component new --emit-canonical-names. wasmparser exposes the full version throughfull_implements(), but Wasmtime storesimplements(inline.rs~1959 andtypes_builder.rs~251). The plain canonical import namea:b/c@1with that suffix doesn't resolve against a hosta:b/c@1.2.3either.I realize canonical names are still a work in progress, but since the config option is exposed it seemed worth tracking.
alexcrichton added the wasm-proposal:component-model label to Issue #14854.
alexcrichton added the wasm-proposal:component-model-implements label to Issue #14854.
alexcrichton added the wasm-proposal:component-canon-names label to Issue #14854.
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 withimplements == "a:b/c@1", andComponentExtern::is_implements("a:b/c@1.2.3")andis_implements("a:b/c@1.0.0")are both false.That means
bindgen!'snamed_importsand the WASI crates'add_named_to_linker, which match withis_implements, silently skip these imports, e.g. for any component built withwasm-tools component new --emit-canonical-names. wasmparser exposes the full version throughfull_implements(), but Wasmtime storesimplements(inline.rs~1959 andtypes_builder.rs~251). The plain canonical import namea:b/c@1with that suffix doesn't resolve against a hosta:b/c@1.2.3either.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