Skip to content

Conversation

@matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Nov 6, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

GuillaumeGomez and others added 18 commits October 28, 2025 15:44
…r=joboet add extend_front to VecDeque with specialization like extend ACP: rust-lang/libs-team#658 Tracking issue: rust-lang#146975 _Text below was written before opening the ACP_ Feature was requested in rust-lang#69939, I recently also needed it so decided to implement it as my first contribution to the Rust standard library. I plan on doing more but wanted to start with a small change. Some questions I had (both on implementation and design) with answers: - Q: `extend` allows iterators that yield `&T` where `T` is `Clone`, should extend_front do too? A: No, users can use [`copied`](https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.copied) and/or [`cloned`](https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.cloned). - Q: Does this need a whole new trait like Extend or only a method on `VecDeque`? A: No, see ACP. - Q: How do I deal with all the code duplication? Most code is similar to that of `extend`, maybe there is a nice way to factor out the code around `push_unchecked`/`push_front_unchecked`. Will come back to this later. - Q: Why are certain things behind feature gates, `cfg(not(test))` like `vec::IntoIter` here and `cfg(not(no_global_oom_handling))` like `Vec::extend_from_within`? (I am also looking at implementing `VecDeque::extend_from_within`) A: See rust-lang#146861 (review) - Q: Should `extend_front` act like repeated pushes to the front of the queue? This reverses the order of the elements. Doing it different might incur an extra move if the iterator length is not known up front (where do you start placing elements in the buffer?). A: `extend_front` acts like repeated pushes, `prepend` preserves the element order, see ACP or tracking issue.
…on, r=yotamofek Fix invalid tag closing when leaving expansion "original code" Fixes rust-lang#148184. Problem was that in case an element inside the expansion's "original" element was not closed, this element would get its `pending_exit` field set to `true`, removing it when the next non-mergeable item gets pushed instead of being put inside it, and then next `exit_elem` would try to exit an empty class queue. r? ```@notriddle```
…te, r=lcnr Un-shadow object bound candidate in `NormalizesTo` goal if self_ty is trait object Fixes rust-lang/trait-system-refactor-initiative#244 r? lcnr
run-make tests: use edition 2024 Bump run-make tests to edition 2024 to prevent test failures when using 2024 idioms in included code, such as I ran into here: rust-lang#147808.
…eyouxu Add regression test for issue 148542 Closes rust-lang#148542
Fix ICE from async closure variance Fixes rust-lang#148488 The fix is also a change from rust-lang#148556
…illaumeGomez rustdoc-search: remove broken index special case Fixes rust-lang#148431
@rustbot rustbot added A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-search Area: Rustdoc's search feature 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. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) rollup A PR which is a rollup labels Nov 6, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Nov 6, 2025

📌 Commit 1a6770c has been approved by matthiaskrgr

It is now in the queue for this repository.

@bors bors removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Nov 6, 2025
@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Nov 6, 2025
@GuillaumeGomez
Copy link
Member

GuillaumeGomez commented Nov 6, 2025

Ah we opened rollups at the same time (#148574) ^^'

@bors
Copy link
Collaborator

bors commented Nov 6, 2025

⌛ Testing commit 1a6770c with merge c90bcb9...

@bors
Copy link
Collaborator

bors commented Nov 6, 2025

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

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Nov 6, 2025
@bors bors merged commit c90bcb9 into rust-lang:master Nov 6, 2025
12 checks passed
@rustbot rustbot added this to the 1.93.0 milestone Nov 6, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#146861 add extend_front to VecDeque with specialization like extend e68328bc7e957dc2af4300e50bccce4fd5c5b1fa (link)
#148213 Fix invalid tag closing when leaving expansion "original co… d2a959b1d0db3f0552320569fc74be48c3673858 (link)
#148292 Un-shadow object bound candidate in NormalizesTo goal if … 0dd605fa541f2e3da0926bb1446154ad88768038 (link)
#148528 run-make tests: use edition 2024 1f02e95a8c89de19d53979490b3c552b75b73d31 (link)
#148554 Add regression test for issue 148542 6333bbc60926351b9c25ff5b066fb99a2ee0104b (link)
#148561 Fix ICE from async closure variance 5436bb3afe7a03d83a1eb37427bd6ef9eff27bc1 (link)
#148563 rustdoc-search: remove broken index special case d6a1504f9b990baff17500b076e38c5f91750896 (link)

previous master: c5e283b0d2

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

@github-actions
Copy link
Contributor

github-actions bot commented Nov 6, 2025

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 c5e283b (parent) -> c90bcb9 (this PR)

Test differences

Show 316 test diffs

Stage 1

  • vec_deque::test_extend_front: [missing] -> pass (J1)
  • vec_deque::test_extend_front_specialization_copy_slice: [missing] -> pass (J1)
  • vec_deque::test_extend_front_specialization_vec_into_iter: [missing] -> pass (J1)
  • [rustdoc-js] tests/rustdoc-js/empty-type.rs: [missing] -> pass (J3)
  • [rustdoc] tests/rustdoc/macro/one-line-expand.rs: [missing] -> pass (J3)
  • [ui] tests/ui/async-await/async-closures/ice-async-closure-variance-issue-148488.rs: [missing] -> pass (J3)
  • [ui] tests/ui/pattern/const-error-ice-issue-148542.rs: [missing] -> pass (J3)
  • [ui] tests/ui/traits/next-solver/normalization-shadowing/use_object_if_empty_env.rs: [missing] -> pass (J3)

Stage 2

  • [rustdoc-js] tests/rustdoc-js/empty-type.rs: [missing] -> pass (J0)
  • vec_deque::test_extend_front: [missing] -> pass (J2)
  • vec_deque::test_extend_front_specialization_copy_slice: [missing] -> pass (J2)
  • vec_deque::test_extend_front_specialization_vec_into_iter: [missing] -> pass (J2)
  • [ui] tests/ui/async-await/async-closures/ice-async-closure-variance-issue-148488.rs: [missing] -> pass (J4)
  • [ui] tests/ui/pattern/const-error-ice-issue-148542.rs: [missing] -> pass (J4)
  • [ui] tests/ui/traits/next-solver/normalization-shadowing/use_object_if_empty_env.rs: [missing] -> pass (J4)
  • [rustdoc] tests/rustdoc/macro/one-line-expand.rs: [missing] -> pass (J5)

Additionally, 300 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 c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 --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. x86_64-gnu-distcheck: 7227.4s -> 8110.3s (+12.2%)
  2. i686-gnu-nopt-2: 7430.0s -> 8193.2s (+10.3%)
  3. dist-apple-various: 4520.2s -> 4059.4s (-10.2%)
  4. x86_64-gnu-llvm-21-2: 5462.6s -> 6007.5s (+10.0%)
  5. dist-sparcv9-solaris: 4854.9s -> 5337.2s (+9.9%)
  6. x86_64-gnu-llvm-20: 2582.9s -> 2822.9s (+9.3%)
  7. x86_64-gnu-tools: 3497.8s -> 3799.7s (+8.6%)
  8. i686-gnu-nopt-1: 7935.9s -> 8581.4s (+8.1%)
  9. x86_64-msvc-ext1: 7822.3s -> 7230.6s (-7.6%)
  10. x86_64-msvc-2: 7101.6s -> 6567.8s (-7.5%)
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 (c90bcb9): comparison URL.

Overall result: ❌ regressions - no action needed

@rustbot label: -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.3% [0.3%, 0.3%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.3% [0.3%, 0.3%] 1

Max RSS (memory usage)

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

Cycles

Results (primary -2.1%, secondary 0.9%)

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.9% [0.9%, 0.9%] 1
Improvements ✅
(primary)
-2.1% [-2.1%, -2.1%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.1% [-2.1%, -2.1%] 1

Binary size

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

Bootstrap: 475.114s -> 475.185s (0.01%)
Artifact size: 390.78 MiB -> 390.81 MiB (0.01%)

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

Labels

A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-search Area: Rustdoc's search feature 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-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. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

10 participants