Robbepop opened issue #9009:
Recently we merged https://github.com/bytecodealliance/wasmtime/pull/8900 to remove the
wasmtime
optional dependency fromwasi-common/sync
since it was unused mostly.This had the effect that users could use
wasi-common
with itssync
feature without pulling in the giantic Wasmtime dependency ... or so I thought.
Today I wanted to usewasi-common
v23.0.1 (including this improvement) into Wasmi'swasmi_wasi
crate and to my surprise Cargo pulled Wasmtime via thewasi-common
dependency.
When I removed thesync
feature usage (which is kinda critical unfortunately) the Wasmtime dependency was gone.I am seriously confused as to why this happens. Looking at
wasi-common
'sCargo.toml
file does not help my confusion.
https://github.com/bytecodealliance/wasmtime/blob/main/crates/wasi-common/Cargo.tomlAny help or clarification?
Robbepop edited issue #9009:
Recently we merged https://github.com/bytecodealliance/wasmtime/pull/8900 to remove the
wasmtime
optional dependency fromwasi-common/sync
since it was unused mostly.This had the effect that users could use
wasi-common
with itssync
feature without pulling in the giantic Wasmtime dependency ... or so I thought.
Today I wanted to usewasi-common
v23.0.1 (including this improvement) into Wasmi'swasmi_wasi
crate and to my surprise Cargo pulled Wasmtime via thewasi-common
dependency.
When I removed thesync
feature usage (which is kinda critical unfortunately) the Wasmtime dependency was gone.I am seriously confused as to why this happens. Looking at
wasi-common
'sCargo.toml
file does not help my confusion.
https://github.com/bytecodealliance/wasmtime/blob/main/crates/wasi-common/Cargo.tomlAny help or clarification?
tl;dr:
This pulls Wasmtime:
[dependencies] wasi-common = { version = "23.0.1", default-features = false, features = ["sync"]}
And this does not:
[dependencies] wasi-common = { version = "23.0.1", default-features = false}
Robbepop edited issue #9009:
Recently we merged https://github.com/bytecodealliance/wasmtime/pull/8900 to remove the
wasmtime
optional dependency fromwasi-common/sync
since it was unused mostly.This had the effect that users could use
wasi-common
with itssync
feature without pulling in the giantic Wasmtime dependency ... or so I thought.
Today I wanted to usewasi-common
v23.0.1 (including this improvement) into Wasmi'swasmi_wasi
crate and to my surprise Cargo pulled Wasmtime via thewasi-common
dependency.
When I removed thesync
feature usage (which is kinda critical unfortunately) the Wasmtime dependency was gone.I am seriously confused as to why this happens. Looking at
wasi-common
'sCargo.toml
file does not help my confusion.
https://github.com/bytecodealliance/wasmtime/blob/main/crates/wasi-common/Cargo.tomlAny help or clarification?
tl;dr:
This pulls Wasmtime:
[dependencies] wasi-common = { version = "23.0.1", default-features = false, features = ["sync"] }
And this does not:
[dependencies] wasi-common = { version = "23.0.1", default-features = false }
But why?
Robbepop commented on issue #9009:
Here is a Wasmi PR with which you can reproduce the issue: https://github.com/wasmi-labs/wasmi/pull/1140
Robbepop commented on issue #9009:
Building
wasmi_wasi
withcargo build -p wasmi_wasi --no-default-features --verbose
Reveals that somehow the
wasmtime
feature flag is set:
![image](https://github.com/user-attachments/assets/44f4fa29-57bf-4da5-a478-0e98daabe4a9)
bjorn3 commented on issue #9009:
According to https://docs.rs/crate/wasi-common/23.0.1/source/Cargo.toml.orig, #8900 is not yet included in wasi-common 23.0.x. Each release branches on the 5th of the month and gets released on the 20th: https://github.com/bytecodealliance/wasmtime/blob/5d0d61602f2dfa5478ef120a86a9009d74ac56bb/.github/workflows/release-process.yml#L23-L24 #8900 got merged on the 8th of this month, which is 3 days after the 23.0 release got branched.
Robbepop commented on issue #9009:
According to https://docs.rs/crate/wasi-common/23.0.1/source/Cargo.toml.orig, #8900 is not yet included in wasi-common 23.0.x. Each release branches on the 5th of the month and gets released on the 20th:
https://github.com/bytecodealliance/wasmtime/blob/5d0d61602f2dfa5478ef120a86a9009d74ac56bb/.github/workflows/release-process.yml#L23-L24
#8900 got merged on the 8th of this month, which is 3 days after the 23.0 release got branched.Ah okay, that explains why I just successfully built
wasi-common
without the Wasmtime dependency when using the currentmain
branch of Wasmtime. :face_palm: Good to know.So this means some more waiting before I can merge the Wasmi PR. Thanks for letting me know!
This issue can be closed then.
alexcrichton closed issue #9009:
Recently we merged https://github.com/bytecodealliance/wasmtime/pull/8900 to remove the
wasmtime
optional dependency fromwasi-common/sync
since it was unused mostly.This had the effect that users could use
wasi-common
with itssync
feature without pulling in the giantic Wasmtime dependency ... or so I thought.
Today I wanted to usewasi-common
v23.0.1 (including this improvement) into Wasmi'swasmi_wasi
crate and to my surprise Cargo pulled Wasmtime via thewasi-common
dependency.
When I removed thesync
feature usage (which is kinda critical unfortunately) the Wasmtime dependency was gone.I am seriously confused as to why this happens. Looking at
wasi-common
'sCargo.toml
file does not help my confusion.
https://github.com/bytecodealliance/wasmtime/blob/main/crates/wasi-common/Cargo.tomlAny help or clarification?
tl;dr:
This pulls Wasmtime:
[dependencies] wasi-common = { version = "23.0.1", default-features = false, features = ["sync"] }
And this does not:
[dependencies] wasi-common = { version = "23.0.1", default-features = false }
But why?
Last updated: Dec 23 2024 at 12:05 UTC