Add support for implements clause#1551
Draft
ricochet wants to merge 1 commit intobytecodealliance:mainfrom
Draft
Add support for implements clause#1551ricochet wants to merge 1 commit intobytecodealliance:mainfrom
implements clause#1551ricochet wants to merge 1 commit intobytecodealliance:mainfrom
Conversation
The component model `implements` clause allows a world to import or export the same interface multiple times under different plain names. This threads the new `implements:Option<InterfaceId>` field from wit-parser through the `WorldGenerator` trait and all backends (Rust, C, C++, C#, Go, MoonBit, Markdown). A shared `wasm_import_module_name` helper produces the `[implements=<I>]label` binary encoding. Key per-backend concerns handled: - Type dedup: types are generated once per InterfaceId, not per label - Wasm names: all wasm-level import/export names use the implements encoding when applicable - Distinct bindings: each label gets its own module/namespace with independent function bindings
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
DO NOT MERGE until wasm-tools release with
bytecodealliance/wasm-tools#2453
The component model
implementsclause allows a world to importor export the same interface multiple times under
different plain names.
This threads the new
implements:Option<InterfaceId>field fromwit-parser through the
WorldGeneratortraitand all backends (Rust, C, C++, C#, Go, MoonBit, Markdown).
A shared
wasm_import_module_namehelperproduces the
[implements=<I>]labelbinary encoding.Key per-backend concerns handled:
not per label
implements encoding when applicable
module/namespace with independent function bindings