-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Rollup of 12 pull requests #78334
Rollup of 12 pull requests #78334
Conversation
#77147 simplifies things by splitting this Mutex type into two types matching the two use cases: StaticMutex and MovableMutex. To support the behavior of StaticMutex, we move part of the mutex implementation into libstd.
the commit avoid an alignement issue in Mutex implementation
This deconfuses the comparison of floats, that currently mixed ranges and non-ranges.
This makes it consistent with std::panic!("message"), which also throws a &str, not a String.
It now throws a &str instead of a String.
…tion The optimization introduces additional uses of the discriminant operand, but does not ensure that it is still valid to evaluate it or that it still evaluates to the same value. Evaluate it once at original position, and store the result in a new temporary.
This issue was accidentally fixed recently, probably by #70743
const_evaluatable_checked: deal with unused nodes + div r? @oli-obk
TyCtxt: generate single impl block with `slice_interners` macro Reduces the work needed to check overlapping impls a bit.
resolve: Relax macro resolution consistency check to account for any errors The check was previously omitted only when ambiguity errors or `Res::Err` were encountered, but the "macro-expanded `extern crate` items cannot shadow..." error (at least) can cause same inconsistencies as well. Fixes #78325
📌 Commit 58ae889 has been approved by |
☀️ Test successful - checks-actions |
📣 Toolstate changed by #78334! Tested on commit f58ffc9. 💔 miri on windows: test-pass → test-fail (cc @oli-obk @eddyb @RalfJung). |
Tested on commit rust-lang/rust@f58ffc9. Direct link to PR: <rust-lang/rust#78334> 💔 miri on windows: test-pass → test-fail (cc @oli-obk @eddyb @RalfJung). 💔 miri on linux: test-pass → test-fail (cc @oli-obk @eddyb @RalfJung). 💔 rls on windows: test-pass → build-fail (cc @Xanewok). 💔 rls on linux: test-pass → build-fail (cc @Xanewok). 💔 rustfmt on windows: test-pass → build-fail (cc @topecongiro @calebcartwright). 💔 rustfmt on linux: test-pass → build-fail (cc @topecongiro @calebcartwright).
This had some effect on compiler performance; I'm not sure which PRs were responsible. I suspect #78072 and #78191. cc @Nadrieril @tmiasko -- do those perf results look like they could be because of those PRs? I think a good next step is probably to post reverts of each so that we can see if they were the cause. |
I think #78191 only touches a disabled optimization |
@Mark-Simulacrum Ah yeah that very much looks like the effect of changes to match checking. My PR was based on #77390 which was a perf improvement so I didn't think to check. |
Yeah, no worries, that sounds fine. Just wanted to make sure we had a clear idea of the cause. I don't think the regression(s) are bad enough to warrant doing more work here, especially as you have followup improvements that outweigh them. |
Successful merges:
#[deny(unsafe_op_in_unsafe_fn)]
in sys/cloudabi #75115 (#[deny(unsafe_op_in_unsafe_fn)]
in sys/cloudabi)slice_interners
macro #78318 (TyCtxt: generate single impl block withslice_interners
macro)Failed merges:
r? @ghost