Skip to content

Rollup of 5 pull requests#153805

Merged
rust-bors[bot] merged 16 commits intorust-lang:mainfrom
Zalathar:rollup-rfXICNX
Mar 13, 2026
Merged

Rollup of 5 pull requests#153805
rust-bors[bot] merged 16 commits intorust-lang:mainfrom
Zalathar:rollup-rfXICNX

Conversation

@Zalathar
Copy link
Member

Successful merges:

r? @ghost

Create a similar rollup

asder8215 and others added 16 commits February 28, 2026 22:28
These two types fit the pattern because they have no generics.
The `DerefMut` impl for `Providers` was removed in rust-lang#151096.
`tcx` is the usual name for `TyCtxt` parameters.
By removing the ones in `compiler/rustc_middle/src/queries.rs`, and
making `compiler/rustc_middle/src/query/modifiers.rs` the single
source of truth.
We compute `key_hash` in `try_execute_query`, so we can just pass the
value in.
`execute_job` has a single call site in `try_execute_query`. This commit
inlines and removes `execute_job`, but also puts the part that checks
feedable results in its own separate function, `check_feedable`, because
it's a nicely separate piece of logic.

The big win here is that all the code dealing with the `QueryState` is
now together in `try_execute_query`: get the lock, do the lookup, drop
the lock, create the job guard, and complete the job guard. Previously
these steps were split across two functions which I found hard to
follow.

This commit purely moves code around, there are no other changes.
The previous commit inlined `execute_job` without changing any of its
code. This commit does a few tiny follow-up changes.
…r=joboet

fixed VecDeque::splice() not filling the buffer correctly when resizing the buffer on start = end range

This PR fixes rust-lang#151758. The issue came from `Splice::move_tail`, which as joboet pointed out:
> The issue is in move_tail, which resizes the buffer, but fails to account for the resulting hole.

The problem with reserving more space through `VecDeque`'s `buf.reserve()` is that it doesn't update `VecDeque`'s `head`, which means that this code in `move_tail`:
```rust
deque.wrap_copy(
    deque.to_physical_idx(tail_start),
    deque.to_physical_idx(new_tail_start),
    self.tail_len,
);
```
could move over the section of data that `tail_start..tail_start + self.tail_len` of the buffer is supposed to be held at to the incorrect destination since all `.to_physical_idx()` is doing is a wrapping add on the `VecDeque`'s head with the passed in `idx` value.

To avoid this I decided to use `VecDeque::reserve` to both allocate more space into the `VecDeque` if necessary and update head appropriately. However, `VecDeque::reserve` internally relies on the `VecDeque`'s `len` field. Earlier in `VecDeque::splice`, it modifies the `VecDeque`'s `len` constructing the drain via `Drain::new` (as it does a `mem::replace` on `deque.len` with the start bound of the passed in `range`). The `VecDeque`'s `len` can also be potentially modified in the earlier `Splice::fill()` call if it does any replacement towards elements within the passed in `range` value for `VecDeque::splice()`. I needed to temporarily restore the `VecDeque`'s `len` to its actual len, so that `VecDeque::reserve` can work properly. Afterward, you can bring back the `VecDeque`'s `len` to what its value was before and fill the gap appropriately with the rest of the `replace_with` content.

r? @joboet
Miscellaneous tweaks

A hodge-podge of small changes that didn't fit anywhere else.

r? @yaahc
…ks, r=cjgillot

`try_execute_query` tweaks

Details in individual commits.

r? @cjgillot
implementation of `-Z min-recursion-limit`

impl of rust-lang/compiler-team#969, closes rust-lang#153132

r? lcnr
…Zalathar

Avoid duplicated query modifier comments.

There is currently some duplication.
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Mar 13, 2026
@rustbot rustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-rustc-dev-guide Area: rustc-dev-guide S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. 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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. labels Mar 13, 2026
@Zalathar
Copy link
Member Author

Rollup of everything.

@bors r+ rollup=never p=5

@rust-bors
Copy link
Contributor

rust-bors bot commented Mar 13, 2026

📌 Commit 8669e0c has been approved by Zalathar

It is now in the queue for this repository.

@rust-bors rust-bors bot 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 13, 2026
@akhilamalakota
Copy link

i'd like to work on this....
will u grant me to that?

@rust-bors

This comment has been minimized.

@rust-bors rust-bors bot added the merged-by-bors This PR was explicitly merged by bors. label Mar 13, 2026
@rust-bors rust-bors bot removed the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Mar 13, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Mar 13, 2026

☀️ Test successful - CI
Approved by: Zalathar
Duration: 3h 9m 2s
Pushing 7ad5c60 to main...

@rust-bors rust-bors bot merged commit 7ad5c60 into rust-lang:main Mar 13, 2026
12 checks passed
@rustbot rustbot added this to the 1.96.0 milestone Mar 13, 2026
Copy link

@akhilamalakota akhilamalakota left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@github-actions
Copy link
Contributor

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing 4efe3dc (parent) -> 7ad5c60 (this PR)

Test differences

Show 180 test diffs

Stage 1

  • [ui] tests/ui/recursion/recursion_limit/min-recursion-limit-attr-lower-than-default.rs: [missing] -> pass (J1)
  • [ui] tests/ui/recursion/recursion_limit/min-recursion-limit-attr-wins.rs: [missing] -> pass (J1)
  • [ui] tests/ui/recursion/recursion_limit/min-recursion-limit-cli-wins.rs: [missing] -> pass (J1)
  • [ui] tests/ui/recursion/recursion_limit/min-recursion-limit-no-attr.rs: [missing] -> pass (J1)
  • vec_deque::test_splice_wrapping_and_resize: [missing] -> pass (J2)

Stage 2

  • [ui] tests/ui/recursion/recursion_limit/min-recursion-limit-attr-lower-than-default.rs: [missing] -> pass (J0)
  • [ui] tests/ui/recursion/recursion_limit/min-recursion-limit-attr-wins.rs: [missing] -> pass (J0)
  • [ui] tests/ui/recursion/recursion_limit/min-recursion-limit-cli-wins.rs: [missing] -> pass (J0)
  • [ui] tests/ui/recursion/recursion_limit/min-recursion-limit-no-attr.rs: [missing] -> pass (J0)
  • vec_deque::test_splice_wrapping_and_resize: [missing] -> pass (J3)

Additionally, 170 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 7ad5c602172b132646213941b5102a75a77c10f6 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. dist-apple-various: 1h 43m -> 1h 22m (-19.8%)
  2. x86_64-gnu-llvm-21-2: 1h 32m -> 1h 44m (+12.6%)
  3. tidy: 2m 45s -> 2m 25s (-11.9%)
  4. test-various: 2h 7m -> 1h 53m (-10.7%)
  5. x86_64-msvc-2: 2h 20m -> 2h 34m (+10.0%)
  6. optional-x86_64-gnu-parallel-frontend: 2h 24m -> 2h 37m (+9.4%)
  7. i686-gnu-nopt-1: 2h 9m -> 2h 20m (+8.7%)
  8. dist-i586-gnu-i586-i686-musl: 1h 32m -> 1h 24m (-8.5%)
  9. aarch64-msvc-1: 2h 13m -> 2h 2m (-8.0%)
  10. x86_64-msvc-ext1: 2h 5m -> 2h 15m (+7.9%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (7ad5c60): 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 (secondary 1.2%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
3.8% [2.3%, 5.0%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-1.4% [-2.5%, -0.7%] 3
All ❌✅ (primary) - - 0

Cycles

Results (secondary -2.7%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.7% [-3.0%, -2.0%] 3
All ❌✅ (primary) - - 0

Binary size

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

Bootstrap: 482.458s -> 488.372s (1.23%)
Artifact size: 394.92 MiB -> 396.96 MiB (0.52%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-rustc-dev-guide Area: rustc-dev-guide merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup 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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants