Skip to content

Conversation

@matthiaskrgr
Copy link
Member

Successful merges:

r? @ghost

Create a similar rollup

is57primenumber and others added 30 commits January 5, 2026 05:17
… duration under Win7

Fixes rust-lang#149935. See the added comment for more details.

Signed-off-by: Paul Mabileau <paul.mabileau@harfanglab.fr>
The links are correct, but text typoed `as_array_mut`.
This fixes stage1 builds when the proc-macro bridge api changed.
The rustc_proc_macro crate is identical to the proc_macro that would end
up in the sysroot of the rustc compiler rustc_proc_macro is linked into.
They break whenever the proc macro ABI changes due to it building a proc
macro against the bootstrap sysroot.
It is a singleton which doesn't actually need to be passed through over
the bridge.
And rename FreeFunctions struct to Methods.
…ulacrum

Add codegen test for removing trailing zeroes from `NonZero`

Closes rust-lang#138497
ptr_aligment_type: add more APIs

As per rust-lang#102070 (comment)

Tracking issue: rust-lang#102070

Mostly duplicating methods that previously worked with `usize`-represented alignments.

Naming follows a convention of `align: usize`, `alignment: Alignment`.
std: avoid tearing `dbg!` prints

Fixes rust-lang#136703.

This is an alternative to rust-lang#149859. Instead of formatting everything into a string, this PR makes multi-expression `dbg!` expand into multiple nested matches, with the final match containing a single `eprint!`. By using macro recursion and relying on hygiene, this allows naming every bound value in that `eprint!`.

CC @orlp

r? libs
…, r=Mark-Simulacrum

add CSE optimization tests for iterating over slice

This PR is regression test for issue rust-lang#119573.
This PR introduces a new regression test to verify a critical optimization known as Common Subexpression Elimination (CSE) is correctly applied during various slice iteration patterns.
…r=Mark-Simulacrum

Fix(lib/win/thread): Ensure `Sleep`'s usage passes over the requested duration under Win7

Fixes rust-lang#149935. See the added comment for more details.

This makes the concerned test now reproducibly pass, for us at least. Also, testing this separately revealed successful: see the issue.

@rustbot label C-bug I-flaky-test O-windows-7 T-libs A-time A-thread
…rochenkov,Kobzol

Various refactors to the proc_macro bridge

This reduces the amount of types, traits and other abstractions that are involved with the bridge, which should make it easier to understand and modify. This should also help a bit with getting rid of the type marking hack, which is complicating the code a fair bit.

Fixes: rust-lang#139810
…ark-Simulacrum

relnotes: fix 1.93's `as_mut_array` methods

The links are correct, but text typoed `as_array_mut`.
…jubilee

x86 soft-float feature: mark it as forbidden rather than unstable

I am not sure why I made it "unstable" in rust-lang@f755f4c; I think at the time "forbidden" did not work for some reason.

Making it "forbidden" instead has no significant effect on `-Ctarget-feature` use, it just changes the warning. It *does* have the effect that one cannot query this using `cfg(target_feature)` on nightly any more, but that seems fine to me. It only ever worked as an accidental side-effect of f755f4c anyway.

r? @workingjubilee
Rename `DepKindStruct` to `DepKindVTable`

This type is used by dependency-tracking code in the query system, for looking up function pointers and other metadata associated with a particular `DepKind`.

Calling it “struct” is not particularly helpful, whereas calling it a “vtable” at least gives some basic intuition for what it is and how it is used.

Some associated identifiers have also drifted a bit over time, and this PR adjusts those as well.

There should be no change to compiler behaviour.

r? nnethercote (or compiler)
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 25, 2026

📌 Commit d83f2eb has been approved by matthiaskrgr

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 Jan 25, 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 Jan 25, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 25, 2026

☀️ Test successful - CI
Approved by: matthiaskrgr
Duration: 3h 13m 15s
Pushing 4d38622 to main...

@rust-bors rust-bors bot merged commit 4d38622 into rust-lang:main Jan 25, 2026
12 checks passed
@rustbot rustbot added this to the 1.95.0 milestone Jan 25, 2026
@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 75963ce (parent) -> 4d38622 (this PR)

Test differences

Show 215 test diffs

