Skip to content

Rollup of 15 pull requests#156217

Merged
rust-bors[bot] merged 43 commits intorust-lang:mainfrom
jhpratt:rollup-XVslat0
May 6, 2026
Merged

Rollup of 15 pull requests#156217
rust-bors[bot] merged 43 commits intorust-lang:mainfrom
jhpratt:rollup-XVslat0

Conversation

@jhpratt
Copy link
Copy Markdown
Member

@jhpratt jhpratt commented May 6, 2026

Successful merges:

r? @ghost

Create a similar rollup

Jaidenmagnan and others added 30 commits April 26, 2026 15:05
On AIX, PGO runtimes and ifunc support requires the named section linker feature which collects the name sections together and generates start/stop symbols for them.

This change adds the option to the default linker args for the target.
Coroutine variant of the closure / impl Fn 'static unsoundness family.
References in PR description.
ci-llvm include paths were leaking into debuginfo of `librustc_driver` via C/C++ compilation in rustc_llvm, causing non-determinism across
stage2 builds.

extend debug path remapping to the C/C++ build in rustc_llvm by converting RUSTC_DEBUGINFO_MAP into corresponding -fdebug-prefix-map flags and passing them through cc::Build.
Co-authored-by: Urgau <3616612+Urgau@users.noreply.github.com>
This removes a separate call in the x86_64-gnu-llvm-21-3 job which runs
the ui-fulldeps a second time. ui-fulldeps is already running in the
first call (`../x.py --stage 1 test`) as it is a default test suite.

This was added in rust-lang#116009, but I
think that was a misunderstanding of the problem. The actual problem was
fixed in rust-lang#116932 where the actual
problem was the use of `&&`.

This doesn't really have much of an impact on CI time (only a couple
seconds) because all the tests are skipped with `ignored, up-to-date`.
I'm mainly doing this to clean up the script itself for clarity.
fix: more descriptive error message for enum to integer

Fixes rust-lang#151116
A  more descriptive error message when casting an enum to an Integer. Please review issue linked above.
generic_const_args: allow paths to non type consts

tracking issue: rust-lang#151972

Non type consts should be usable in the type system in `feature(generic_const_args)`. These are directly plugged into the constant evaluator, unlike type consts, which are attempted to be reasoned about by the type system.

Inherent associated constants are not supported at this time, due to complications around how generic arguments are represented for them (it's currently a mess). The mess is being cleaned up (e.g. rust-lang#154758), so instead of trying to hack support in before the refactoring is done, let's just wait to be able to implement it more cleanly.

r? @BoxyUwU
@jhpratt
Copy link
Copy Markdown
Member Author

jhpratt commented May 6, 2026

@bors cancel

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 6, 2026

Auto build was cancelled. Cancelled workflows:

The next pull request likely to be tested is #156217.

@jhpratt
Copy link
Copy Markdown
Member Author

jhpratt commented May 6, 2026

@bors retry

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request May 6, 2026
Rollup of 15 pull requests

Successful merges:

 - #151122 (fix: more descriptive error message for enum to integer)
 - #155341 (generic_const_args: allow paths to non type consts)
 - #156062 (Added command-line argument support for `wasm32-wali-linux-musl`)
 - #156159 ([AIX] add -bdbg:namedsects:ss link arg)
 - #156174 (Wasm: remove implicit `__heap_base`/`__data_end` exports)
 - #156186 (fix: remap ci-llvm debug paths via `-ffile-prefix-map`)
 - #156193 (port `rustc_ast*` crates from `box_` to `deref_patterns`)
 - #156201 (Don't run ui-fulldeps tests twice in stage 1)
 - #155808 (Always use `ConstFn` context for `const` closures)
 - #156105 (interpret: correctly deal with repr(transparent) enums)
 - #156148 (Use `all_impls` instead of handrolling it)
 - #156156 (Adjust getMCSubtargetInfo signature for LLVM 23+)
 - #156170 (add known-bug test for coroutine 'static-yields-non-'static unsoundness (#144442))
 - #156195 (Move tests codegen)
 - #156205 (move generalization test)
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 6, 2026

❗ You can only retry pull requests that are approved and have a previously failed auto build.

Hint: There is currently a pending auto build on this PR. To cancel it, run @bors cancel.

@rust-bors rust-bors Bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels May 6, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 6, 2026

💔 Test for f51bf0b failed: CI. Failed job:

@rust-log-analyzer
Copy link
Copy Markdown
Collaborator

The job i686-msvc-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)

@JonathanBrouwer
Copy link
Copy Markdown
Contributor

@bors retry

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

rust-bors Bot commented May 6, 2026

☀️ Test successful - CI
Approved by: jhpratt
Duration: 3h 36m 19s
Pushing ba1a955 to main...

@rust-bors rust-bors Bot merged commit ba1a955 into rust-lang:main May 6, 2026
12 checks passed
@rustbot rustbot added this to the 1.97.0 milestone May 6, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 6, 2026

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 e95e732 (parent) -> ba1a955 (this PR)

Test differences

Show 95 test diffs

Stage 1

  • [ui] tests/ui-fulldeps/compiler-calls.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/deriving-global.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/deriving-hygiene.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/dropck-tarena-cycle-checked.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/dropck-tarena-unsound-drop.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/dropck_tarena_sound_drop.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/empty-struct-braces-derive.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/explain_highlighter.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/hash-stable-is-unstable.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/internal-lints/bad_opt_access.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/internal-lints/default_hash_types.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/internal-lints/import-of-type-ir-inherent.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/internal-lints/non_glob_import_of_type_ir_inherent.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/internal-lints/qualified_ty_ty_ctxt.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/internal-lints/query_completeness.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/internal-lints/span_use_eq_ctxt.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/internal-lints/ty_tykind_usage.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/lexer/unicode-version.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/lint-pass-macros.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/missing-rustc-driver-error.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/mod_dir_path_canonicalized.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/pathless-extern-unstable.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/pprust-expr-roundtrip.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/pprust-parenthesis-insertion.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/regions-mock-tcx.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui-fulldeps/rustc_encodable_hygiene.rs: ignore (up-to-date) -> pass (J1)
  • [ui] tests/ui/cast/cast-enum-to-int-issue-151116.rs: [missing] -> pass (J1)
  • [ui] tests/ui/codegen/arm-collect-into-vec-codegen-regression.rs: [missing] -> pass (J1)
  • [ui] tests/ui/codegen/bool-negation-with-debug-info.rs: [missing] -> pass (J1)
  • [ui] tests/ui/codegen/codegen-binder-not-ignored-in-generic-fn.rs: [missing] -> pass (J1)
  • [ui] tests/ui/codegen/no-codegen-blowup-in-deeply-nested-struct.rs: [missing] -> pass (J1)
  • [ui] tests/ui/codegen/no-divide-by-zero-in-llvm-type.rs: [missing] -> pass (J1)
  • [ui] tests/ui/codegen/no-segfault-with-multiple-codegen-units.rs: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/gca/ambiguous-on-failed-eval-with-vars-fail.rs#next: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/gca/ambiguous-on-failed-eval-with-vars-fail.rs#old: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/gca/ambiguous-on-failed-eval-with-vars.rs: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/gca/generic-free-const.rs: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/gca/non-type-equality-fail.rs: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/gca/non-type-equality-ok.rs: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/gca/path-to-non-type-const.rs: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/gca/path-to-non-type-inherent-associated-const.rs: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/gca/require-next-solver.rs: [missing] -> pass (J1)
  • [ui] tests/ui/coroutine/static-coroutine-with-nonstatic-yield.rs: [missing] -> pass (J1)
  • [ui] tests/ui/issues/issue-20644.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-34427.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-36856.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-41696.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-47364.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-50761.rs: pass -> [missing] (J1)
  • [ui] tests/ui/traits/const-traits/const-closure-fn-ptr-const-item.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/const-traits/const-closure-link-dead-code.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/next-solver/generalize/alias-with-bound-vars-incomplete-generalization.rs#next: [missing] -> pass (J1)
  • [ui] tests/ui/traits/next-solver/generalize/alias-with-bound-vars-incomplete-generalization.rs#old: [missing] -> pass (J1)
  • [ui] tests/ui/traits/next-solver/self-referential-closure-sig-4.rs#next: pass -> [missing] (J1)
  • [ui] tests/ui/traits/next-solver/self-referential-closure-sig-4.rs#old: pass -> [missing] (J1)

