-
Notifications
You must be signed in to change notification settings - Fork 261
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
Mismatch in stability attributes error in wit-parser when using Unstable
attribute in wit
#1995
Comments
Thanks for the report! I'm traveling for a bit so may take me a bit to dig in to this but I plan on doing so in the not-too-distant future |
Digging into this, can you confirm that the reduced test case you have reproduces the original error you were seeing? Locally if I revert your fix on your branch and run the test suite I see:
which looks different from "mismatch in stability attributes" that you were seeing with I'm definitely seeing some funny behavior that I wouldn't expect with package wasmtime:test;
interface types {
@unstable(feature = notsure)
use wasi:dep2/stable@0.2.3.{unstable-resource};
}
package wasi:dep2@0.2.3 {
interface stable {
@unstable(feature = notsure)
resource unstable-resource;
}
} which yields:
and while this looks problematic it looks different from the problems you were seeing originally too |
This commit addresses an issue where stability attributes on a `use` didn't quite work as expected when a type to another package was referred to. This fix was to update the "merging" process to skip types being processed in one more location which involved threading some more contexts around. Additionally `use` items, when elaborated, now contain their stability instead of the default stability to ensure that's propagated correctly as well. cc bytecodealliance#1995 but doesn't fix it
I've fixed the issue of your reduced test case (I think) as part of #2046, and it may actually end up helping the original test case, but I'd still want to confirm before closing. |
This commit addresses an issue where stability attributes on a `use` didn't quite work as expected when a type to another package was referred to. This fix was to update the "merging" process to skip types being processed in one more location which involved threading some more contexts around. Additionally `use` items, when elaborated, now contain their stability instead of the default stability to ensure that's propagated correctly as well. cc #1995 but doesn't fix it
When a new interface is marked as
@unstable (feature = somefeaturegate)
and it uses a stable type from another package viause package:interface/type.{name}
the resulting package can't be imported into other packages that use it. The resulting error is:example
I've demonstrated this by adding a test: jsturtevant@4495325
As well as trying to integrate it into another world: https://github.com/WebAssembly/wasi-cli/compare/main...jsturtevant:wasi-cli:wasi-tls-example?expand=1 (note that this was just a test to see if I was getting in the a set up similiar to other imports)
I was getting this original from wit-bindgen macro: https://github.com/bytecodealliance/wit-bindgen/tree/main?tab=readme-ov-file#supported-guest-languages
workaround
for now I've patched wit-parser like jsturtevant@22cfe2e but it seems like there is probably a better way to approach?
The text was updated successfully, but these errors were encountered: