-
Notifications
You must be signed in to change notification settings - Fork 13.2k
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
Recent 32-bit transmute regression #33724
Comments
This is because of #33579. |
cc @aturon (author of crossbeam) The current version of crossbeam (0.2.9) does compile with current nightly. |
I believe transmute breaking is not considered a breaking change, especially because the language explicitly does not specify various details to ABI, type layout, etc etc. |
It's coming from the mandel benchmark as it currently is. AFAIC fixing the deps would be enough but |
Regardless of how major it is officially, it was an untagged breaking change, which probably should have been cratered to assess usage. Hopefully there's still time to do that before the trains leave. |
There's a bug report here (more or less) huonw/simple_parallel/issues/9 |
@durka Should we really flag any change that alters the size of a type as a breaking change? |
It seems like a tautological question to me. "Is this change, which broke code in the wild, a breaking change?" I don't think we should release Rust 2.0 to change the size of AtomicBool, no. But apparently more caution was warranted when merging this change. Maybe simple_parallel is the only crate it breaks, maybe not, who knows? When the size of fn types changed, transmutes of them turned out to be widespread so there is a warning period. As a slightly separate issue, we shouldn't be transmuting any types that aren't |
LLVM upgrades randomly break code that relies on undefined behaviour. Even code in the wild. We do not list that in relnotes. I think this case is pretty similar - the size and layout of Rust types is an implementation detail, and randomly transmuting things is hacky. |
Rev
d91f8ab0f
seems to still work ok.The text was updated successfully, but these errors were encountered: