Skip to content

Conversation

@jhpratt
Copy link
Member

@jhpratt jhpratt commented Oct 30, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

theemathas and others added 19 commits July 7, 2025 11:22
This is done because `Cow` implements `Deref`. Therefore, to
avoid conflicts with an inner type having a method of the same
name, we use an associated method, like `Box::into_raw`.
Co-Authored-By: Jeremy Soller <jackpot51@gmail.com>
This prevents a warning about ABI relevant target features not being set
on x86 and arm. In addition it is required for miri to report correct
features in is_*_feature_detected!() if miri switches to the dummy backend.
We no longer need two thread-local variables to store the context.
We used to have two because the conversion logic used to live in a
separate crate from the rest of the business logic.

I'm also removing the Container struct and replacing the
CompilerInterface trait with a struct. This removes the unnecessary
indirection and code duplication. Using a trait would also block us
from adding any generic method to the compiler interface.
…ssociated, r=dtolnay

Turn `Cow::is_borrowed,is_owned` into associated functions.

This is done because `Cow` implements `Deref`. Therefore, to avoid conflicts with an inner type having a method of the same name, we use an associated method, like `Box::into_raw`.

Tracking issue: rust-lang#65143
…opt, r=cjgillot

Micro-optimization attempt in coroutine layout computation

In `compute_layout`, there were a bunch of collections (`IndexVec`s) that were being created by `push`ing in a loop, instead of a, hopefully, more performant usage of iterator combinators. [Second commit](rust-lang@6f682c2) is just a small cleanup.

I'd love a perf run to see if this shows up in benchmarks.
Simplify rustc_public context handling

We no longer need two thread-local variables to store the context. We used to have two because the conversion logic used to live in a separate crate from the rest of the business logic.

I'm also merging the Container struct and the CompilerInterface trait as a single struct. This removes the unnecessary indirection and code duplication. Using a trait would also block us from adding any generic method to the compiler interface.

r? ``@oli-obk``

cc: ``@makai410``
…ddle

rustdoc: Rename unstable option `--nocapture` to `--no-capture` in accordance with `libtest`

Context: rust-lang#133073, rust-lang#139224 (TL;DR: `libtest` has soft-deprecated `--nocapture` in favor a new & stable `--no-capture`; we should follow suit).

Since the rustdoc flag is unstable (tracking issue: rust-lang#148116), we're allowed to remove the old flag immediately. However since the flag has existed for 4 years we could hard-deprecate the flag first or at least be considerate and provide a diagnostic referring users to the new flag. This PR does neither. Let me know what you would think would be best.

Cargo doesn't use this flag, not yet at least (rust-lang/cargo#9705), so we really are free to sunset this flag without bigger consequences.
Couple of changes for Redox OS

This upstreams all redox patches that can be upstreamed.

cc ```@jackpot51```
…triddle

[rustdoc] Include attribute and derive macros when filtering on "macros"

As discussed [here](rust-lang#147909), some filters should have been "grouped". This PR allows attribute and derive macros to match the `macro` filter.

I'll wait for rust-lang#148005 to add more tests as it would require a proc-macro library for now.

r? ```@notriddle```
…es, r=JonathanBrouwer

Handle default features and -Ctarget-features in the dummy backend

This prevents a warning about ABI relevant target features not being set on x86 and arm. In addition it is required for miri to report correct features in is_*_feature_detected!() if miri switches to the dummy backend.

Required for rust-lang/miri#4648
…saethlin

Align VEX V5 boot routine to 4 bytes

This PR fixes an alignment issue with the initialization routine on the VEX V5 target.

Previously, if the `.text` output section contained any functions aligned to more than four bytes, the linker would add padding bytes before the beginning of `.text` rather than changing the position of the aligned function inside the section itself. This is an issue because the entry point for the program needs to be located at `0x3800_0020` on this platform and the addition of padding could cause it to be moved.

To fix this, I've forced the start address of the `.text` section to be aligned to 4 bytes so that the entry point is placed consistently. Items inside the section can still be aligned to values larger than this.
@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-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. 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. rollup A PR which is a rollup labels Oct 30, 2025
@jhpratt
Copy link
Member Author

jhpratt commented Oct 30, 2025

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Oct 30, 2025

📌 Commit 4796814 has been approved by jhpratt

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 Oct 30, 2025
@bors
Copy link
Collaborator

bors commented Oct 30, 2025

⌛ Testing commit 4796814 with merge 72fe2ff...

@bors
Copy link
Collaborator

bors commented Oct 30, 2025

☀️ Test successful - checks-actions
Approved by: jhpratt
Pushing 72fe2ff to master...

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

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#138217 Turn Cow::is_borrowed,is_owned into associated functions. 56f13e06ce2451481d294b1dead4a79a61034cd9 (link)
#147858 Micro-optimization attempt in coroutine layout computation 5def7768a8491ead15a696d1cfb0233b35924a4b (link)
#147923 Simplify rustc_public context handling b85829cd5c90718cc0cea28602e3ff3325e7041b (link)
#148115 rustdoc: Rename unstable option --nocapture to `--no-capt… 1c5b3670eb0058c5416c39c95469aec72c798626 (link)
#148137 Couple of changes for Redox OS ba3cd6ce39a7608e6547ad41ea5ac8e19989683b (link)
#148176 [rustdoc] Include attribute and derive macros when filterin… 1c09b0c4fcea23a161479e9d2aea28d5c35bde49 (link)
#148253 Handle default features and -Ctarget-features in the dummy … b27272428f09375847cf530616c420da86f45919 (link)
#148272 Align VEX V5 boot routine to 4 bytes 5ac83dd603ee48b2a4da73ac3f621c33df4fd917 (link)

previous master: 292be5c7c0

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

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 292be5c (parent) -> 72fe2ff (this PR)

Test differences

Show 44 test diffs

Stage 0

  • spec::tests::riscv64gc_unknown_redox: [missing] -> pass (J0)

Stage 1

  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#riscv64gc_unknown_redox: [missing] -> pass (J0)
  • [ui] tests/rustdoc-ui/doctest/no-capture-fail.rs: [missing] -> pass (J0)
  • [ui] tests/rustdoc-ui/doctest/no-capture.rs: [missing] -> pass (J0)
  • [ui] tests/rustdoc-ui/doctest/nocapture-fail.rs: pass -> [missing] (J0)
  • [ui] tests/rustdoc-ui/doctest/nocapture.rs: pass -> [missing] (J0)
  • spec::tests::riscv64gc_unknown_redox: [missing] -> pass (J1)

Stage 2

  • [ui] tests/rustdoc-ui/doctest/no-capture-fail.rs: [missing] -> pass (J2)
  • [ui] tests/rustdoc-ui/doctest/no-capture.rs: [missing] -> pass (J2)
  • [ui] tests/rustdoc-ui/doctest/nocapture-fail.rs: pass -> [missing] (J2)
  • [ui] tests/rustdoc-ui/doctest/nocapture.rs: pass -> [missing] (J2)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#riscv64gc_unknown_redox: [missing] -> pass (J3)

Additionally, 32 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 72fe2ffb391f397efdfafb2216028ed9952e8078 --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-aarch64-linux: 6353.0s -> 8735.5s (+37.5%)
  2. pr-check-1: 1428.9s -> 1755.6s (+22.9%)
  3. dist-apple-various: 4307.4s -> 3391.9s (-21.3%)
  4. aarch64-apple: 9641.5s -> 8177.9s (-15.2%)
  5. dist-aarch64-apple: 7640.5s -> 6578.3s (-13.9%)
  6. dist-x86_64-apple: 7778.8s -> 6805.1s (-12.5%)
  7. x86_64-gnu-llvm-20: 2385.4s -> 2666.6s (+11.8%)
  8. aarch64-msvc-2: 5646.9s -> 5020.7s (-11.1%)
  9. i686-gnu-nopt-1: 7302.6s -> 8105.7s (+11.0%)
  10. dist-ohos-x86_64: 4784.2s -> 4273.3s (-10.7%)
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 (72fe2ff): 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 2.8%)

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)
2.8% [2.6%, 2.9%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Cycles

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

Binary size

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

Bootstrap: 475.908s -> 475.302s (-0.13%)
Artifact size: 390.25 MiB -> 390.18 MiB (-0.02%)

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.