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
Enable ref types and bulk memory operations by default #2118
Enable ref types and bulk memory operations by default #2118
Conversation
1f42c0d
to
9307e47
Compare
The only prior experience we have for this is multi-value, and we didn't actually enable that by default until it was merged into the upstream spec itself. In that sense this is much earlier to enable-by-default than our precedent. Given that, I wonder if we might want to take this moment to discuss/agree about when to enable new features by default? I personally feel that merging into the spec is probably too slow, and stage 4 (which these proposals are at) feels like it's the right time. It's what Firefox did! If others agree, could this also add some documentation in the book to when we turn a feature on by default? I would say the requirements for a Wasmtime wasm feature to be on by default would be:
In terms of the content of this PR, r=me, just wanted to point out the procedural point! |
Actually some other requirements I would add are:
|
This is a good point to bring up, thanks Alex. Once we find consensus on what is required here, we should probably document it in our contributing guide. You proposed requirements sound good to me, but I would even expand the last point about fuzzing to include a review of the ways that we've exposed the feature to the fuzzers.
In particular, if we aren't pretty confident about that last point, I don't think we are ready to turn the feature on by default yet. According to these standards, I feel good about reference types, and okay about bulk memory. I think bulk memory could probably use more runtime testing, rather than just "can we compile modules that use it" testing. For reference types, we have specialized fuzz targets that actually run the modules, not just compile them. |
9307e47
to
e0c014c
Compare
Oh yeah and to be clear I also feel good about the implementation we have of reference types and bulk memory myself. Also, as an aside, would you be up (after this lands) to send a similar PR to |
Subscribe to Label Actioncc @bnjbvr, @peterhuene
This issue or pull request has been labeled: "cranelift", "wasmtime:api"
Thus the following users have been cc'd because of the following labels:
To subscribe or unsubscribe from this label, edit the |
If you want to add some docs to https://bytecodealliance.github.io/wasmtime/stability.html (or that section, maybe not exactly that page), that might be a good place to add some info? |
…ce types This fix avoids a small slow down in scenarios where reference types are enabled but a given function doesn't actually use them. Fixes bytecodealliance#1883
e0c014c
to
ef13e80
Compare
@alexcrichton okay I added two new bits of docs:
Want to take another look? |
Thanks for writing all that up! |
Both have spent a bit of time enabled in our fuzzers by default and we haven't run into any issues in a while. The one catch was the potential slowdown due to #1883, but