Skip to content

Rollup of 10 pull requests#155655

Merged
rust-bors[bot] merged 89 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-KFUw3UR
Apr 22, 2026
Merged

Rollup of 10 pull requests#155655
rust-bors[bot] merged 89 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-KFUw3UR

Conversation

@JonathanBrouwer
Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

erfanio and others added 30 commits April 1, 2026 08:38
A `Duration` is essentially a 94-bit value (64-bit sec and ~30-bit ns),
so there's some inherent loss when converting to floating-point for
`mul_f64` and `div_f64`. We could go to greater lengths to compute these
with more accuracy, like rust-lang#150933 or rust-lang#154107,
but it's not clear that it's worth the effort. The least we can do is
document that some rounding is to be expected, which this commit does
with simple examples that only multiply or divide by `1.0`.

This also changes the `f32` methods to just forward to `f64`, so we keep
more of that duration precision, as the range is otherwise much more
limited there.
…otif-grp-links

Fix GPU target notification group links
…bors-squash

Document quoting for `@bors squash msg=`
This updates the rust-version file to 14196db.
This should be clear with less words

r? @reddevilmidzy
This updates the rust-version file to 17584a1.
Update neovim instructions for neovim 0.11+
Update link for Rust reference documentation
`~const` was replaced with `[const]`, making uses of the former confusing
effects.md: update const trait syntax
- Only latest nightly crates' docs are published
- How to get an old nightly docs
@rustbot rustbot added 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. labels Apr 22, 2026
@JonathanBrouwer
Copy link
Copy Markdown
Contributor Author

@bors r+ rollup=never 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,x86_64-mingw-1,i686-msvc-2

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented Apr 22, 2026

📌 Commit e94e3cc 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 Apr 22, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Apr 22, 2026
Rollup of 10 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
try-job: x86_64-mingw-1
try-job: i686-msvc-2
@rust-bors

This comment has been minimized.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented Apr 22, 2026

☀️ Try build successful (CI)
Build commit: 4718a18 (4718a18a0473fa7eb765319d7f4ccf71713df98b, parent: cf1817bc6ecd2d14ca492247c804bad31948dd56)

@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 Apr 22, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented Apr 22, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 11m 4s
Pushing 913e4be to main...

@rust-bors rust-bors Bot merged commit 913e4be into rust-lang:main Apr 22, 2026
13 checks passed
@rustbot rustbot added this to the 1.97.0 milestone Apr 22, 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 f676c20 (parent) -> 913e4be (this PR)

Test differences

Show 98 test diffs

Stage 1

  • [ui] tests/ui-fulldeps/rustc_public/check_fn_attrs.rs: [missing] -> ignore (ignored when the bootstrapping stage is stage1) (J0)
  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/error_is_shown_in_downstream_crates.rs: [missing] -> pass (J0)
  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/message_and_label.rs: [missing] -> pass (J0)
  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/notes_on_extra_args.rs: [missing] -> pass (J0)
  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/on_unmatch_args.rs: [missing] -> pass (J0)
  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/other_match_macro_error.rs: [missing] -> pass (J0)
  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/report_warning_on_invalid_formats.rs: [missing] -> pass (J0)
  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/report_warning_on_invalid_meta_item_syntax.rs: [missing] -> pass (J0)
  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/report_warning_on_missing_options.rs: [missing] -> pass (J0)
  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/report_warning_on_non_macro.rs: [missing] -> pass (J0)
  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/report_warning_on_unknown_options.rs: [missing] -> pass (J0)
  • [ui] tests/ui/feature-gates/feature-gate-diagnostic-on-unmatch-args.rs: [missing] -> pass (J0)

Stage 2

  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/error_is_shown_in_downstream_crates.rs: [missing] -> pass (J1)
  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/message_and_label.rs: [missing] -> pass (J1)
  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/notes_on_extra_args.rs: [missing] -> pass (J1)
  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/on_unmatch_args.rs: [missing] -> pass (J1)
  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/other_match_macro_error.rs: [missing] -> pass (J1)
  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/report_warning_on_invalid_formats.rs: [missing] -> pass (J1)
  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/report_warning_on_invalid_meta_item_syntax.rs: [missing] -> pass (J1)
  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/report_warning_on_missing_options.rs: [missing] -> pass (J1)
  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/report_warning_on_non_macro.rs: [missing] -> pass (J1)
  • [ui] tests/ui/diagnostic_namespace/on_unmatch_args/report_warning_on_unknown_options.rs: [missing] -> pass (J1)
  • [ui] tests/ui/feature-gates/feature-gate-diagnostic-on-unmatch-args.rs: [missing] -> pass (J1)
  • [ui] tests/ui-fulldeps/rustc_public/check_fn_attrs.rs: [missing] -> pass (J2)

Additionally, 74 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 913e4bea83424658d76712fee9c52452a3a9ef0e --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. armhf-gnu: 1h 6m -> 1h 33m (+39.9%)
  2. dist-ohos-x86_64: 1h 3m -> 1h 26m (+37.7%)
  3. arm-android: 1h 38m -> 2h 10m (+32.5%)
  4. test-various: 1h 29m -> 1h 57m (+31.5%)
  5. i686-msvc-2: 1h 45m -> 2h 17m (+30.4%)
  6. optional-x86_64-gnu-parallel-frontend: 2h 12m -> 2h 42m (+22.6%)
  7. pr-check-1: 28m 7s -> 33m 41s (+19.8%)
  8. aarch64-gnu-llvm-21-2: 46m 11s -> 54m 21s (+17.7%)
  9. x86_64-gnu-stable: 2h 17m -> 1h 53m (-17.6%)
  10. i686-gnu-2: 1h 31m -> 1h 46m (+16.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
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#154283 Remove nodes_in_current_session field and related asserti… 1a7e42e3924e104b4b8c4948c81147a4eeefde44 (link)
#154794 Add on_unmatch_args 74815d2faf46e5dd4bfa2bc04e6326e7a6917e30 (link)
#155133 Document precision considerations of Duration-float metho… 512f95fe5b1062377cd0e81dbfebec6ae654bf12 (link)
#155374 rustdoc: fix a few spots where emit isn't respected f1357f9082056c071472a66a7526135343a81b77 (link)
#155587 Immediately feed visibility on DefId creation 5c3400bba480d63cc0ef9d3a3b812e266621f530 (link)
#155622 c-variadic: va_arg fixes b2a0befdde4eb26d24abb27973b8b68e6f5bf180 (link)
#155629 rustc_public: Add constness & asyncness in FnDef fb56f44e432f109c588792e698177a38b097aa24 (link)
#155632 Some metadata cleanups a3a436fe000e80b05584b1b6bc7dc84f5ac703c2 (link)
#155639 BinOpAssign always returns unit 21e307d191c5c62966a5077657eb736a59cf63a4 (link)
#155647 rustc-dev-guide subtree update 708860003da0292744f29f69fd0fdce564cd977f (link)

previous master: f676c20edd

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

@rust-timer
Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (913e4be): 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)
- - 0
Regressions ❌
(secondary)
0.1% [0.0%, 0.1%] 2
Improvements ✅
(primary)
-0.8% [-3.7%, -0.2%] 110
Improvements ✅
(secondary)
-1.2% [-5.5%, -0.0%] 83
All ❌✅ (primary) -0.8% [-3.7%, -0.2%] 110

Max RSS (memory usage)

Results (primary -6.2%, secondary -5.5%)

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)
5.6% [1.7%, 7.9%] 5
Improvements ✅
(primary)
-6.2% [-11.3%, -1.5%] 158
Improvements ✅
(secondary)
-6.4% [-20.0%, -1.2%] 60
All ❌✅ (primary) -6.2% [-11.3%, -1.5%] 158

Cycles

Results (primary -4.8%, secondary -6.2%)

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.2% [2.1%, 4.2%] 6
Improvements ✅
(primary)
-4.8% [-13.6%, -1.5%] 77
Improvements ✅
(secondary)
-7.2% [-21.9%, -1.9%] 53
All ❌✅ (primary) -4.8% [-13.6%, -1.5%] 77

Binary size

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

Bootstrap: 492.288s -> 492.161s (-0.03%)
Artifact size: 394.44 MiB -> 394.33 MiB (-0.03%)

@rustbot rustbot added the perf-regression Performance regression. label Apr 22, 2026
@nnethercote
Copy link
Copy Markdown
Contributor

@rust-timer build 1a7e42e

@rust-timer
Copy link
Copy Markdown
Collaborator

Missing artifact for sha 1a7e42e3924e104b4b8c4948c81147a4eeefde44 (https://ci-artifacts.rust-lang.org/rustc-builds/1a7e42e3924e104b4b8c4948c81147a4eeefde44/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz); not built yet, try again later.

@nnethercote
Copy link
Copy Markdown
Contributor

#154283 is amost certainly the cause of the big perf improvements. Unfortunately they are artificial: rustc-perf enables -Zincremental-verify-ich and that PR almost entirely affects the extra operations done when that flag is enabled.

@Kobzol
Copy link
Copy Markdown
Member

Kobzol commented Apr 23, 2026

@rust-timer build 1a7e42e

@rust-timer
Copy link
Copy Markdown
Collaborator

Failed to enqueue some commit SHAs. Maybe they were already benchmarked?

@lqd
Copy link
Copy Markdown
Member

lqd commented Apr 23, 2026

Maybe they were already benchmarked?

#154283 (comment)

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