Skip to content
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 8 pull requests #138388

Merged
merged 23 commits into from
Mar 12, 2025
Merged

Rollup of 8 pull requests #138388

merged 23 commits into from
Mar 12, 2025

Conversation

matthiaskrgr
Copy link
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

rustbot and others added 23 commits March 10, 2025 18:01
This improves the useability of heaps for priority-based work queues. In
certain scenarios, modifications on the most relevant or critical items are
performed until a condition that determines the work items have been
sufficiently addressed. The loop will repeatedly access the most critical
item and put it back in a sorted position when it is complete. Crucially,
due to the ordering invariant we know that all work was performed when the
completed item remains the most critical. Getting this information from the
heap position avoids a (potentially more costly) check on the item state
itself.

A customized `drop` with boolean result would avoid up to two more
comparisons performed in both the last no-op refresh and Drop code but this
occurs once in each execution of the above scenario whereas refresh occurs
any number of times. Also note that the comparison overhead of Drop is only
taken if the element is mutably inspected to determine the end condition,
i.e. not when refresh itself is the break condition.
This fixes an issue where vendoring would fail if `rustc` is not in
PATH. This happens with the update of some workspaces to the 2024
edition which need to run `rustc -Vv` to determine which rust version is
in use.
This is never hit in the test suite.

At some point the check should be removed entirely. There are a million
places in the compiler where an empty symbol doesn't make sense, so a
check of this nature has almost zero value. But I'll leave it in place
for now just in case it gets hit by fuzzing or in the wild.
Replace it with an assert for now, just in case it is reachable.
The idea is to identify cases of symbols/identifiers that are not
expected to be used. There isn't a perfectly sharp line between "dummy"
and "not dummy", but I think it's useful nonetheless.
`adjust_ident_and_get_scope` returns the symbol it receives unchanged,
and the call site ignores the returned symbol, so this symbol is unused.
It has a single call site. The removal of the closure argument is a nice
touch.
…, r=dtolnay

Add PeekMut::refresh

I'm not sure if this should go through ACP or not. BinaryHeap is not the most critical data structure in the standard library and it would be understandable if maintainer throughput is thus too limited to accept this PR without a proper design phase that ensures the required understanding of consequence over a longer time period.

This aims to improve the useability of heaps for priority-based work queues. In certain scenarios, modifications on the most relevant or critical items are performed until a condition that determines the work items have been sufficiently addressed. For instance the criticality could be a deadline that is relaxed whenever some part of a work item is completed. Such a loop will repeatedly access the most critical item and put it back in a sorted position when it is complete. Crucially, due to the ordering invariant we know that all necessary work was performed when the completed item remains the most critical. Getting this information from the heap position avoids a (potentially more costly) check on the item state itself.

A customized `drop` with boolean result would avoid up to two more comparisons performed in both the last no-op refresh and Drop code but this occurs once in each execution of the above scenario whereas refresh occurs any number of times. Also note that the comparison overhead of Drop is only taken if the element is mutably inspected to determine the end condition, i.e. not when refresh itself is the break condition.
…elf-pred, r=BoxyUwU

Elaborate trait assumption in `receiver_is_dispatchable`

Fixes rust-lang#138172. See comment on the linked test.

Probably not a fix for the general problem, bc I think this may still be incomplete for other weird `where` clauses on the receiver. But 🤷, supertraits seems like an obvious one to fix.
Update books

## rust-lang/book

11 commits in 4a01a9182496f807aaa5f72d93a25ce18bcbe105..81a976a237f84b8392c4ce1bd5fd076eb757a2eb
2025-02-27 22:10:41 UTC to 2025-02-24 18:36:27 UTC

- Ch. 10: Make social media discussion generic. (rust-lang/book#4249)
- Another Ch. 17 -> 18 fix (rust-lang/book#4247)
- Ch. 05: further tweak to wording about `user1` availability (rust-lang/book#4246)
- Ch. 02: Fix rand version mistake (from testing) (rust-lang/book#4245)
- Ch. 19: Correct the discussion of `fn` type and closures (rust-lang/book#4244)
- Edition maintenance: scripting the updates for future work (rust-lang/book#4243)
- Ch. 17: fresh-eyes edits (rust-lang/book#4242)
- Ch. 17: drop lifetime not required in 2024 Edition (rust-lang/book#4212)
- Appendix B, Operators: Replace “member access” with “field access” and “method call”. (rust-lang/book#4240)
- Update to Rust 1.85 and 2024 Edition! (rust-lang/book#4241)
- Chapter 1: fix 'four things' now that spacing is not emphasized (rust-lang/book#4239)

## rust-lang/edition-guide

2 commits in daa4b763cd848f986813b5cf8069e1649f7147af..1e27e5e6d5133ae4612f5cc195c15fc8d51b1c9c
2025-03-04 22:02:00 UTC to 2025-02-26 12:47:41 UTC

- Mention both `rustfmt.toml` and `.rustfmt.toml` (rust-lang/edition-guide#372)
- Fix a typo (rust-lang/edition-guide#370)

## rust-lang/nomicon

1 commits in 8f5c7322b65d079aa5b242eb10d89a98e12471e1..b4448fa406a6dccde62d1e2f34f70fc51814cdcc
2025-03-01 04:48:05 UTC to 2025-03-01 04:48:05 UTC

- Update to 2024 edition (rust-lang/nomicon#481)

## rust-lang/reference

8 commits in 615b4cec60c269cfc105d511c93287620032d5b0..dda31c85f2ef2e5d2f0f2f643c9231690a30a626
2025-03-09 14:25:25 UTC to 2025-02-25 16:07:17 UTC

- Rework note blocks and change admonition rendering (rust-lang/reference#1754)
- Add more information on rules and tests (rust-lang/reference#1753)
- Mention `explicit_builtin_cfgs_in_flags` lint cfg chapter (rust-lang/reference#1747)
- fixup test links (rust-lang/reference#1741)
- Fix diagnostics typo: `do_no_recommend` -> `do_not_recommend` (rust-lang/reference#1749)
- panic runtime and C-unwind documentation (rust-lang/reference#1226)
- Closures: fix example of desugaring (rust-lang/reference#1743)
- Update boolean.md, Comment breaks paragraph format (rust-lang/reference#1744)

## rust-lang/rust-by-example

1 commits in 66543bbc5b7dbd4e679092c07ae06ba6c73fd912..6f69823c28ae8d929d6c815181c73d3e99ef16d3
2025-03-09 13:12:24 UTC to 2025-03-09 13:12:24 UTC

- Update mdbook to 0.4.46 (rust-lang/rust-by-example#1914)

try-job: x86_64-gnu-distcheck
…piler-errors

Reduce `kw::Empty` usage, part 2

A few small `kw::Empty` removals, or steps toward removals.

r? fmease
…ywiser

Fix false-positive in `expr_or_init` and in the `invalid_from_utf8` lint

This PR fixes the logic for finding initializer in the `expr_or_init` and `expr_or_init_with_outside_body` functions.

If the binding were to be mutable (`let mut`), the logic wouldn't consider that the initializer expression could have been modified and would return the init expression even-trough multiple subsequent assignments could have been done.

Example:
```rust
let mut a = [99, 108, 130, 105, 112, 112]; // invalid, not UTF-8
loop {
    a = *b"clippy"; // valid
    break;
}
std::str::from_utf8_mut(&mut a); // currently warns, with this PR it doesn't
```

This PR modifies the logic to excludes mutable let bindings.

Found when using `expr_or_init` in rust-lang#119220.

r? compiler
Refactor `pick2_mut` & `pick3_mut` to use `get_disjoint_mut`

Closes rust-lang#138196
…cursors, r=compiler-errors

Item-related cleanups

I have been looking at `hir::Item` closely and found a few minor cleanup opportunities.

r? ```@spastorino```
…mpiler-errors

Remove unnecessary lifetime from `PatInfo`.

r? ```@jackh726```
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Mar 12, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Contributor

bors commented Mar 12, 2025

📌 Commit 76f9cda has been approved by matthiaskrgr

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 12, 2025
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-llvm-18 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
#19 exporting to docker image format
#19 sending tarball 19.9s done
#19 DONE 33.3s
##[endgroup]
Setting extra environment values for docker:  --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-18]
[CI_JOB_NAME=x86_64-gnu-llvm-18]
debug: `DISABLE_CI_RUSTC_IF_INCOMPATIBLE` configured.
---
sccache: Listening on address 127.0.0.1:4226
##[group]Configure the build
configure: processing command line
configure: 
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-18', '--enable-llvm-link-shared', '--set', 'rust.randomize-layout=true', '--set', 'rust.thin-lto-import-instr-limit=10', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'rust.lld=false', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--enable-new-symbol-mangling']
configure: build.build          := x86_64-unknown-linux-gnu
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-18/bin/llvm-config
configure: llvm.link-shared     := True
configure: rust.randomize-layout := True
configure: rust.thin-lto-import-instr-limit := 10
---
  0     0    0     0    0     0      0      0 --:--:--  0:02:29 --:--:--     0
  0     0    0     0    0     0      0      0 --:--:--  0:02:30 --:--:--     0
  0     0    0     0    0     0      0      0 --:--:--  0:02:31 --:--:--     0
curl: (28) Failed to connect to gcc.gnu.org port 443 after 136143 ms: Couldn't connect to server
error: Cannot download mpc-1.2.1.tar.gz from http://gcc.gnu.org/pub/gcc/infrastructure/
Command has failed. Rerun with -v to see more details.
Build completed unsuccessfully in 0:09:12
  local time: Wed Mar 12 07:21:27 UTC 2025
  network time: Wed, 12 Mar 2025 07:21:27 GMT
##[error]Process completed with exit code 1.
Post job cleanup.

@bors
Copy link
Contributor

bors commented Mar 12, 2025

⌛ Testing commit 76f9cda with merge 3f155ac...

bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 12, 2025
…iaskrgr

Rollup of 8 pull requests

Successful merges:

 - rust-lang#138161 (Add PeekMut::refresh)
 - rust-lang#138174 (Elaborate trait assumption in `receiver_is_dispatchable`)
 - rust-lang#138313 (Update books)
 - rust-lang#138347 (Reduce `kw::Empty` usage, part 2)
 - rust-lang#138360 (Fix false-positive in `expr_or_init` and in the `invalid_from_utf8` lint)
 - rust-lang#138372 (Refactor `pick2_mut` & `pick3_mut` to use `get_disjoint_mut`)
 - rust-lang#138376 (Item-related cleanups)
 - rust-lang#138377 (Remove unnecessary lifetime from `PatInfo`.)

r? `@ghost`
`@rustbot` modify labels: rollup
@jieyouxu
Copy link
Member

Hm, gcc mirrors again...

@matthiaskrgr
Copy link
Member Author

@bors retry

@bors
Copy link
Contributor

bors commented Mar 12, 2025

⌛ Testing commit 76f9cda with merge 57a4736e9f4b7e8089b2db60583607f3b550c862...

@bors
Copy link
Contributor

bors commented Mar 12, 2025

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing 57a4736 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Mar 12, 2025
@bors bors merged commit 57a4736 into rust-lang:master Mar 12, 2025
4 of 7 checks passed
@rustbot rustbot added this to the 1.87.0 milestone Mar 12, 2025
Copy link

Post-merge analysis result

Test differences

  • aarch64-gnu
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::IntoIter::default (line 1649): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::drain (line 1388): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::reserve (line 1151): [missing] -> pass
    • compiler/rustc_lint/src/context.rs - context::LateContext<'tcx>::get_def_path (line 735): [missing] -> ignore
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::Iter<'_,T>::default (line 1515): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::into_iter_sorted (line 1049): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap::from (line 1871): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap::with_capacity (line 528): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::into_vec (line 1311): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::peek_mut (line 596): [missing] -> pass
    • (and 80 additional testss)
  • x86_64-gnu-llvm-18-3
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::try_reserve (line 1219): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::peek (line 1067): [missing] -> pass
    • compiler/rustc_parse/src/parser/item.rs - parser::item::Parser<'a>::parse_item_extern_crate (line 1146): [missing] -> ignore
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::shrink_to_fit (line 1247): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::into_sorted_vec (line 699): [missing] -> pass
    • compiler/rustc_trait_selection/src/traits/dyn_compatibility.rs - traits::dyn_compatibility::receiver_is_dispatchable (line 548): [missing] -> ignore
    • compiler/rustc_parse/src/parser/item.rs - parser::item::Parser<'a>::parse_item_foreign_mod (line 1202): [missing] -> ignore
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::IntoIter::default (line 1649): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::into_vec (line 1311): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::is_empty (line 1359): [missing] -> pass
    • (and 80 additional testss)
  • x86_64-gnu-llvm-19-3
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::len (line 1340): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::reserve (line 1151): [missing] -> pass
    • [ui] tests/ui/self/dyn-dispatch-requires-supertrait-norm.rs: [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::clear (line 1412): [missing] -> pass
    • compiler/rustc_parse/src/parser/item.rs - parser::item::Parser<'a>::parse_item_extern_crate (line 1146): [missing] -> ignore
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::peek_mut (line 596): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::as_slice (line 1290): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::reserve_exact (line 1123): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::iter (line 1026): [missing] -> pass
    • compiler/rustc_hir_typeck/src/pat.rs - pat::FnCtxt<'a,'tcx>::pat_is_irrefutable (line 2560): [missing] -> ignore
    • (and 80 additional testss)
  • x86_64-gnu-nopt
    • compiler/rustc_lint/src/context.rs - context::LateContext<'tcx>::expr_or_init (line 877): [missing] -> pass
    • compiler/rustc_hir_typeck/src/pat.rs - pat::FnCtxt<'a,'tcx>::check_pat_slice (line 2597): [missing] -> ignore
    • compiler/rustc_lint/src/context.rs - context::LateContext<'tcx>::expr_or_init_with_outside_body (line 917): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap::new (line 506): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::shrink_to (line 1269): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::drain (line 1388): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::into_sorted_vec (line 699): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::PeekMut<'a,T,A>::refresh (line 395): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::push (line 656): [missing] -> pass
    • compiler/rustc_trait_selection/src/traits/dyn_compatibility.rs - traits::dyn_compatibility::contains_illegal_self_type_reference (line 639): [missing] -> ignore
    • (and 80 additional testss)
  • x86_64-gnu
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::push (line 656): [missing] -> pass
    • compiler/rustc_parse/src/parser/item.rs - parser::item::Parser<'a>::parse_item_extern_crate (line 1146): [missing] -> ignore
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::len (line 1340): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::into_iter (line 1916): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::try_reserve_exact (line 1183): [missing] -> pass
    • compiler/rustc_trait_selection/src/traits/dyn_compatibility.rs - traits::dyn_compatibility::receiver_is_dispatchable (line 548): [missing] -> ignore
    • compiler/rustc_lint/src/context.rs - context::LateContext<'tcx>::expr_or_init_with_outside_body (line 917): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::retain (line 988): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::reserve_exact (line 1123): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::new_in (line 547): [missing] -> pass
    • (and 80 additional testss)
  • x86_64-gnu-stable
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::PeekMut<'a,T,A>::refresh (line 395): [missing] -> pass
    • compiler/rustc_hir/src/hir.rs - hir::Node<'hir>::ident (line 4510): [missing] -> ignore
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap::from (line 1871): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::with_capacity_in (line 571): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::drain (line 1388): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::new_in (line 547): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::iter (line 1026): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap::with_capacity (line 528): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::drain_sorted (line 963): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::try_reserve (line 1219): [missing] -> pass
    • (and 80 additional testss)
  • aarch64-apple
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::into_iter_sorted (line 1049): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::iter (line 1026): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::peek (line 1067): [missing] -> pass
    • compiler/rustc_trait_selection/src/traits/dyn_compatibility.rs - traits::dyn_compatibility::contains_illegal_self_type_reference (line 659): [missing] -> ignore
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::pop (line 626): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::retain (line 988): [missing] -> pass
    • compiler/rustc_hir/src/hir.rs - hir::Node<'hir>::ident (line 4510): [missing] -> ignore
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::into_iter (line 1916): [missing] -> pass
    • [ui] tests/ui/self/dyn-dispatch-requires-supertrait-norm.rs: [missing] -> pass
    • compiler/rustc_lint/src/context.rs - context::LateContext<'tcx>::expr_or_init (line 877): [missing] -> pass
    • (and 80 additional testss)
  • x86_64-apple-1
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::shrink_to_fit (line 1247): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::pop (line 626): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::retain (line 988): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::is_empty (line 1359): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap::with_capacity (line 528): [missing] -> pass
    • compiler/rustc_trait_selection/src/traits/dyn_compatibility.rs - traits::dyn_compatibility::receiver_is_dispatchable (line 548): [missing] -> ignore
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::with_capacity_in (line 571): [missing] -> pass
    • compiler/rustc_trait_selection/src/traits/dyn_compatibility.rs - traits::dyn_compatibility::contains_illegal_self_type_reference (line 659): [missing] -> ignore
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::try_reserve_exact (line 1183): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::capacity (line 1094): [missing] -> pass
    • (and 78 additional testss)
  • x86_64-msvc-1
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::iter (line 1026): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::peek_mut (line 596): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::clear (line 1412): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::retain (line 988): [missing] -> pass
    • [ui] tests/ui/self/dyn-dispatch-requires-supertrait.rs: [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::into_vec (line 1311): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::try_reserve_exact (line 1183): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::capacity (line 1094): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::drain (line 1388): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::shrink_to (line 1269): [missing] -> pass
    • (and 56 additional testss)
  • x86_64-mingw-1
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::append (line 924): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::as_slice (line 1290): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap::with_capacity (line 528): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::is_empty (line 1359): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::Iter<'_,T>::default (line 1515): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::drain_sorted (line 963): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::len (line 1340): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::shrink_to (line 1269): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::pop (line 626): [missing] -> pass
    • library/alloc/src/collections/binary_heap/mod.rs - collections::binary_heap::BinaryHeap<T,A>::retain (line 988): [missing] -> pass
    • (and 56 additional testss)

(and 18 additional diffs)

@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#138161 Add PeekMut::refresh fd3469da9b94f05d6fb51592d48704cd97c8a76a (link)
#138174 Elaborate trait assumption in receiver_is_dispatchable dea6cb0130864275ca352f3c3e435a40cc3ebc47 (link)
#138313 Update books 91240b01353d7da8aaa0af00f99549c58fbe2fe2 (link)
#138347 Reduce kw::Empty usage, part 2 ec7710534d0ad97426b4fc7331e103971cdd5c5e (link)
#138360 Fix false-positive in expr_or_init and in the `invalid_fr… a4bc35216cfc4353f1ec3b8e7a49bbf534e12d36 (link)
#138372 Refactor pick2_mut & pick3_mut to use get_disjoint_mut f98adf05d86cf5a2a9438f1453337b4678587983 (link)
#138376 Item-related cleanups 34dbc22b1cb4dfadc59f567f7f90e50c086c40ef (link)
#138377 Remove unnecessary lifetime from PatInfo. 9d248b52ef3673b682d68b1d30b92f98e97860ae (link)

previous master: a21d9789e2

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (57a4736): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary -3.8%, secondary -3.2%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-3.8% [-4.5%, -2.3%] 3
Improvements ✅
(secondary)
-3.2% [-5.3%, -1.2%] 2
All ❌✅ (primary) -3.8% [-4.5%, -2.3%] 3

Cycles

Results (secondary 2.2%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.2% [2.1%, 2.3%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 779.599s -> 779.955s (0.05%)
Artifact size: 365.29 MiB -> 365.24 MiB (-0.01%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-attributes Area: Attributes (`#[…]`, `#![…]`) merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.