rvolosatovs opened issue #11246:
Steps to Reproduce
apply:
diff --git a/crates/wasi/src/p3/bindings.rs b/crates/wasi/src/p3/bindings.rs index 864d1eb8a4..02651057b8 100644 --- a/crates/wasi/src/p3/bindings.rs +++ b/crates/wasi/src/p3/bindings.rs @@ -38,50 +38,6 @@ //! }, //! concurrent_exports: true, //! concurrent_imports: true, -//! async: { -//! only_imports: [ -//! "wasi:cli/stdin@0.3.0#get-stdin", -//! "wasi:cli/stdout@0.3.0#set-stdout", -//! "wasi:cli/stderr@0.3.0#set-stderr", -//! "wasi:clocks/monotonic-clock@0.3.0#[async]wait-for", -//! "wasi:clocks/monotonic-clock@0.3.0#[async]wait-until", -//! "wasi:filesystem/types@0.3.0#[method]descriptor.read-via-stream", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.write-via-stream", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.append-via-stream", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.advise", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.sync-data", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.get-flags", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.get-type", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.set-size", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.set-times", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.read-directory", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.sync", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.create-directory-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.stat", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.stat-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.set-times-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.link-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.open-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.readlink-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.remove-directory-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.rename-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.symlink-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.unlink-file-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.is-same-object", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.metadata-hash", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.metadata-hash-at", -//! "wasi:sockets/ip-name-lookup@0.3.0#[async]resolve-addresses", -//! "wasi:sockets/types@0.3.0#[async method]tcp-socket.connect", -//! "wasi:sockets/types@0.3.0#[async method]tcp-socket.send", -//! "wasi:sockets/types@0.3.0#[async method]udp-socket.receive", -//! "wasi:sockets/types@0.3.0#[async method]udp-socket.send", -//! "wasi:sockets/types@0.3.0#[method]tcp-socket.bind", -//! "wasi:sockets/types@0.3.0#[method]tcp-socket.listen", -//! "wasi:sockets/types@0.3.0#[method]tcp-socket.receive", -//! "wasi:sockets/types@0.3.0#[method]udp-socket.bind", -//! "wasi:sockets/types@0.3.0#[method]udp-socket.connect", -//! ], -//! }, //! }); //! //! struct MyState { @@ -123,50 +79,6 @@ mod generated { trappable_imports: true, concurrent_exports: true, concurrent_imports: true, - async: { - only_imports: [ - "wasi:cli/stdin@0.3.0#get-stdin", - "wasi:cli/stdout@0.3.0#set-stdout", - "wasi:cli/stderr@0.3.0#set-stderr", - "wasi:clocks/monotonic-clock@0.3.0#[async]wait-for", - "wasi:clocks/monotonic-clock@0.3.0#[async]wait-until", - "wasi:filesystem/types@0.3.0#[method]descriptor.read-via-stream", - "wasi:filesystem/types@0.3.0#[async method]descriptor.write-via-stream", - "wasi:filesystem/types@0.3.0#[async method]descriptor.append-via-stream", - "wasi:filesystem/types@0.3.0#[async method]descriptor.advise", - "wasi:filesystem/types@0.3.0#[async method]descriptor.sync-data", - "wasi:filesystem/types@0.3.0#[async method]descriptor.get-flags", - "wasi:filesystem/types@0.3.0#[async method]descriptor.get-type", - "wasi:filesystem/types@0.3.0#[async method]descriptor.set-size", - "wasi:filesystem/types@0.3.0#[async method]descriptor.set-times", - "wasi:filesystem/types@0.3.0#[async method]descriptor.read-directory", - "wasi:filesystem/types@0.3.0#[async method]descriptor.sync", - "wasi:filesystem/types@0.3.0#[async method]descriptor.create-directory-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.stat", - "wasi:filesystem/types@0.3.0#[async method]descriptor.stat-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.set-times-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.link-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.open-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.readlink-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.remove-directory-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.rename-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.symlink-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.unlink-file-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.is-same-object", - "wasi:filesystem/types@0.3.0#[async method]descriptor.metadata-hash", - "wasi:filesystem/types@0.3.0#[async method]descriptor.metadata-hash-at", - "wasi:sockets/ip-name-lookup@0.3.0#[async]resolve-addresses", - "wasi:sockets/types@0.3.0#[async method]tcp-socket.connect", - "wasi:sockets/types@0.3.0#[async method]tcp-socket.send", - "wasi:sockets/types@0.3.0#[async method]udp-socket.receive", - "wasi:sockets/types@0.3.0#[async method]udp-socket.send", - "wasi:sockets/types@0.3.0#[method]tcp-socket.bind", - "wasi:sockets/types@0.3.0#[method]tcp-socket.listen", - "wasi:sockets/types@0.3.0#[method]tcp-socket.receive", - "wasi:sockets/types@0.3.0#[method]udp-socket.bind", - "wasi:sockets/types@0.3.0#[method]udp-socket.connect", - ], - }, }); } pub use self::generated::LinkOptions;to:
$ git checkout 2b8322817e # latest `main` as of time of writing $ curl -sL https://github.com/bytecodealliance/wasmtime/pull/11221.patch | git am -3 $ curl -sL https://github.com/bytecodealliance/wasmtime/pull/11244.patch | git am -3or, potentially, latest
mainif/when #11221 and https://github.com/bytecodealliance/wasmtime/pull/11244 are mergedthen:
$ cargo build -p wasmtime-wasi --features p3Expected Results
Success
Actual Results
error[E0405]: cannot find trait `HostConcurrent` in module `monotonic_clock` --> crates/wasi/src/p3/clocks/host.rs:45:26 | 45 | impl<T> monotonic_clock::HostConcurrent for WasiClocks<T> | ^^^^^^^^^^^^^^ not found in `monotonic_clock`even though functions are marked as
async: https://github.com/rvolosatovs/wasmtime/blob/c822293b26a1f2720d5a4cd035a59a66d4512e90/crates/wasi/src/p3/wit/deps/clocks/monotonic-clock.wit#L34-L44Versions and Environment
Wasmtime version or commit: 2b8322817e with patches
Operating system: MacOS
Architecture: aarch64-darwin
rvolosatovs added the bug label to Issue #11246.
alexcrichton added the wasm-proposal:component-model-async label to Issue #11246.
alexcrichton removed the bug label from Issue #11246.
alexcrichton assigned alexcrichton to issue #11246.
alexcrichton closed issue #11246:
Steps to Reproduce
apply:
diff --git a/crates/wasi/src/p3/bindings.rs b/crates/wasi/src/p3/bindings.rs index 864d1eb8a4..02651057b8 100644 --- a/crates/wasi/src/p3/bindings.rs +++ b/crates/wasi/src/p3/bindings.rs @@ -38,50 +38,6 @@ //! }, //! concurrent_exports: true, //! concurrent_imports: true, -//! async: { -//! only_imports: [ -//! "wasi:cli/stdin@0.3.0#get-stdin", -//! "wasi:cli/stdout@0.3.0#set-stdout", -//! "wasi:cli/stderr@0.3.0#set-stderr", -//! "wasi:clocks/monotonic-clock@0.3.0#[async]wait-for", -//! "wasi:clocks/monotonic-clock@0.3.0#[async]wait-until", -//! "wasi:filesystem/types@0.3.0#[method]descriptor.read-via-stream", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.write-via-stream", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.append-via-stream", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.advise", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.sync-data", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.get-flags", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.get-type", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.set-size", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.set-times", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.read-directory", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.sync", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.create-directory-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.stat", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.stat-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.set-times-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.link-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.open-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.readlink-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.remove-directory-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.rename-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.symlink-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.unlink-file-at", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.is-same-object", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.metadata-hash", -//! "wasi:filesystem/types@0.3.0#[async method]descriptor.metadata-hash-at", -//! "wasi:sockets/ip-name-lookup@0.3.0#[async]resolve-addresses", -//! "wasi:sockets/types@0.3.0#[async method]tcp-socket.connect", -//! "wasi:sockets/types@0.3.0#[async method]tcp-socket.send", -//! "wasi:sockets/types@0.3.0#[async method]udp-socket.receive", -//! "wasi:sockets/types@0.3.0#[async method]udp-socket.send", -//! "wasi:sockets/types@0.3.0#[method]tcp-socket.bind", -//! "wasi:sockets/types@0.3.0#[method]tcp-socket.listen", -//! "wasi:sockets/types@0.3.0#[method]tcp-socket.receive", -//! "wasi:sockets/types@0.3.0#[method]udp-socket.bind", -//! "wasi:sockets/types@0.3.0#[method]udp-socket.connect", -//! ], -//! }, //! }); //! //! struct MyState { @@ -123,50 +79,6 @@ mod generated { trappable_imports: true, concurrent_exports: true, concurrent_imports: true, - async: { - only_imports: [ - "wasi:cli/stdin@0.3.0#get-stdin", - "wasi:cli/stdout@0.3.0#set-stdout", - "wasi:cli/stderr@0.3.0#set-stderr", - "wasi:clocks/monotonic-clock@0.3.0#[async]wait-for", - "wasi:clocks/monotonic-clock@0.3.0#[async]wait-until", - "wasi:filesystem/types@0.3.0#[method]descriptor.read-via-stream", - "wasi:filesystem/types@0.3.0#[async method]descriptor.write-via-stream", - "wasi:filesystem/types@0.3.0#[async method]descriptor.append-via-stream", - "wasi:filesystem/types@0.3.0#[async method]descriptor.advise", - "wasi:filesystem/types@0.3.0#[async method]descriptor.sync-data", - "wasi:filesystem/types@0.3.0#[async method]descriptor.get-flags", - "wasi:filesystem/types@0.3.0#[async method]descriptor.get-type", - "wasi:filesystem/types@0.3.0#[async method]descriptor.set-size", - "wasi:filesystem/types@0.3.0#[async method]descriptor.set-times", - "wasi:filesystem/types@0.3.0#[async method]descriptor.read-directory", - "wasi:filesystem/types@0.3.0#[async method]descriptor.sync", - "wasi:filesystem/types@0.3.0#[async method]descriptor.create-directory-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.stat", - "wasi:filesystem/types@0.3.0#[async method]descriptor.stat-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.set-times-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.link-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.open-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.readlink-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.remove-directory-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.rename-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.symlink-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.unlink-file-at", - "wasi:filesystem/types@0.3.0#[async method]descriptor.is-same-object", - "wasi:filesystem/types@0.3.0#[async method]descriptor.metadata-hash", - "wasi:filesystem/types@0.3.0#[async method]descriptor.metadata-hash-at", - "wasi:sockets/ip-name-lookup@0.3.0#[async]resolve-addresses", - "wasi:sockets/types@0.3.0#[async method]tcp-socket.connect", - "wasi:sockets/types@0.3.0#[async method]tcp-socket.send", - "wasi:sockets/types@0.3.0#[async method]udp-socket.receive", - "wasi:sockets/types@0.3.0#[async method]udp-socket.send", - "wasi:sockets/types@0.3.0#[method]tcp-socket.bind", - "wasi:sockets/types@0.3.0#[method]tcp-socket.listen", - "wasi:sockets/types@0.3.0#[method]tcp-socket.receive", - "wasi:sockets/types@0.3.0#[method]udp-socket.bind", - "wasi:sockets/types@0.3.0#[method]udp-socket.connect", - ], - }, }); } pub use self::generated::LinkOptions;to:
$ git checkout 2b8322817e # latest `main` as of time of writing $ curl -sL https://github.com/bytecodealliance/wasmtime/pull/11221.patch | git am -3 $ curl -sL https://github.com/bytecodealliance/wasmtime/pull/11244.patch | git am -3or, potentially, latest
mainif/when #11221 and https://github.com/bytecodealliance/wasmtime/pull/11244 are mergedthen:
$ cargo build -p wasmtime-wasi --features p3Expected Results
Success
Actual Results
error[E0405]: cannot find trait `HostConcurrent` in module `monotonic_clock` --> crates/wasi/src/p3/clocks/host.rs:45:26 | 45 | impl<T> monotonic_clock::HostConcurrent for WasiClocks<T> | ^^^^^^^^^^^^^^ not found in `monotonic_clock`even though functions are marked as
async: https://github.com/rvolosatovs/wasmtime/blob/c822293b26a1f2720d5a4cd035a59a66d4512e90/crates/wasi/src/p3/wit/deps/clocks/monotonic-clock.wit#L34-L44Versions and Environment
Wasmtime version or commit: 2b8322817e with patches
Operating system: MacOS
Architecture: aarch64-darwin
Last updated: Dec 06 2025 at 06:05 UTC