Skip to content

Rollup of 6 pull requests#152230

Merged
rust-bors[bot] merged 20 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-de59XEq
Feb 6, 2026
Merged

Rollup of 6 pull requests#152230
rust-bors[bot] merged 20 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-de59XEq

Conversation

@JonathanBrouwer
Copy link
Contributor

Successful merges:

r? @ghost

Create a similar rollup

jyn514 and others added 20 commits January 31, 2026 20:06
Instead, always use the Xcode-provided Clang to build LLVM.
Bootstrap no longer infers the archiver as `clang-ar`, so we don't need
to set this explicitly.
Instead of manually setting up CC/CXX environment variables, use the
default configuration that Xcode gives us.
Some history about `paths()`. The original intent Mark-Simulacrum had
when he introduced PathSet, to my knowledge, was that multiple paths
could be aliases for the same step. That's what rustdoc is doing; both
paths for rustdoc run exactly the same Step, regardless of whether one
or both are present.

That never really caught on. To my knowledge, rustdoc is the only usage
of paths() there's ever been.

Later, in 95503, I repurposed PathSet to mean "each crate in this set
should be passed to Step::make_run in RunConfig". That was not the
previous meaning.

Rustdoc never looks at run.paths in make_run, so it's safe to just treat
it as an alias, like elsewhere in bootstrap. Same for all the other tool
steps.

Co-authored-by: Tshepang Mbambo <hopsi@tuta.io>
…, r=davidtwco

cmse: don't use `BackendRepr` when checking return type

tracking issue: rust-lang#81391
tracking issue: rust-lang#75835

r? davidtwco
cc @RalfJung

context: rust-lang/rfcs#3884 (comment)

I believe this is more reliable, and no longer relies on `BackendRepr`. I also added a test specifically for using `repr(Rust)`.
…tr-radix, r=Amanieu

feat: Add `NonZero::<T>::from_str_radix`

- Accepted ACP: rust-lang/libs-team#548
- Tracking issue: rust-lang#152193

This pull request adds a method to `NonZero<T>` that parses a non-zero integer from a string slice with digits in a given base.

When using the combination of `int::from_str_radix` and `NonZero::<T>::new`, [`IntErrorKind::Zero`](https://doc.rust-lang.org/core/num/enum.IntErrorKind.html#variant.Zero) cannot be returned as an error. When using `NonZero::<T>::from_str`, `IntErrorKind::Zero` can be returned as an error, but this method cannot parse non-decimal integers.

`NonZero::<T>::from_str_radix` can return `IntErrorKind::Zero` as an error, and can parse both decimal integers and non-decimal integers.
Fix ICE in normalizing inherent associated consts with `#[type_const]`

Fixes rust-lang#151027
Fixes rust-lang#138089
Fixes rust-lang#138226
Fixes rust-lang#150960

When an inherent associated const is marked with `#[type_const]`, its generics expect args in the format `[Self, own_params...]`, similar to inherent associated types. However, HIR typeck's `instantiate_value_path` was constructing args in the regular associated const format `[impl_params..., own_params...]`. This mismatch caused ICEs when the `args` were later used in contexts expecting the IAC format, such as user type annotations and `borrowck`'s type ascription.
…shepmaster

Always use Xcode-provided Clang in macOS CI

Most of our macOS CI runners use the Xcode-provided Clang. `dist-apple-various` still downloads Clang from LLVM's prebuilt sources, which is a bit problematic, because we're still using the Xcode-provided _headers_.

As a concrete example, using Xcode's Clang is required by rust-lang#152013, as otherwise updating to Xcode 26 headers fails with an obscure `fatal error: 'net/route.h' file not found`, see [this build log](rust-lang#152013 (comment)). I suspect this is because building the new headers isn't officially supported with the older LLVM/Clang 15.

This PR removes that functionality, so that we instead always build with the Xcode-provided Clang. This is effectively the same as setting `USE_XCODE_CLANG=1` on `dist-apple-various` as well, but I thought I'd clean things up while I'm at it.

I didn't find the reason why we did this in first place, maybe because the Xcode Clang at the time was too out of date to build LLVM? It doesn't seem to be a problem anymore though.

r? t-infra
bootstrap: Remove `ShouldRun::paths`

Split out from rust-lang#151930. I've copied my comment in rust-lang#151930 (comment) into the commit description.

r? @Zalathar cc @Mark-Simulacrum @Kobzol

---

Some history about `paths()`. The original intent @Mark-Simulacrum had
when he introduced PathSet in rust-lang@f104b12, to my knowledge, was that multiple paths
could be aliases for the same step. That's what rustdoc is doing; both
paths for rustdoc run exactly the same Step, regardless of whether one
or both are present.

That never really caught on. To my knowledge, rustdoc is the only usage
of paths() there's ever been.

Later, in rust-lang#95503, I repurposed PathSet to mean "each crate in this set
should be passed to Step::make_run in RunConfig". That was not the
previous meaning.

Rustdoc never looks at run.paths in make_run, so it's safe to just treat
it as an alias, like elsewhere in bootstrap. Same for all the other tool
steps.
…r=davidtwco

Re-add TaKO8Ki to triagebot review queue

I’m rejoining the compiler review rotation to help with ongoing review load.
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Feb 6, 2026
@rustbot rustbot added A-CI Area: Our Github Actions CI A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-testsuite Area: The testsuite used to check the correctness of rustc 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-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. labels Feb 6, 2026
@JonathanBrouwer
Copy link
Contributor Author

@bors r+ rollup=never p=5

@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 6, 2026

📌 Commit 4ae29f9 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 Feb 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 Feb 6, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 6, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 9m 12s
Pushing bce89b6 to main...

@rust-bors rust-bors bot merged commit bce89b6 into rust-lang:main Feb 6, 2026
12 checks passed
@rustbot rustbot added this to the 1.95.0 milestone Feb 6, 2026
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#151590 cmse: don't use BackendRepr when checking return type d90de950e778458f5b1203525e3a3e072b201507 (link)
#151945 feat: Add NonZero::<T>::from_str_radix c4c74677f8453a004e0f83b3dcb01812de4be890 (link)
#152000 Fix ICE in normalizing inherent associated consts with `#[t… 68388736d2174e10bfec4f07c860c7b82955a1fc (link)
#152192 Always use Xcode-provided Clang in macOS CI b8b4fb959257572456d0ead722cbd460c754822f (link)
#152196 bootstrap: Remove ShouldRun::paths 74b683d81920f8040e4cbb684f5b39c79cd11313 (link)
#152222 Re-add TaKO8Ki to triagebot review queue 3bb70c9b2687520626346c0d85e4547a133b7e9c (link)

previous master: 55bfca7d7d

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

@github-actions
Copy link
Contributor

github-actions bot commented Feb 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 55bfca7 (parent) -> bce89b6 (this PR)

Test differences

Show 765 test diffs

Stage 1

  • [crashes] tests/crashes/138089.rs: pass -> [missing] (J0)
  • [crashes] tests/crashes/138226-2.rs: pass -> [missing] (J0)
  • [crashes] tests/crashes/138226.rs: pass -> [missing] (J0)
  • [crashes] tests/crashes/150960.rs: pass -> [missing] (J0)
  • [ui] tests/ui/associated-consts/type-const-in-array-len-wrong-type.rs: [missing] -> pass (J0)
  • [ui] tests/ui/associated-consts/type-const-in-array-len.rs: [missing] -> pass (J0)
  • [ui] tests/ui/associated-types/type-const-inherent-impl-normalize.rs: [missing] -> pass (J0)
  • nonzero::test_from_str_radix: [missing] -> pass (J6)

Stage 2

  • [ui] tests/ui/associated-consts/type-const-in-array-len-wrong-type.rs: [missing] -> pass (J1)
  • [ui] tests/ui/associated-consts/type-const-in-array-len.rs: [missing] -> pass (J1)
  • [ui] tests/ui/associated-types/type-const-inherent-impl-normalize.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/138089.rs: ignore (ignored if rustc wasn't built with debug assertions) -> [missing] (J2)
  • [crashes] tests/crashes/138226-2.rs: ignore (ignored if rustc wasn't built with debug assertions) -> [missing] (J2)
  • [crashes] tests/crashes/138226.rs: ignore (ignored if rustc wasn't built with debug assertions) -> [missing] (J2)
  • [crashes] tests/crashes/138089.rs: pass -> [missing] (J3)
  • [crashes] tests/crashes/138226-2.rs: pass -> [missing] (J3)
  • [crashes] tests/crashes/138226.rs: pass -> [missing] (J3)
  • [crashes] tests/crashes/150960.rs: pass -> [missing] (J4)
  • nonzero::test_from_str_radix: [missing] -> pass (J5)

Additionally, 746 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 bce89b6a56fecd6f1a150c9657e4b50dea994f83 --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: 24m 51s -> 31m 31s (+26.8%)
  2. dist-apple-various: 55m 26s -> 1h 6m (+20.6%)
  3. i686-gnu-nopt-1: 1h 58m -> 2h 21m (+19.5%)
  4. test-various: 1h 45m -> 2h 4m (+18.1%)
  5. dist-x86_64-apple: 2h -> 2h 21m (+17.2%)
  6. aarch64-gnu-debug: 1h 4m -> 1h 15m (+16.6%)
  7. i686-gnu-2: 1h 29m -> 1h 43m (+15.6%)
  8. x86_64-gnu-debug: 1h 51m -> 2h 6m (+14.0%)
  9. i686-gnu-1: 2h 4m -> 2h 21m (+13.4%)
  10. x86_64-rust-for-linux: 45m 11s -> 51m 5s (+13.0%)
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 (bce89b6): comparison URL.

Overall result: ❌ regressions - no action needed

@rustbot label: -perf-regression

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.4% [0.1%, 0.5%] 8
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary 1.8%, secondary -4.5%)

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

mean range count
Regressions ❌
(primary)
1.8% [0.6%, 3.8%] 3
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-4.5% [-4.5%, -4.5%] 1
All ❌✅ (primary) 1.8% [0.6%, 3.8%] 3

Cycles

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

Binary size

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

Bootstrap: 475.203s -> 474.508s (-0.15%)
Artifact size: 397.96 MiB -> 397.96 MiB (0.00%)

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-meta Area: Issues & PRs about the rust-lang/rust repository itself A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup 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-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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants