-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Upgrade hashbrown to 0.12.3 #99372
Upgrade hashbrown to 0.12.3 #99372
Conversation
Moves our projection handling code into a common file, and avoids the use of a general mplace-based fallback function by have more specialized implementations. mplace_index (and the other slice-related functions) could be more efficient by copy-pasting the body of operand_index. Or we could do some trait magic to share the code between them. But for now this is probably fine.
rustc_target: Flip the default for `TargetOptions::executables` to true This flag is true for most targets and the remaining targets may be mistakes.
…stebank Fix last `let_chains` blocker In order to forbid things like `let x = (let y = 1);` or `if let a = 1 && { let x = let y = 1; } {}`, the parser **HAS** to know the context of `let`. This context thing is not a surprise in the parser because you can see **a lot** of ad hoc fixes mixing parsing logic with validation logic creating code that looks more like spaghetti with tomato sauce. To make things even greater, a new ad hoc fix was added to only allow `let`s in a valid `let_chains` context by checking the previously processed token. This was the only solution I could think of and believe me, I thought about it for a long time 👍 In the long term, it should be preferable to segregate different responsibilities or create a more robust and cleaner parser framework. cc rust-lang#94927 cc rust-lang#53667
…-to-floating-point-number, r=compiler-errors Suggest adding a missing zero to a floating point number fixes rust-lang#98836
Some more `EarlyBinder` cleanups First commit has a couple unrelated cleanups, but otherwise each commit is self-explanatory r? rust-lang/types
use PlaceRef::iter_projections to fix old FIXME I added this function in 53481a5
…x, r=Dylan-DPC Put back UI test regex I just realized I overwrote these two commits in rust-lang#99055 when force pushing to fix the stdout output... r? `@Dylan-DPC`
Rollup of 6 pull requests Successful merges: - rust-lang#98622 (rustc_target: Flip the default for `TargetOptions::executables` to true) - rust-lang#98633 (Fix last `let_chains` blocker) - rust-lang#98972 (Suggest adding a missing zero to a floating point number) - rust-lang#99038 (Some more `EarlyBinder` cleanups) - rust-lang#99154 (use PlaceRef::iter_projections to fix old FIXME) - rust-lang#99171 (Put back UI test regex) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
This is first step in implementing RFC 3216. - Parse `for<'a>` before closures in ast - Error in lowering - Add `closure_lifetime_binder` feature
Co-authored-by: Vadim Petrochenkov <vadim.petrochenkov@gmail.com>
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 00fd613 with merge 1fac82ed6617ac867b303131b861b2de537b6f6e... |
r=me on the bump itself We should consider a beta backport, too, I think. Can you say more about the relnotes label? Just that it's a soundness fix? |
#99251 related, as it removes hashbrown 0.11 version entirely. |
Yes the relnotes was just for the soundness fix. It can be removed if it's not appropriate. #99251 is likely going to conflict with this PR. |
☀️ Try build successful - checks-actions |
Queued 1fac82ed6617ac867b303131b861b2de537b6f6e with parent 1cd72b7, future comparison URL. |
FWIW, I think that bug is irrelevant to
I've added it. Note that |
Finished benchmarking commit (1fac82ed6617ac867b303131b861b2de537b6f6e): comparison url. Instruction count
Max RSS (memory usage)Results
CyclesResults
If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf. Next Steps: If you can justify the regressions found in this try perf run, please indicate this with @bors rollup=never Footnotes |
…crum Upgrade indexmap and thorin-dwp to use hashbrown 0.12 This removes the last dependencies on hashbrown 0.11. This also upgrades to hashbrown 0.12.3 to fix a double-free (rust-lang#99372).
|
Hm. I think it may make sense to re-target this to beta -- looks like doing that via github UI isn't going to work. |
🔒 Merge conflict This pull request and the master branch diverged in a way that cannot be automatically merged. Please rebase on top of the latest master branch, and let the reviewer approve again. How do I rebase?Assuming
You may also read Git Rebasing to Resolve Conflicts by Drew Blessing for a short tutorial. Please avoid the "Resolve conflicts" button on GitHub. It uses Sometimes step 4 will complete without asking for resolution. This is usually due to difference between how Error message
|
…crum Upgrade indexmap and thorin-dwp to use hashbrown 0.12 This removes the last dependencies on hashbrown 0.11. This also upgrades to hashbrown 0.12.3 to fix a double-free (rust-lang#99372).
This fixes a double-free in the
clone_from
function if dropping an existing element in the table panics. See rust-lang/hashbrown#348 for more details.The indexmap crate is also updated to use the latest hashbrown version.