-
Notifications
You must be signed in to change notification settings - Fork 13.3k
latest nightly won't compile old versions of winapi #49765
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
Comments
2.6 is expected, how did that ever work? Not sure what 2.5 is about, probably macro hygiene? |
Crater would never catch it because crater does not test Windows. Also this is a pretty hilarious amount of breakage from Rust in a single crate. All those promises of stability and backwards compatibility were apparently hollow promises without anything to back them up. |
Checking further, the middle breakage has made it into the stable compiler but the others have not (yet):
So for two of these three regressions there's still opportunity to decide - or not - that stability is more important than whatever introduced the breakage. |
The two things I can talk about 2.6 "breakage"Ah, so 2.6 never actually worked for using the constant. It was possible to create broken constants (which still caused a warning!) but using them also doesn't work on stable: http://play.integer32.com/?gist=156d69400581c9bea41081be12b703b9&version=stable We can turn this into a future compat lint if we want to. Opinions? 2.4 breakagecc @eddyb for the 2.4 breakage. We can probably reallow this if we want to. A minimal example of this is enum Foo {
Bar = Foo::Baa as isize + 1,
Baa = 42,
} The issue is that computing
Miri had to be an all or nothing change, a dual-rail option (switching between both with a runtime flag) would have been unmanageable (trust me, I tried). I am doing my best in fixing up those changes, and we will get these issues addressed in time before the next stable release. Also please note that there has been a warning about the |
For the record that 2.5 breakage is #32247 |
visited during compiler team triage meeting. Some thoughts:
|
re splitting this up:
|
OK. then I guess the opposite of what I said! You already have split out "the 0.2.6 breakage", so what's left to track here is only "the 0.2.4 breakage". |
The "0.2.4 breakage" hit my (unpublished) crate which had been working since 1.0: https://github.com/haptics-nri/nri/blob/f6347ff03feb51157558d1620078beb2a2862c88/sys/bluefox-sys/src/lib.rs#L234-L245 A warning cycle would have been nice. This kind of enum comes up all the time in native bindings (e.g. the source of mine), so how are we supposed to work around this breaking change? @oli-obk dismissed this as "the old behavior didn't make sense", but I'm not sure what is wrong, in theory, with my enum? Maybe there should be an exception for C-style (or just |
@durka The cyclical enum definitions only worked by accident / hackily (under quite specific conditions), if only @nikomatsakis had gotten the chance to remove them before 1.0... |
It looks like there have been a number of fixes -- can someone update with current status? |
For future reference:
|
As reported at tokio-rs/mio#832 (where I proposed having
mio
just sidestep this): old versions ofwinapi
fail to build with the nightly compiler.But @carllerche points out that this seems like a compiler regression, so let's report it here.
Various failures, different in different
winapi
releases:2.4:
2.5:
2.6:
Compiler is
rustc 1.27.0-nightly (eeea94c11 2018-04-06)
The text was updated successfully, but these errors were encountered: