Skip to content

Rollup of 4 pull requests - #162707

Merged
rust-bors[bot] merged 13 commits into
rust-lang:mainfrom
mu001999:rollup-LGECK0Y
Sep 13, 2026
Merged

Rollup of 4 pull requests#162707
rust-bors[bot] merged 13 commits into
rust-lang:mainfrom
mu001999:rollup-LGECK0Y

Conversation

@mu001999

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

yoshuawuyts and others added 13 commits August 31, 2026 12:12
Signed-off-by: Yosh <github@yosh.is>
A command like `rustc -optimize a.rs` currently gives this:
```
warning: option `-o` has no space between flag name and value, which can be confusing

note: output filename `-o ptimize` is applied instead of a flag named `optimize`

help: insert a space between `-o` and `ptimize` if this is intentional: `-o ptimize`
```

A top-level warning, then a top-level note, then a top-level help.
Weird!

This commit converts the note and the help into children of the warning,
which looks better and matches how things are normally done, giving
this:
```
warning: option `-o` has no space between flag name and value, which can be confusing
  |
  = note: output filename `-o ptimize` is applied instead of a flag named `optimize`
  = help: insert a space between `-o` and `ptimize` if this is intentional: `-o ptimize`
```
Much better.
Currently the command `rustc -Zunstable-options -j3 --jobs-backend=1
a.rs`, when run on stable rustc, gives this:
```
error: the option `Z` is only accepted on the nightly compiler

error: the option `jobs` is only accepted on the nightly compiler

error: the option `jobs-backend` is only accepted on the nightly compiler

help: consider switching to a nightly toolchain: `rustup default nightly`

note: selecting a toolchain with `+toolchain` arguments require a rustup proxy; see <https://rust-lang.github.io/rustup/concepts/index.html>

note: for more information about Rust's stability policy, see <https://doc.rust-lang.org/book/appendix-07-nightly-rust.html#unstable-features>

error: 3 nightly options were parsed
```

The errors are fine, but top-level help and notes are weird.

This commit changes it to this, which is more normal:
```
error: the option `Z` is only accepted on the nightly compiler

error: the option `jobs` is only accepted on the nightly compiler

error: the option `jobs-backend` is only accepted on the nightly compiler

error: 3 nightly options were parsed
  |
  = help: consider switching to a nightly toolchain: `rustup default nightly`
  = note: selecting a toolchain with `+toolchain` arguments require a rustup proxy; see <https://rust-lang.github.io/rustup/concepts/index.html>
  = note: for more information about Rust's stability policy, see <https://doc.rust-lang.org/book/appendix-07-nightly-rust.html#unstable-features>
```

It's a slightly different order but that seems fine.

The commit also makes two other small improvements:
- An unnecessary `match opt.stability` is removed. (There's another
  `opt.stability` check a few lines above.)
- It fixes "1 nightly option were parsed" to "1 nightly option was
  parsed".
…iangfei2009

Improve into_slice_range inlining and add #[track_caller]

This is a solution to rust-lang#157909. I think the root problem is that LLVM sees the many non-inlinable calls to `slice_index_fail` and decides that the function must be a bad inlining candidate. So I've shunted all the logic for reporting the right error into a single cold function and improved `try_into_slice_range` so that we only have to write all these checks once.
…=nia-e

Stabilize `core::mem::DropGuard`

Closes rust-lang#144426. This PR stabilizes `core::mem::DropGuard`, as per the comment in rust-lang#144426 (comment):

> [nia-e]: We discussed this in today's libs meeting - DropGuard is a good name, and we agreed dismiss is Good Enough & better than the other options. Feel free to send a stabilisation PR & ask us to open FCP there!

Thanks!

r? @nia-e
…help, r=estebank

Remove `EarlyDiagCtxt::early_{note,help}`

We have some top-level `help` and `note` diagnostics emittable at startup. These are weird. This PR eliminates them. Details in individual commits.

r? @estebank
riscv: stabilize 'd' and 'f' target features

rust-lang#156188 has been reverted in rust-lang#161064 due to concerns about "e" being a negative target feature.