Stage 2

  • [ui] tests/ui/cast/cast-enum-to-int-issue-151116.rs: [missing] -> pass (J0)
  • [ui] tests/ui/codegen/arm-collect-into-vec-codegen-regression.rs: [missing] -> pass (J0)
  • [ui] tests/ui/codegen/bool-negation-with-debug-info.rs: [missing] -> pass (J0)
  • [ui] tests/ui/codegen/codegen-binder-not-ignored-in-generic-fn.rs: [missing] -> pass (J0)
  • [ui] tests/ui/codegen/no-codegen-blowup-in-deeply-nested-struct.rs: [missing] -> pass (J0)
  • [ui] tests/ui/codegen/no-divide-by-zero-in-llvm-type.rs: [missing] -> pass (J0)
  • [ui] tests/ui/codegen/no-segfault-with-multiple-codegen-units.rs: [missing] -> pass (J0)
  • [ui] tests/ui/const-generics/gca/ambiguous-on-failed-eval-with-vars-fail.rs#next: [missing] -> pass (J0)
  • [ui] tests/ui/const-generics/gca/ambiguous-on-failed-eval-with-vars-fail.rs#old: [missing] -> pass (J0)
  • [ui] tests/ui/const-generics/gca/ambiguous-on-failed-eval-with-vars.rs: [missing] -> pass (J0)
  • [ui] tests/ui/const-generics/gca/generic-free-const.rs: [missing] -> pass (J0)
  • [ui] tests/ui/const-generics/gca/non-type-equality-fail.rs: [missing] -> pass (J0)
  • [ui] tests/ui/const-generics/gca/non-type-equality-ok.rs: [missing] -> pass (J0)
  • [ui] tests/ui/const-generics/gca/path-to-non-type-const.rs: [missing] -> pass (J0)
  • [ui] tests/ui/const-generics/gca/path-to-non-type-inherent-associated-const.rs: [missing] -> pass (J0)
  • [ui] tests/ui/const-generics/gca/require-next-solver.rs: [missing] -> pass (J0)
  • [ui] tests/ui/coroutine/static-coroutine-with-nonstatic-yield.rs: [missing] -> pass (J0)
  • [ui] tests/ui/issues/issue-20644.rs: pass -> [missing] (J0)
  • [ui] tests/ui/issues/issue-34427.rs: pass -> [missing] (J0)
  • [ui] tests/ui/issues/issue-36856.rs: pass -> [missing] (J0)
  • [ui] tests/ui/issues/issue-41696.rs: pass -> [missing] (J0)
  • [ui] tests/ui/issues/issue-47364.rs: pass -> [missing] (J0)
  • [ui] tests/ui/issues/issue-50761.rs: pass -> [missing] (J0)
  • [ui] tests/ui/traits/const-traits/const-closure-fn-ptr-const-item.rs: [missing] -> pass (J0)
  • [ui] tests/ui/traits/const-traits/const-closure-link-dead-code.rs: [missing] -> pass (J0)
  • [ui] tests/ui/traits/next-solver/generalize/alias-with-bound-vars-incomplete-generalization.rs#next: [missing] -> pass (J0)
  • [ui] tests/ui/traits/next-solver/generalize/alias-with-bound-vars-incomplete-generalization.rs#old: [missing] -> pass (J0)
  • [ui] tests/ui/traits/next-solver/self-referential-closure-sig-4.rs#next: pass -> [missing] (J0)
  • [ui] tests/ui/traits/next-solver/self-referential-closure-sig-4.rs#old: pass -> [missing] (J0)

Additionally, 10 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 ba1a955819d72439dc59d5f73ad7a6a01e3fcdfe --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. i686-gnu-nopt-1: 1h 39m -> 2h 7m (+28.1%)
  2. dist-ohos-x86_64: 1h 25m -> 1h 3m (-25.0%)
  3. dist-i686-msvc: 2h 23m -> 1h 48m (-24.0%)
  4. x86_64-gnu-aux: 1h 47m -> 2h 9m (+20.2%)
  5. dist-ohos-armv7: 59m 32s -> 1h 11m (+19.5%)
  6. dist-loongarch64-linux: 1h 49m -> 1h 28m (-19.2%)
  7. dist-x86_64-llvm-mingw: 1h 51m -> 1h 30m (-19.1%)
  8. pr-check-1: 23m 29s -> 27m 43s (+18.0%)
  9. x86_64-gnu-nopt: 2h 18m -> 1h 55m (-16.5%)
  10. dist-apple-various: 2h 2m -> 1h 42m (-15.8%)
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
#151122 fix: more descriptive error message for enum to integer 8c4ed4d0e0e077f4cc5b53cc48bee0b329a79be5 (link)
#155341 generic_const_args: allow paths to non type consts 4eb272c42e2eb34fcb40ece5547ac21d17fc0402 (link)
#155808 Always use ConstFn context for const closures 7315a8ed38836e675068b721120e6aa396c54b9d (link)
#156062 Added command-line argument support for `wasm32-wali-linux-… 5b80f1975bea5cfccc55b8a6de83f632ac93b288 (link)
#156105 interpret: correctly deal with repr(transparent) enums 918aaa37182c223444fca7385ab4dce49f2d279a (link)
#156148 Use all_impls instead of handrolling it 5d9c6949e4e15e67789f5e11dd396edcb44756ba (link)
#156156 Adjust getMCSubtargetInfo signature for LLVM 23+ 41dc80f168a9efb90bb4a94e21c8aaa489a002e8 (link)
#156159 [AIX] add -bdbg:namedsects:ss link arg 2f9a3b39fc09c5be799e6915680aeadd8251d7df (link)
#156170 add known-bug test for coroutine 'static-yields-non-'static… 9c44157b6791da4e7b0e3c3169bead239af90020 (link)
#156174 Wasm: remove implicit __heap_base/__data_end exports 987a0e0719fc5f9c443ab7d8cf6e04162e07571e (link)
#156186 fix: remap ci-llvm debug paths via -ffile-prefix-map 5bc62e0afa8edfdb33f668bf8be6367f716f4831 (link)
#156193 port rustc_ast* crates from box_ to deref_patterns c2aeb1453270489833704534c381449597c68cba (link)
#156195 Move tests codegen e426a607c7b6fa27f0fe8cf01951c06915f31138 (link)
#156201 Don't run ui-fulldeps tests twice in stage 1 c8baca481f397cbbf349019776c0ade4fbbc8842 (link)
#156205 move generalization test 445f27b8ff361cf0e55126c5b1937a660e94a561 (link)

previous master: e95e73209f

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 (ba1a955): 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.6% [0.1%, 1.0%] 10
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.0% [-0.1%, -0.0%] 3
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary 1.9%, secondary 1.3%)

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

mean range count
Regressions ❌
(primary)
1.9% [1.9%, 1.9%] 1
Regressions ❌
(secondary)
3.2% [3.2%, 3.2%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.5% [-0.5%, -0.5%] 1
All ❌✅ (primary) 1.9% [1.9%, 1.9%] 1

Cycles

Results (primary -2.2%, 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)
0.7% [0.4%, 1.4%] 7
Improvements ✅
(primary)
-2.2% [-2.2%, -2.2%] 2
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.2% [-2.2%, -2.2%] 2

Binary size

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

Bootstrap: 493.455s -> 496.315s (0.58%)
Artifact size: 394.43 MiB -> 396.48 MiB (0.52%)

@rustbot rustbot added the perf-regression Performance regression. label May 6, 2026
@jhpratt jhpratt deleted the rollup-XVslat0 branch May 6, 2026 20:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-CI Area: Our Github Actions CI A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-rustc-dev-guide Area: rustc-dev-guide A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. O-linux Operating system: Linux 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-infra Relevant to the infrastructure 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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.