Skip to content
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

Remove experimental interface types support #3372

Merged
merged 7 commits into from
Apr 10, 2023

Conversation

Liamolucko
Copy link
Collaborator

This is work-in-progress, I'm just opening this as a draft to make sure CI is passing.

This PR removes wasm-bindgen's experimental support for interface types. This is because it relies heavily on the archived wit-* family of crates, which are now triggering future incompatibility warnings, as reported in #3356.

The support is far out of date with the upstream component model, so it wouldn't have been particularly useful in its current state anyway.

Copy link
Contributor

@alexcrichton alexcrichton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed this is all good to remove, thanks for doing this!

It looks like there's a few more test failures due to expectations but other than that lgtm

Namely `Generated` being an enum and the `trap` fields of `Instruction::IntToWasm` and `Instruction::WasmToInt`.
For some reason wasm-bindgen would only allow enabling multi-value if interface types were enabled, throwing an error otherwise. I couldn't see any reason why, so I changed that.

Since that also meant that multi-value + JS bindings wasn't being tested, allowing it exposed some bugs that I fixed.
@Liamolucko
Copy link
Collaborator Author

While working on this I noticed that wasm-bindgen throws an error if you try to use the multi-value transform without interface types enabled. I couldn't see any reason for that, so I've gotten rid of that check.

@Liamolucko Liamolucko marked this pull request as ready for review April 10, 2023 08:25
@Liamolucko Liamolucko changed the title WIP: Remove experimental interface types support Remove experimental interface types support Apr 10, 2023
@alexcrichton alexcrichton merged commit 8481b4f into rustwasm:main Apr 10, 2023
@Liamolucko Liamolucko deleted the remove-wit branch April 10, 2023 23:12
@ranile
Copy link
Collaborator

ranile commented Apr 11, 2023

Now that this is merged, I assume the next release will be semver breaking (0.3.0)? We should create a tracking issue/check list for that

@alexcrichton
Copy link
Contributor

I don't think this is a breaking change, so this should be good to keep up with the 0.2 track.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants