You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
implements loses its version suffix when canonical names are enabled #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.
Activity
Match canonical implements names in `is_implements`
Match canonical implements names in `is_implements` (bytecodealliance…