-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Broken Windows builds via < 1 (or 0.40) since 1.64 stable #4957
Comments
Please include the error message in this report. |
I've now created a new branch: It is identical to the previous branch, except it sets the version number to 0.25.2, which may help with the cargo patch mechanism. |
This was via 0.40 - unadulterated with no patching applied - on today's 1.64 stable as well as latest nightly (1.66.0-nightly (rust-lang/rust@4a14677 2022-09-23) on Windows From: lunatic-solutions/lunatic#136
When I tried patching work/around I get the mix-up |
Okay I now was properly able to patch all three crates and builds in unix w/ I will get this work/around tested in Windows now This is my root Cargo.toml to patch it ##########################################################
# This is required until wasmtime is bumped to ^1
# https://github.com/bytecodealliance/wasmtime/issues/4957
# Tracking: https://github.com/lunatic-solutions/lunatic/issues/136
[patch.crates-io]
cap-std = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25.2-version-number" }
cap-primitives = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25.2-version-number" }
cap-fs-ext = { git = "https://github.com/bytecodealliance/cap-std.git", branch = "0.26-with-a-0.25.2-version-number" }
This was with:
|
I'm unable to reproduce this error on Windows with wasi-common 0.40 and today's 1.64 stable. I do see it with Rust nightly-2022-09-23. This is a known problem, and the fix is #4940. |
Strange, we'll need to in any case use this patch-branch given we are unable to get 0.26 cap-std via 0.40 and it's in nightly at least Thanks for providing the branch, we'll try to bump to ^1 asap I'll close this since I do not expect to find anymore issues - thanks a lot! (I am assuming that patch-branch will stay there for a while so we can bump to ^1 meanwhile) |
The stabilisation happened here: rust-lang/rust#98583 which led to that The It should re-produce in 1.64.0 stable going by that via 0.40 without the patch to deal with the Sealed change that came along .... Not sure why it is not re-producing in 1.64.0 stable on your side ? So This is what I could derive from eventual cloning of The 1.64 stable and nightlies before and after should be broken due to result of this stabilisation that included the |
This repo: https://github.com/sunfishcode/wasi-common-test depends on wasi-common 0.40 and builds for me on Rust 1.64.0 on Windows. Does it fail for you? If not, could you prepare a repository which shows the failure? |
Okay I did extensive further regression on this and it seems 1.64 stable is working still. The Now further off to look for that regression what what causes it with the nightly ... purely off curiosity ofcourse But for the time being the branch fix is sufficient - thank you ❤️ About nightlybtw fwiw - without fix applied today's nightly still continues this regression w/o the patch branch applied - So let me guess nightly simply regresses because Hmm 🤔 yeah it's 6:23 AM going to sleep
|
Problem now is that anyone using 0.40 e.g. via
wasi-common
will get 0.25 cap-stdAnd therefore incompat cap-primitives in Windows when using stable > 1.64.0 rust stable that has sealed the
FileTypeExt
traitBy doing nothing this still works on at least unix but Windows is now broken on it's default state doing nothing on rust stable 1.64
wasi-common < 1 Windows builds broken
I would have to bump everything to ^1 atm from 0.40
Root cause
This was seen earlier in bytecodealliance/cap-std#275 via nightly broken
A trait was sealed that then broke the builds via
[cap-primitives](https://crates.io/crates/cap-primitives)
I documented my find originally: rust-lang/rust#102260
Work/Around - Works for Windows Only probably ?
There is a work/around here: #4936
The work/around patch is in cap-std commits:
git diff de739728299408dfce96315b3c82a14c952a6cf3 949f251bccbb84513fe81a427a46864c1e8ad82c
Work/Around does not work for unix
Work/around in turn seems to break unix builds as described here: #4936 (comment)
Ideal Resolution ?
Could we address so this builds for both Windows and Linux / unix via 0.40 ?
Perhaps we could also bump wasi-common so it bumps up to 0.26 that whole chain for cap-primitives ?
But I think the build errors need to be sorted for unix as I suspect the patch has broken all unix now ? #4936 (comment)
This is how I bumped my 🔒 to 0.40.1 - released 25 days ago or so
Additional attempts
I also tried quickly with 0.40.1 wasi-common but it still brings 0.25 tree
$ cargo update -p wasmtime-wasi --precise 0.40.1
And my dependency tree gets 0.25 on which I had to apply the branch-patch
I originally went down the 🕳️ bytecodealliance/cap-std#270 (comment)
Refs
lunatic-solutions/lunatic#136 <-- Downstream crate impacted
rust-lang/rust#102260 <-- Went finding out what happened in std first - did not find these issues here
bytecodealliance/cap-std#275 <-- I went first
https://rust-lang.zulipchat.com/#narrow/stream/219381-t-libs/topic/.E2.9C.94.20.23102260.20Sealed.20Windows.20FileTypeExt/near/300637075 <-- Chris Denton was helpful to point the above issue
Cheers
The text was updated successfully, but these errors were encountered: