Skip to content

Rollup of 11 pull requests #144109

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 63 commits into from
Jul 18, 2025
Merged

Rollup of 11 pull requests #144109

merged 63 commits into from
Jul 18, 2025

Conversation

matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Jul 18, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

cjgillot and others added 30 commits July 1, 2025 11:37
See RUST-141600: this test is broken in two ways:

1. This test triggers `-Wincompatible-pointer-types` on GCC 14.
2. This test requires ARMv8.5+ w/ MTE extensions enabled, but GHA CI
   runner hardware do not have this enabled.
./x is recommended over running ./x.py directly,
and is the more commonly-used invocation of bootstrap in the guide
use a consistent (and recommended) invocation
- --depth=1 is more useful for once-off uses, like on ci
- .git postfix on github repo url is not needed
That is, calling it an example is misleading
Nowhere else is this called "Dist check"
distcheck has only one possible invocation
…-false, r=clubby789

Boostrap: add warning on `optimize = false`

I recently came across a bug that can be traced back to the use of `optimize = false` in `bootstrap.toml` in combination with other settings. Following [this](https://rust-lang.zulipchat.com/#narrow/channel/182449-t-compiler.2Fhelp/topic/Missing.20box-related.20symbols.20with.20panic.20.3D.20'abort'/with/528992909) conversation, this PR adds a warning from `bootstrap` when `optimize = false` is used.

I notice that in the same file I edited there are two different styles for warnings (`WARN`, `Warning`). I used `WARNING` because, by happenstance, when testing I got a `WARNING` that I didn't set a change id: let me know if I can unify the styles in the file I edited.
rustc-dev-guide subtree update

r? ghost
Copy GCC sources into the build directory even outside CI

It takes ~3.5s on my Linux notebook to perform the copy, but it should only be executed when we actually go build GCC, and that will almost certainly take much longer :) So I think it should be fine. At least we won't be polluting the source directory for local builds.

Fixes: rust-lang#143986

r? `````@nikic`````
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-rustc-dev-guide Area: rustc-dev-guide PG-exploit-mitigations Project group: Exploit mitigations 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. rollup A PR which is a rollup labels Jul 18, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Jul 18, 2025

📌 Commit c22e2ea has been approved by matthiaskrgr

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 Jul 18, 2025
@bors
Copy link
Collaborator

bors commented Jul 18, 2025

⌛ Testing commit c22e2ea with merge 6c0a912...

@bors
Copy link
Collaborator

bors commented Jul 18, 2025

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

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

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#142300 Disable tests/run-make/mte-ffi because no CI runners have… 83f530d39f2542d6a069f333e6315205bfa73003 (link)
#143271 Store the type of each GVN value 93db3763d9735e1baaad7932a8700c578c6dbed1 (link)
#143293 fix -Zsanitizer=kcfi on #[naked] functions c6ecbb9289944b35d3a4dc5d034d4ec711562c08 (link)
#143719 Emit warning when there is no space between -o and arg f4de192cd829370e808a22cc71a81ee615dcab46 (link)
#143846 pass --gc-sections if -Zexport-executable-symbols is enable… 63eaccf6094f29aaeecad0d5d3f70e44951b62e8 (link)
#143891 Port #[coverage] to the new attribute system eff35607749013d9de65c732571f4c0a836dbba0 (link)
#143967 constify Option methods 511d666d0add206e15b7d4f3b23b9ae2e4c66ab5 (link)
#144008 Fix false positive double negations with macro invocation 6d1bc76597638131d80d67eaf0ea44c57da309d0 (link)
#144010 Boostrap: add warning on optimize = false e4321b27e663363096361cfbeca71b37cd94e648 (link)
#144049 rustc-dev-guide subtree update a04e5e016b120e62662b3363ec56cc39acd569a5 (link)
#144056 Copy GCC sources into the build directory even outside CI 60f8f8975f7b43d0bdca4febed0788b4969b939f (link)

previous master: 1aa5b22465

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

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 1aa5b22 (parent) -> 6c0a912 (this PR)

Test differences

Show 229 test diffs

Stage 1

  • [codegen] tests/codegen/sanitizer/kcfi/naked-function.rs#aarch64: [missing] -> pass (J3)
  • [codegen] tests/codegen/sanitizer/kcfi/naked-function.rs#x86_64: [missing] -> pass (J3)
  • [crashes] tests/crashes/128094.rs: pass -> [missing] (J3)
  • [crashes] tests/crashes/135128.rs: pass -> [missing] (J3)
  • [run-make] tests/run-make/option-output-no-space: [missing] -> pass (J3)
  • [ui] tests/ui/asm/naked-function-shim.rs#aarch64: [missing] -> pass (J3)
  • [ui] tests/ui/asm/naked-function-shim.rs#x86_64: [missing] -> pass (J3)
  • [ui] tests/ui/lint/lint-double-negations-macro.rs: [missing] -> pass (J3)
  • [ui] tests/ui/mir/gvn-nonsensical-coroutine-layout.rs: [missing] -> pass (J3)
  • [ui] tests/ui/mir/gvn-nonsensical-sized-str.rs: [missing] -> pass (J3)

Stage 2

  • [ui] tests/ui/asm/naked-function-shim.rs#aarch64: [missing] -> pass (J0)
  • [ui] tests/ui/asm/naked-function-shim.rs#x86_64: [missing] -> pass (J0)
  • [ui] tests/ui/lint/lint-double-negations-macro.rs: [missing] -> pass (J0)
  • [ui] tests/ui/mir/gvn-nonsensical-coroutine-layout.rs: [missing] -> pass (J0)
  • [ui] tests/ui/mir/gvn-nonsensical-sized-str.rs: [missing] -> pass (J0)
  • [codegen] tests/codegen/sanitizer/kcfi/naked-function.rs#aarch64: [missing] -> pass (J1)
  • [codegen] tests/codegen/sanitizer/kcfi/naked-function.rs#x86_64: [missing] -> pass (J1)
  • [crashes] tests/crashes/128094.rs: pass -> [missing] (J1)
  • [crashes] tests/crashes/135128.rs: pass -> [missing] (J1)
  • [run-make] tests/run-make/option-output-no-space: [missing] -> ignore (ignored when cross-compiling) (J2)
  • [ui] tests/ui/linking/export-executable-symbols.rs: ignore (only executed when the target environment is gnu) -> ignore (ignored when cross-compiling) (J4)
  • [run-make] tests/run-make/mte-ffi: pass -> ignore (ignored always ((FIXME tests/run-make/mte-ffi/ is broken #141600))) (J5)
  • [run-make] tests/run-make/option-output-no-space: [missing] -> pass (J6)
  • [run-make] tests/run-make/export-executable-symbols: ignore (only executed when the target family is unix) -> pass (J7)
  • [ui] tests/ui/linking/export-executable-symbols.rs: ignore (only executed when the target environment is gnu) -> pass (J8)
  • [ui] tests/ui/linking/export-executable-symbols.rs: pass -> ignore (ignored when cross-compiling) (J9)
  • [ui] tests/ui/linking/export-executable-symbols.rs: ignore (only executed when the operating system is linux) -> pass (J10)

Additionally, 202 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 6c0a912e5a45904cf537f34876b16ae71d899f86 --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. aarch64-apple: 7091.9s -> 4929.2s (-30.5%)
  2. dist-aarch64-linux: 8547.4s -> 5973.2s (-30.1%)
  3. x86_64-apple-1: 7906.9s -> 9982.8s (26.3%)
  4. dist-apple-various: 6695.4s -> 8177.9s (22.1%)
  5. x86_64-apple-2: 6493.8s -> 5456.9s (-16.0%)
  6. dist-aarch64-apple: 5537.4s -> 6255.2s (13.0%)
  7. dist-x86_64-apple: 11139.3s -> 9854.8s (-11.5%)
  8. aarch64-msvc-2: 5790.4s -> 5177.0s (-10.6%)
  9. x86_64-gnu-llvm-19-2: 6001.7s -> 6539.8s (9.0%)
  10. pr-check-1: 1862.3s -> 1704.6s (-8.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 (6c0a912): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

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

Max RSS (memory usage)

Results (primary -3.6%, secondary -2.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
Improvements ✅
(primary)
-3.6% [-6.8%, -1.5%] 4
Improvements ✅
(secondary)
-2.9% [-4.1%, -0.8%] 5
All ❌✅ (primary) -3.6% [-6.8%, -1.5%] 4

Cycles

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

Binary size

Results (primary 0.0%, secondary -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.2% [0.2%, 0.2%] 5
Regressions ❌
(secondary)
0.1% [0.1%, 0.2%] 5
Improvements ✅
(primary)
-0.2% [-0.4%, -0.0%] 4
Improvements ✅
(secondary)
-0.3% [-0.9%, -0.0%] 8
All ❌✅ (primary) 0.0% [-0.4%, 0.2%] 9

Bootstrap: 464.583s -> 465.309s (0.16%)
Artifact size: 374.66 MiB -> 374.62 MiB (-0.01%)

@rustbot rustbot added the perf-regression Performance regression. label Jul 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-rustc-dev-guide Area: rustc-dev-guide merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. PG-exploit-mitigations Project group: Exploit mitigations 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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.