"d" and "f" however are almost normal target features, so let's re-land them.
The one thing that's odd about them is that we cannot allow you to use `-Ctarget-feature` or `#[target_feature]` for them on *some* riscv ABIs. (For now, it remains unstable on all riscv ABIs.) So this means we need the concept of target-features that are fixed by the target spec and cannot be changed by the user. OTOH we kind of already have that, even for fully stable target features:
- On x86-64, we don't let people disable "sse2". On aarch64, we don't let people disable "neon".
- [Soon](rust-lang#160302), on x86-64 softfloat, we don't let people enable "sse2".

"neon" and "sse2" are even stable target features. So  I see no reason not to fully stabilize "d" and "f", with the following constraints:
- on riscv targets that use a "d" ABI (ilp32d, lp64d), you can't disable either of them
- on riscv targets that use an "f" ABI (ilp32f, lp64f), you can't disable "f"
- on riscv ilp32e targets, you can't *enable* "d"

Cc @romancardenas
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Sep 13, 2026
@rustbot rustbot added A-run-make Area: port run-make Makefiles to rmake.rs 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. labels Sep 13, 2026
@mu001999

Copy link
Copy Markdown
Member Author

@bors r+ p=5

@rust-bors

rust-bors Bot commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 430e887 has been approved by mu001999

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 Sep 13, 2026
@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 Sep 13, 2026
@rust-bors

rust-bors Bot commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: mu001999
Duration: 2h 53m 20s
Pushing 0630f86 to main...

@rust-bors
rust-bors Bot merged commit 0630f86 into rust-lang:main Sep 13, 2026
14 checks passed
@rustbot rustbot added this to the 1.100.0 milestone Sep 13, 2026
@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 6474e99 (parent) -> 0630f86 (this PR)

Test differences

Show 16 test diffs

Stage 1

  • [codegen] tests/codegen-llvm/bounds-check-elision-slice-min.rs: pass -> [missing] (J1)
  • [codegen] tests/codegen-llvm/bounds-checking/bound-tuple.rs: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/bounds-checking/slice-min.rs: [missing] -> pass (J1)

Stage 2

  • [codegen] tests/codegen-llvm/bounds-check-elision-slice-min.rs: pass -> [missing] (J0)
  • [codegen] tests/codegen-llvm/bounds-checking/bound-tuple.rs: [missing] -> pass (J0)
  • [codegen] tests/codegen-llvm/bounds-checking/slice-min.rs: [missing] -> pass (J0)

Additionally, 10 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 0630f86825f5064dfa85a119c959bd2c7f48f4de --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. test-x86_64-gnu-stdlib-semver-check: 11m 8s -> 17m 20s (+55.7%)
  2. test-x86_64-rust-for-linux: 42m 4s -> 1h 2m (+47.5%)
  3. test-x86_64-gnu-llvm-22-2: 1h 13m -> 1h 46m (+44.8%)
  4. test-x86_64-gnu-llvm-22-1: 58m 14s -> 1h 19m (+36.6%)
  5. test-x86_64-msvc-ext3: 1h 51m -> 1h 10m (-36.4%)
  6. dist-x86_64-msvc-alt: 2h 49m -> 1h 50m (-35.0%)
  7. dist-armv7-linux: 1h 13m -> 1h 37m (+33.8%)
  8. test-i686-gnu-nopt-1: 2h 9m -> 1h 33m (-27.6%)
  9. optional-test-x86_64-gnu-autodiff: 35m 46s -> 45m 30s (+27.2%)
  10. dist-x86_64-freebsd: 1h 14m -> 1h 33m (+26.3%)
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 (0630f86): comparison URL.

Overall result: ✅ improvements - 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
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.7% [-0.7%, -0.7%] 6
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary 0.1%)

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

mean range count
Regressions ❌
(primary)
0.7% [0.4%, 1.0%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-1.0% [-1.0%, -1.0%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.1% [-1.0%, 1.0%] 3

Cycles

Results (primary 0.5%, secondary -3.0%)

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

mean range count
Regressions ❌
(primary)
0.7% [0.5%, 0.9%] 4
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.5% [-0.5%, -0.5%] 1
Improvements ✅
(secondary)
-3.0% [-3.0%, -3.0%] 1
All ❌✅ (primary) 0.5% [-0.5%, 0.9%] 5

Binary size

Results (primary -0.3%)

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

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

Bootstrap: 496.981s -> 492.224s (-0.96%)
Artifact size: 406.98 MiB -> 406.97 MiB (-0.00%)

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 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants