-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create initial Witty crate with primitive type definitions #880
Merged
Conversation
This file contains 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
ma2bd
approved these changes
Jul 5, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Of course, now, we want to see how it's going to be consumed.
}; | ||
} | ||
|
||
simple_type!(bool, 1); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice
Populate it with a manifest file, and some initial documentation.
Collect all fundamental primitive types defined by the Component Model.
Represent the primitive types that are natively supported by WebAssembly.
Ensure all `SimpleType`s can be flattened into a `FlatType`.
Primitives that are natively supported by WebAssembly should not be flattened into some other type.
Allow `SimpleType` implementations to be converted into their `FlatType` representation.
Make it easy to construct simple types from their flattened representations.
14 tasks
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.
Motivation
The goal is to implement a new crate that generates host side code to interact with Wasm guest modules through a WIT interface. The first step is to represent the fundamental WebAssembly and WIT primitive types.
Solution
Use a sub-set of the Rust types as the fundamental primitive types. There are actually two sub-sets:
SimpleType
s andFlatType
s. ASimpleType
is part of the set of fundamental types defined for WIT (through the Component Model). The set ofFlatType
s is a sub-set of the set ofSimpleType
s, and represent the types that are natively supported in a WebAssembly virtual machine.The types are in separate modules because more functionality will be added to them later.