jrandolf opened PR #14866 from jrandolf:implements-canonical-version to bytecodealliance:main:
With canonical names enabled,
(implements "a:b/c@1") (version-suffix ".2.3")was recorded as justa:b/c@1. SoComponentExtern::implementsreported a truncated name, andis_implementsdidn't match any version of the interface, which madebindgen!'snamed_importsand the WASIadd_named_to_linkersilently skip such imports. This records the fulla:b/c@1.2.3, using wasmparser'sfull_implements().Root import names had the same problem: an import of
a:b/c@1with suffix.2.3was looked up in theLinkerasa:b/c@1, which never matches a host definition likea:b/c@1.2.3. Imports now use the full name too. Lookups inside the component still use the short canonical name.Exports with a version suffix still use the short name (
get_export("a:b/c@1.2.3")doesn't find them), and so do interface-named exports inside instance and component types. Fixing those is a larger change, so I left them for a follow-up.Closes #14854
jrandolf has marked PR #14866 as ready for review.
jrandolf removed the review request for wasmtime-core-reviewers from PR #14866.
jrandolf requested dicej for a review on PR #14866.
jrandolf requested wasmtime-core-reviewers for a review on PR #14866.
github-actions[bot] added the label wasmtime:api on PR #14866.
:memo: alexcrichton submitted PR review.
:speech_balloon: alexcrichton created PR review comment:
I don't think that this is quite right -- the intention is that the exact name of the import is what's keyed on and what's in the map. Wasmtime doesn't intend to just erase the
version-suffix, but rather in the future the goal is to simplify the maps in Wasmtime to not have any semver matching at all (ideally) and purely rely on the un-suffixed name.
alexcrichton removed the review request for dicej from PR #14866.
jrandolf updated PR #14866.
:thumbs_up: alexcrichton submitted PR review.
alexcrichton added PR #14866 Keep the full implements version when canonical names are enabled to the merge queue.
:check: alexcrichton merged PR #14866.
alexcrichton removed PR #14866 Keep the full implements version when canonical names are enabled from the merge queue.
Last updated: Oct 31 2026 at 23:03 UTC