Skip to content

Conversation

matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Oct 4, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

Marcondiro and others added 24 commits September 9, 2025 09:03
Partially revert a535042

Even with non-LLVM codegen backends, we want to allow for annotations
that express dependencies to LLVM-specific parts of the test suite.
This includes `//@ needs-llvm-components`, which just allows checking
that LLVM is built with relevant target support before the test is run.
It does not assert the test cannot work with another codegen backend.
illumos' `ld` does not support a flag like either SHF_GNU_RETAIN or
SHF_SUNW_NODISCARD, so there is no way to communicate `#[used(linker)]`
for that target. Setting `USED_LINKER` to try results in LLVM setting
SHF_SUNW_NODISCARD for Solaris-like targets, which is an unknown section
header flag for illumos `ld` and prevents sections from being merged
that otherwise would.

As a motivating example, the `inventory` crate produces
`#[used]` items to merge into `.init_array`. Because those items have an
unknown section header flag they are not merged with the default
`.init_array` with `frame_dummy`, and end up never executed.

Downgrading `#[used]` to `#[used(compiler)]` on illumos keeps
so-attributed items as preserved as they had been before
rust-lang#140872. As was the case before
that change, because rustc passes `-z ignore` to illumos `ld`, it's
possible that `used` sections are GC'd at link time.
rust-lang#146169 describes this
unfortunate circumstance.
…-syntax, r=ibraheemdev,fmease

Document fully-qualified syntax in `as`' keyword doc
…mmerjake,tgross35

add CloneFromCell and Cell::get_cloned

Tracking issue: rust-lang#145329
Bump unicode_data and printables to version 17.0.0

Unicode 17 ~~is not stable yet (release planned for 2025-09-09).~~ [has been released!](https://www.unicode.org/versions/Unicode17.0.0/)

Update Unicode data and printables to [Unicode 17](https://www.unicode.org/versions/Unicode17.0.0/)
…ocs, r=tgross35

Fix atan2 inaccuracy in documentation

Fixes rust-lang#136275
…oratrieb

interpret `#[used]` as `#[used(compiler)]` on illumos

helps rust-lang#146169 not be as painful: fixes the illumos regression in rust-lang#140872, but `#[used(linker)]` is still erroneous on illumos generally.

illumos' `ld` does not support a flag like either SHF_GNU_RETAIN or SHF_SUNW_NODISCARD, so there is no way to communicate `#[used(linker)]` for that target. Setting `USED_LINKER` to try results in LLVM setting SHF_SUNW_NODISCARD for Solaris-like targets, which is an unknown section header flag for illumos `ld` and prevents sections from being merged that otherwise would.

As a motivating example, the `inventory` crate produces `#[used]` items to merge into `.init_array`. Because those items have an unknown section header flag they are not merged with the default `.init_array` with `frame_dummy`, and end up never executed.

Downgrading `#[used]` to `#[used(compiler)]` on illumos keeps so-attributed items as preserved as they had been before rust-lang#140872. As was the case before that change, because rustc passes `-z ignore` to illumos `ld`, it's possible that `used` sections are GC'd at link time. rust-lang#146169 describes this unfortunate circumstance.

----

as it turns out, `tests/ui/attributes/used_with_archive.rs` had broken on `x86_64-unknown-illumos`, and this patch fixes it. the trials and tribulations of tier 2 :(

r? ````@Noratrieb```` probably?
…ross35

std: `sys::net` cleanups

This PR contains three improvements to the socket-based networking implementation (aa1263e is just to add the now missing `unsafe`). Best reviewed commit-by-commit.
…nt-change, r=lcnr

Do not assert that a change in global cache only happens when concurrent

Fixes rust-lang/trait-system-refactor-initiative#234

I think it should just be safe to remove this assert (rather than delaying a bug). If the previous and current result are the same, I wouldn't expect issues.

r? lcnr
…c-in-my-llvm-components, r=Kobzol

Return to needs-llvm-components being info-only

Partially revert a535042

Even with non-LLVM codegen backends, we want to allow for annotations that express dependencies to LLVM-specific parts of the test suite. This includes `//@ needs-llvm-components`, which just allows checking that LLVM is built with relevant target support before the test is run. It does not assert the test cannot work with another codegen backend.
…youxu

bless autodiff batching test

This pr blesses a broken test and unblocks running rust in the Enzyme CI: EnzymeAD/Enzyme#2430
Enzyme is the plugin used by our std::autodiff and (future) std::batching modules, both of which are not build by default.
In the near future we also hope to enable std::autodiff in the Rust CI.

This test is the only one to combine two features, automatic differentiation and batching/vectorization. This combination is even more experimental than either feature on its own. I have a wip branch in which I enable more vectorization/batching and as part of that I'll think more about how to write those tests in a robust way (and likely change the interface). Until that lands, I don't care too much about what specific IR we generate here; it's just nice to track changes.

r? compiler
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-compiletest Area: The compiletest test runner A-testsuite Area: The testsuite used to check the correctness of rustc O-unix Operating system: Unix-like O-windows Operating system: Windows S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 4, 2025
@rustbot rustbot added 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 Oct 4, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Oct 4, 2025

📌 Commit a84359c 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 Oct 4, 2025
@bors
Copy link
Collaborator

bors commented Oct 4, 2025

⌛ Testing commit a84359c with merge 2cb4e7d...

@bors
Copy link
Collaborator

bors commented Oct 4, 2025

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

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Oct 4, 2025
@bors bors merged commit 2cb4e7d into rust-lang:master Oct 4, 2025
11 checks passed
@rustbot rustbot added this to the 1.92.0 milestone Oct 4, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#142670 Document fully-qualified syntax in as' keyword doc 274446ad61eaf8a4ee5d8ee6f171e531acf3f0b4 (link)
#145685 add CloneFromCell and Cell::get_cloned 24351f733039abfcf45e661bd16de3ae7d3a1fb5 (link)
#146330 Bump unicode_data and printables to version 17.0.0 89b93186b9991108de1151576db180a5ab1b01fe (link)
#146451 Fix atan2 inaccuracy in documentation 0dc71b50cac63556fa004df25227ad4a47c708ca (link)
#146479 add mem::conjure_zst daf9bc2ed1068474333d57dfd04794a03fab3095 (link)
#147117 interpret #[used] as #[used(compiler)] on illumos a2cf263c48d5a7a18dd504bc313aa721bb19b9ab (link)
#147190 std: sys::net cleanups 65c132b2a8c3bac22954a0c15d5cda8c8cadc629 (link)
#147251 Do not assert that a change in global cache only happens wh… 9121260f29f9314c7c86269a9f4cc378819d1118 (link)
#147280 Return to needs-llvm-components being info-only 602238dd9d4a75a55c83528ca79378b3b4c3db0d (link)
#147315 bless autodiff batching test 317d48bbed07cd3636c0bbd2e3454189fbb6c0cb (link)

previous master: 99ca0ae87b

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

github-actions bot commented Oct 4, 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 99ca0ae (parent) -> 2cb4e7d (this PR)

Test differences

Show 1799 test diffs

Stage 1

  • [ui] tests/ui/consts/std/conjure_zst.rs: [missing] -> pass (J1)
  • [ui] tests/ui/delegation/unsupported.rs: pass -> [missing] (J1)
  • [ui] tests/ui/delegation/unsupported.rs#current: [missing] -> pass (J1)
  • [ui] tests/ui/delegation/unsupported.rs#next: [missing] -> pass (J1)

Stage 2

  • [ui] tests/ui/consts/std/conjure_zst.rs: [missing] -> pass (J0)
  • [ui] tests/ui/delegation/unsupported.rs: pass -> [missing] (J0)
  • [ui] tests/ui/delegation/unsupported.rs#current: [missing] -> pass (J0)
  • [ui] tests/ui/delegation/unsupported.rs#next: [missing] -> pass (J0)

Additionally, 1791 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 2cb4e7dce84fdebc0279159f1082f92b99299d87 --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-apple-various: 3298.8s -> 4123.7s (25.0%)
  2. aarch64-apple: 9313.3s -> 7595.3s (-18.4%)
  3. dist-x86_64-apple: 7102.7s -> 7907.5s (11.3%)
  4. aarch64-msvc-1: 7224.9s -> 6475.2s (-10.4%)
  5. aarch64-gnu-debug: 4028.2s -> 3702.5s (-8.1%)
  6. i686-msvc-2: 7723.4s -> 7208.6s (-6.7%)
  7. dist-ohos-armv7: 4631.3s -> 4345.4s (-6.2%)
  8. x86_64-gnu-llvm-20-2: 5612.9s -> 5932.3s (5.7%)
  9. x86_64-gnu-llvm-20-3: 6426.2s -> 6075.5s (-5.5%)
  10. pr-check-1: 1431.6s -> 1356.0s (-5.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
Collaborator

Finished benchmarking commit (2cb4e7d): 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.1% [0.1%, 0.1%] 2
Regressions ❌
(secondary)
0.2% [0.1%, 0.3%] 12
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.9% [-1.0%, -0.8%] 6
All ❌✅ (primary) 0.1% [0.1%, 0.1%] 2

Max RSS (memory usage)

Results (primary -2.5%, secondary -2.3%)

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)
-2.5% [-4.2%, -0.8%] 2
Improvements ✅
(secondary)
-2.3% [-2.3%, -2.3%] 1
All ❌✅ (primary) -2.5% [-4.2%, -0.8%] 2

Cycles

Results (secondary -3.4%)

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)
- - 0
Improvements ✅
(secondary)
-3.4% [-3.4%, -3.4%] 1
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)
0.0% [0.0%, 0.0%] 3
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.0% [0.0%, 0.0%] 3

Bootstrap: 471.44s -> 471.593s (0.03%)
Artifact size: 388.29 MiB -> 388.35 MiB (0.01%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-attributes Area: Attributes (`#[…]`, `#![…]`) 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. O-unix Operating system: Unix-like O-windows Operating system: Windows perf-regression Performance regression. 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.