Skip to content

Emoji-gate synchronous future/stream read/write#641

Merged
lukewagner merged 1 commit intoWebAssembly:mainfrom
alexcrichton:gate-more
Apr 30, 2026
Merged

Emoji-gate synchronous future/stream read/write#641
lukewagner merged 1 commit intoWebAssembly:mainfrom
alexcrichton:gate-more

Conversation

@alexcrichton
Copy link
Copy Markdown
Collaborator

I understand that this change is "late in the game" for component-model-async things with WASIp3 around the corner, but in light of bytecodealliance/wasmtime#13212 I'd like to try to at least propose gating the ability to use {future,stream}.{read,write} synchronously for the initial WASIp3 0.3.0 release. I'm not aware of any preexisting language bindings actually using these functions, for example all wit-bindgen languages are using the async version. Given that lack of use, and now-cropping-up interesting questions, I'd like to ideally gate these to be sure to have enough time to come back in the future and thoroughly consider the interleavings and repurcussions here.

Specifically this change proposes moving the non-async functionality of these intrinsics behind the 🚝 feature gate. This preexisting feature gate mostly gated async-related builtins but it's generalized now to basically be "more options on more builtins" as a sort of grab-bag for now.

I understand that this change is "late in the game" for
component-model-async things with WASIp3 around the corner, but in light
of bytecodealliance/wasmtime#13212 I'd like to try to at least propose
gating the ability to use `{future,stream}.{read,write}` synchronously
for the initial WASIp3 0.3.0 release. I'm not aware of any preexisting
language bindings actually using these functions, for example all
`wit-bindgen` languages are using the `async` version. Given that lack
of use, and now-cropping-up interesting questions, I'd like to ideally
gate these to be sure to have enough time to come back in the future and
thoroughly consider the interleavings and repurcussions here.

Specifically this change proposes moving the non-`async` functionality
of these intrinsics behind the 🚝 feature gate. This preexisting feature
gate mostly gated async-related builtins but it's generalized now to
basically be "more options on more builtins" as a sort of grab-bag for
now.
@lukewagner
Copy link
Copy Markdown
Member

Makes sense to me to gate this if we're not using it from any producer toolchains atm; it's just an optimization.

alexcrichton added a commit to alexcrichton/wasmtime that referenced this pull request Apr 28, 2026
This commit renames the previous `wasm_component_model_async_builtins` feature to
`wasm_component_model_more_async_builtins` and then moves synchronous
future/stream reads/writes behind this feature. This is inspired by
bytecodealliance#13212 and corresponds to
WebAssembly/component-model#641 plus bytecodealliance/wasm-tools#2507.
alexcrichton added a commit to alexcrichton/wasmtime that referenced this pull request Apr 29, 2026
This commit renames the previous `wasm_component_model_async_builtins` feature to
`wasm_component_model_more_async_builtins` and then moves synchronous
future/stream reads/writes behind this feature. This is inspired by
bytecodealliance#13212 and corresponds to
WebAssembly/component-model#641 plus bytecodealliance/wasm-tools#2507.
PhoebeSzmucer pushed a commit to PhoebeSzmucer/wasm-tools that referenced this pull request Apr 29, 2026
…e#2507)

This commit renames the previous `CM_ASYNC_BUILTINS` feature to
`CM_MORE_ASYNC_BUILTINS` and then moves synchronous future/stream
reads/writes behind this feature. This is inspired by
bytecodealliance/wasmtime#13212 and corresponds to
WebAssembly/component-model#641.
pull Bot pushed a commit to kokizzu/wasmtime that referenced this pull request Apr 29, 2026
…e#13217)

This commit renames the previous `wasm_component_model_async_builtins` feature to
`wasm_component_model_more_async_builtins` and then moves synchronous
future/stream reads/writes behind this feature. This is inspired by
bytecodealliance#13212 and corresponds to
WebAssembly/component-model#641 plus bytecodealliance/wasm-tools#2507.
@lukewagner lukewagner merged commit 5331b91 into WebAssembly:main Apr 30, 2026
1 check passed
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