Skip to content

Rollup of 5 pull requests - #161134

Merged
rust-bors[bot] merged 10 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-R2ewiX4
Aug 15, 2026
Merged

Rollup of 5 pull requests#161134
rust-bors[bot] merged 10 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-R2ewiX4

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

scottmcm and others added 10 commits July 30, 2026 02:40
* Update expect messages for library/alloc/src/vec/mod.rs
* Update expect messages for library/alloctests/tests/vec.rs
* Update expect messages for library/alloc/src/vec/mod.rs and library/alloctests/tests/vec.rs
* Revert "Update expect messages for library/alloc/src/vec/mod.rs and library/alloctests/tests/vec.rs"

This reverts commit 009fa6f.
`Iterator::{min,max}(_by_key)` should use overridden `min`/`max`/`lt`

Two related changes to provided Iterator implementations:
- `Iterator::min` and `Iterator::max` are currently implemented via `min_by` and `max_by`, which means they don't use `Ord::{min,max}` despite those being overridable to do something more efficient.  Move these to just being `.reduce(Ord::min)` and `.reduce(Ord::max)` to take advantage of potential overrides.
- `Iterator::min_by_key` and `Iterator::max_by_key` are implemented by mapping to a tuple then using `min_by`/`max_by` with a comparator that only looks at one field in the tuple.  That means they end up doing things like `a.cmp(b).is_le()`, which is wasteful if there an overloaded `-> bool` method it could use instead.  So rephrase these two to work as `.map(…).min()`/`.map(…).max()` by mapping to a type that's *not* a tuple and which can thus override more things instead of just passing a `Fn(…) -> Ordering`.
Update expect messages for library/alloc/src/vec/mod.rs

Related issue: rust-lang#159751
Updated some expect messages for `library/alloc/src/vec/mod.rs`
…itor

Improve OpenOptions append+truncate error message

Fixes rust-lang#160716.

When `OpenOptions` is configured with both `append(true)` and `truncate(true)`, the previous `InvalidInput` error message was:

> creating or truncating a file requires write or append access

This message is misleading because `append(true)` already provides append access. This change replaces it with a more descriptive error message indicating that `append` and `truncate` cannot both be enabled at the same time.

The corresponding platform-specific tests have been updated to verify the new error message and ensure consistent behavior across the relevant implementations.
…JohnTitor

Forward all array `PartialOrd` to slices

I happened to notice that these have had too many `&`s since before 1.0 -- it ends up using `&[T]: PartialOrd` and thus wastefully need to forward to `[T]: PartialOrd`.

So re-written to specify the implementation to which we're trying to delegate explicitly (by writing `<[T] as PartialOrd>`) which means we no longer need the `&&self[..]`-style dance at all since the unsizing coercion will do the right thing.

And while I was here delegating stuff, it also delegates the `__chaining_*` methods, since those have custom overrides for slices (rust-lang#138881) and we ought to take advantage of that for arrays too.
…ough, r=jieyouxu

Explicitly pass run_make_support rlib/rmeta paths to compiletest

This should unblock rust-lang#151061, and helps with rust-lang/cargo#17359 from the side of run-make-support.

I tested this with `-Zembed-metadata=no` applied to everything (in `Builder::cargo`), it works now both with and without it (that's not to say that applying `-Zembed-metadata=no` won't break something else, ofc).

CC @bjorn3

r? jieyouxu

---

try-job: aarch64-apple-1
try-job: x86_64-msvc-1
try-job: i686-msvc-1
try-job: aarch64-msvc-1
try-job: x86_64-mingw-1
try-job: armhf-gnu
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Aug 15, 2026
@rustbot rustbot added A-compiletest Area: The compiletest test runner A-testsuite Area: The testsuite used to check the correctness of rustc 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-libs Relevant to the library team, which will review and decide on the PR/issue. labels Aug 15, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors r+ p=5

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,aarch64-apple-1,aarch64-apple-2,x86_64-mingw-1,i686-msvc-1,i686-msvc-2

@rust-bors

rust-bors Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 463a8c9 has been approved by JonathanBrouwer

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 Aug 15, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Aug 15, 2026
Rollup of 5 pull requests


try-job: dist-various-1
try-job: test-various
try-job: x86_64-gnu-aux
try-job: x86_64-gnu-llvm-21-3
try-job: x86_64-msvc-1
try-job: aarch64-apple-1
try-job: aarch64-apple-2
try-job: x86_64-mingw-1
try-job: i686-msvc-1
try-job: i686-msvc-2
@rust-bors

rust-bors Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 0f5f6b8 (0f5f6b861dde7fbe9d66afba6f8c2fdc24cabedf)
Base parent: 110d7e5 (110d7e55dbd37e65cdc3321a204a9911af35f533)

@rust-bors

This comment has been minimized.

@rust-bors rust-bors Bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 15, 2026
@rust-bors

rust-bors Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 13m 27s
Pushing c9b7f17 to main...

@rust-bors
rust-bors Bot merged commit c9b7f17 into rust-lang:main Aug 15, 2026
15 checks passed
@rustbot rustbot added this to the 1.100.0 milestone Aug 15, 2026
@rust-timer

Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#160203 Iterator::{min,max}(_by_key) should use overridden min/… 9aa503aa0d7d67f132376e5425174a869a273ace (link)
#159862 Update expect messages for library/alloc/src/vec/mod.rs 369655d3cf9d6c99959b2a5b4261adf78bd0117d (link)
#160719 Improve OpenOptions append+truncate error message 02a976f5f2d452becc973fd9b80510051b025a0c (link)
#160996 Forward all array PartialOrd to slices d3bf528c88bf10dc7255a2ab34a4a8c49af3a1f8 (link)
#161102 Explicitly pass run_make_support rlib/rmeta paths to compil… 33c5df033a96396c5e050d295a20807b932d9c65 (link)

previous master: b4116af55f

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
Copy Markdown
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 b4116af (parent) -> c9b7f17 (this PR)

Test differences

Show 412 test diffs

Stage 1

  • iter::traits::iterator::test_iterator_min_max_by_key_use_lt: [missing] -> pass (J1)
  • iter::traits::iterator::test_iterator_min_max_use_ord_min_max: [missing] -> pass (J1)

Stage 2

  • iter::traits::iterator::test_iterator_min_max_by_key_use_lt: [missing] -> pass (J0)
  • iter::traits::iterator::test_iterator_min_max_use_ord_min_max: [missing] -> pass (J0)

Additionally, 408 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 c9b7f178899788fac53d942b82cf97665ee59aaa --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. pr-check-1: 18m 28s -> 26m 47s (+45.0%)
  2. x86_64-gnu-gcc: 1h 10m -> 44m 50s (-36.0%)
  3. arm-android: 1h 10m -> 1h 30m (+28.7%)
  4. dist-loongarch64-musl: 1h 23m -> 1h 45m (+27.3%)
  5. i686-msvc-2: 2h 8m -> 1h 35m (-25.8%)
  6. dist-ohos-aarch64: 1h -> 1h 14m (+24.9%)
  7. test-various: 1h 53m -> 1h 25m (-24.7%)
  8. x86_64-gnu-parallel-frontend: 1h 13m -> 1h 31m (+24.6%)
  9. x86_64-rust-for-linux: 34m 24s -> 42m 45s (+24.3%)
  10. dist-i686-linux: 1h 46m -> 1h 21m (-23.4%)
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
Copy Markdown
Collaborator

Finished benchmarking commit (c9b7f17): comparison URL.

Overall result: ❌✅ regressions and improvements - please read:

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

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)
1.5% [1.5%, 1.5%] 1
Regressions ❌
(secondary)
0.3% [0.2%, 0.4%] 3
Improvements ✅
(primary)
-0.2% [-0.2%, -0.2%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.6% [-0.2%, 1.5%] 2

Max RSS (memory usage)

Results (primary 1.1%, secondary -0.8%)

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

mean range count
Regressions ❌
(primary)
5.2% [5.2%, 5.2%] 1
Regressions ❌
(secondary)
3.7% [3.7%, 3.7%] 1
Improvements ✅
(primary)
-3.0% [-3.0%, -3.0%] 1
Improvements ✅
(secondary)
-3.0% [-5.1%, -0.9%] 2
All ❌✅ (primary) 1.1% [-3.0%, 5.2%] 2

Cycles

Results (secondary 1.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)
3.7% [2.2%, 5.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.4% [-2.4%, -2.4%] 1
All ❌✅ (primary) - - 0

Binary size

Results (primary 0.0%, secondary 0.0%)

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

mean range count
Regressions ❌
(primary)
1.7% [0.2%, 3.3%] 2
Regressions ❌
(secondary)
0.0% [0.0%, 0.0%] 1
Improvements ✅
(primary)
-0.2% [-1.8%, -0.0%] 15
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.0% [-1.8%, 3.3%] 17

Bootstrap: 462.264s -> 458.034s (-0.92%)
Artifact size: 398.88 MiB -> 398.93 MiB (0.01%)

@rustbot rustbot added the perf-regression Performance regression. label Aug 15, 2026
@rust-bors

rust-bors Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#160203 Iterator::{min,max}(_by_key) should use overridden min/… 297d88e636010e8348f97e1687143f116cee0d1f
(link)
#159862 Update expect messages for library/alloc/src/vec/mod.rs db3c21274de5d05f6b84f58c51e841d4dc2c80a0
(link)
#160719 Improve OpenOptions append+truncate error message 3133df6f56403790de7e8b6b7cb849fcad27ce63
(link)
#160996 Forward all array PartialOrd to slices a428986683535cbf13ddcffa13d72e390fd70c69
(link)
#161102 Explicitly pass run_make_support rlib/rmeta paths to compil… db34528ccf86c5652fb73b7cb9d27124a5799b25
(link)

parent commit: b4116af55f

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

@Kobzol

Kobzol commented Aug 15, 2026

Copy link
Copy Markdown
Member

@rust-timer build 297d88e

(Just testing if the bors-produced artifacts work).

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (297d88e): comparison URL.

Overall result: ❌ regressions - please read:

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.9% [0.2%, 1.5%] 2
Regressions ❌
(secondary)
0.3% [0.2%, 0.4%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.9% [0.2%, 1.5%] 2

Max RSS (memory usage)

Results (primary 1.1%, secondary -1.1%)

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

mean range count
Regressions ❌
(primary)
5.6% [5.6%, 5.6%] 1
Regressions ❌
(secondary)
3.0% [3.0%, 3.0%] 1
Improvements ✅
(primary)
-3.4% [-3.4%, -3.4%] 1
Improvements ✅
(secondary)
-5.3% [-5.3%, -5.3%] 1
All ❌✅ (primary) 1.1% [-3.4%, 5.6%] 2

Cycles

Results (secondary 4.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)
4.9% [4.9%, 4.9%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Binary size

Results (primary 0.0%)

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

mean range count
Regressions ❌
(primary)
1.7% [0.2%, 3.3%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.2% [-1.8%, -0.0%] 15
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.0% [-1.8%, 3.3%] 17

Bootstrap: 462.264s -> 457.921s (-0.94%)
Artifact size: 398.88 MiB -> 398.82 MiB (-0.02%)

@Kobzol

Kobzol commented Aug 18, 2026

Copy link
Copy Markdown
Member

The image blip is noise, otherwise essentially no changes.

@rustbot label: +perf-regression-triaged

@rustbot rustbot added the perf-regression-triaged The performance regression has been triaged. label Aug 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-compiletest Area: The compiletest test runner A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. perf-regression-triaged The performance regression has been triaged. rollup A PR which is a rollup T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) 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.

7 participants