Stage 0

  • dylib::version::test_version_check: pass -> [missing] (J0)
  • tests::list_test_macros: pass -> [missing] (J0)
  • tests::test_attr_macro: pass -> [missing] (J0)
  • tests::test_broken_input_mismatched_delim: pass -> [missing] (J0)
  • tests::test_broken_input_unclosed_delim: pass -> [missing] (J0)
  • tests::test_broken_input_unknowm_token: pass -> [missing] (J0)
  • tests::test_broken_input_unopened_delim: pass -> [missing] (J0)
  • tests::test_derive_empty: pass -> [missing] (J0)
  • tests::test_derive_error: pass -> [missing] (J0)
  • tests::test_derive_reemit_helpers: pass -> [missing] (J0)
  • tests::test_fn_like_fn_like_span_join: pass -> [missing] (J0)
  • tests::test_fn_like_fn_like_span_ops: pass -> [missing] (J0)
  • tests::test_fn_like_macro_clone_ident_subtree: pass -> [missing] (J0)
  • tests::test_fn_like_macro_clone_literals: pass -> [missing] (J0)
  • tests::test_fn_like_macro_clone_raw_ident: pass -> [missing] (J0)
  • tests::test_fn_like_macro_negative_literals: pass -> [missing] (J0)
  • tests::test_fn_like_macro_noop: pass -> [missing] (J0)
  • tests::test_fn_like_mk_idents: pass -> [missing] (J0)
  • tests::test_fn_like_mk_literals: pass -> [missing] (J0)
  • token_stream::tests::ts_to_string: pass -> [missing] (J0)

Stage 1

  • [ui] tests/ui/target-feature/x86-soft-float-cfg.rs#hard: [missing] -> pass (J0)
  • [ui] tests/ui/target-feature/x86-soft-float-cfg.rs#soft: [missing] -> pass (J0)
  • [codegen] tests/codegen-llvm/issues/issue-138497-nonzero-remove-trailing-zeroes.rs: [missing] -> pass (J5)
  • [codegen] tests/codegen-llvm/issues/issue-138497-nonzero-remove-trailing-zeroes.rs: [missing] -> ignore (ignored when the LLVM version 20.1.2 is older than 21.0.0) (J8)
  • [codegen] tests/codegen-llvm/slice_cse_optimization.rs: [missing] -> pass (J9)

Stage 2

  • [ui] tests/ui/target-feature/x86-soft-float-cfg.rs#hard: [missing] -> pass (J1)
  • [ui] tests/ui/target-feature/x86-soft-float-cfg.rs#soft: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/slice_cse_optimization.rs: [missing] -> pass (J2)
  • [codegen] tests/codegen-llvm/issues/issue-138497-nonzero-remove-trailing-zeroes.rs: [missing] -> ignore (ignored when the LLVM version 20.1.8 is older than 21.0.0) (J3)
  • [ui] tests/ui/target-feature/x86-soft-float-cfg.rs#hard: [missing] -> ignore (gcc backend is marked as ignore) (J4)
  • [ui] tests/ui/target-feature/x86-soft-float-cfg.rs#soft: [missing] -> ignore (gcc backend is marked as ignore) (J4)
  • [codegen] tests/codegen-llvm/issues/issue-138497-nonzero-remove-trailing-zeroes.rs: [missing] -> pass (J6)
  • [codegen] tests/codegen-llvm/issues/issue-138497-nonzero-remove-trailing-zeroes.rs: [missing] -> ignore (ignored when the LLVM version 20.1.2 is older than 21.0.0) (J7)

Additionally, 182 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 4d38622e8bec00a9001264c4e9f4723fceca23cb --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. pr-check-1: 2035.6s -> 1488.3s (-26.9%)
  2. x86_64-gnu-llvm-20-2: 5868.5s -> 4964.3s (-15.4%)
  3. aarch64-gnu-debug: 4404.5s -> 3796.8s (-13.8%)
  4. dist-x86_64-musl: 8458.8s -> 7351.4s (-13.1%)
  5. x86_64-gnu-llvm-21-3: 6755.4s -> 5881.4s (-12.9%)
  6. x86_64-gnu-nopt: 7717.2s -> 8674.4s (+12.4%)
  7. i686-gnu-2: 5910.8s -> 5183.2s (-12.3%)
  8. x86_64-rust-for-linux: 3087.6s -> 2711.4s (-12.2%)
  9. dist-i686-msvc: 8299.2s -> 7349.4s (-11.4%)
  10. x86_64-gnu: 8745.8s -> 7777.7s (-11.1%)
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

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#145393 Add codegen test for removing trailing zeroes from NonZero a35802ecf86de711020db33066f7968a9b1fd2c5 (link)
#148764 ptr_aligment_type: add more APIs 5d0accfebb901c0dc047ae0601dd31537af58908 (link)
#149869 std: avoid tearing dbg! prints 339ebba77c0b673e31199d9792986008df623218 (link)
#150065 add CSE optimization tests for iterating over slice cf4dd004bd807b783e6aeb2280dd40377935e04c (link)
#150842 Fix(lib/win/thread): Ensure Sleep's usage passes over the… 51885a1eb22206f02abc1d457f338d943ccfc31d (link)
#151317 x86 soft-float feature: mark it as forbidden rather than un… 008d732cc606bd816317791b6bb258e2a7351471 (link)
#151505 Various refactors to the proc_macro bridge 39ee306a949b0f8eb7233e874f5cade6a399ed3c (link)
#151560 relnotes: fix 1.93's as_mut_array methods 299c6ea372b0a1716cc5faab39c5530183cb2b15 (link)
#151577 Rename DepKindStruct to DepKindVTable 87aa422a4eefb11c97a8cb99a49bdf0375e833a3 (link)
#151620 Fix 'the the' typo in library/core/src/array/iter.rs 280da5887cb785378f7377d39726abc804049c9d (link)

previous master: 75963ce795

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
Collaborator

Finished benchmarking commit (4d38622): 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.7% [0.7%, 0.7%] 1
Regressions ❌
(secondary)
1.0% [0.3%, 3.0%] 5
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.6% [-0.9%, -0.2%] 7
All ❌✅ (primary) 0.7% [0.7%, 0.7%] 1

Max RSS (memory usage)

Results (primary 0.5%, secondary 0.2%)

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

mean range count
Regressions ❌
(primary)
3.5% [2.9%, 4.0%] 2
Regressions ❌
(secondary)
4.7% [4.6%, 4.9%] 2
Improvements ✅
(primary)
-2.4% [-3.0%, -1.8%] 2
Improvements ✅
(secondary)
-4.3% [-5.5%, -3.2%] 2
All ❌✅ (primary) 0.5% [-3.0%, 4.0%] 4

Cycles

Results (primary 2.8%, 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)
2.8% [2.5%, 3.1%] 2
Regressions ❌
(secondary)
3.0% [2.1%, 3.9%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.8% [2.5%, 3.1%] 2

Binary size

Results (primary 0.1%, secondary 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.1% [0.0%, 0.3%] 33
Regressions ❌
(secondary)
0.4% [0.0%, 1.1%] 22
Improvements ✅
(primary)
-0.1% [-0.5%, -0.0%] 11
Improvements ✅
(secondary)
-0.1% [-0.2%, -0.0%] 4
All ❌✅ (primary) 0.1% [-0.5%, 0.3%] 44

Bootstrap: 471.746s -> 473.581s (0.39%)
Artifact size: 383.60 MiB -> 383.57 MiB (-0.01%)

@rustbot rustbot added the perf-regression Performance regression. label Jan 25, 2026
@matthiaskrgr
Copy link
Member Author

@rust-timer build 39ee306

@rust-timer

This comment has been minimized.

@rust-timer

This comment was marked as outdated.

@Kobzol
Copy link
Member

Kobzol commented Jan 25, 2026

(artifacts are not ready yet, purged the commit from DB)

@matthiaskrgr
Copy link
Member Author

@rust-timer build 39ee306

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (39ee306): comparison URL.

Overall result: ✅ improvements - no action needed

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.6% [-0.9%, -0.3%] 7
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary 2.3%, secondary 1.7%)

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

mean range count
Regressions ❌
(primary)
2.3% [2.1%, 2.4%] 2
Regressions ❌
(secondary)
5.2% [4.5%, 5.8%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-5.2% [-5.2%, -5.2%] 1
All ❌✅ (primary) 2.3% [2.1%, 2.4%] 2

Cycles

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

Binary size

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

Bootstrap: 471.746s -> 474.188s (0.52%)
Artifact size: 383.60 MiB -> 383.58 MiB (-0.00%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. rollup A PR which is a rollup T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-clippy Relevant to the Clippy team. 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-release Relevant to the release subteam, which will review and decide on the PR/issue. T-rust-analyzer Relevant to the rust-analyzer team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.