Skip to content

Conversation

@JonathanBrouwer
Copy link
Contributor

Successful merges:

r? @ghost

Create a similar rollup

gurry and others added 17 commits February 5, 2026 13:32
Detect Python-style f-string debug syntax in format strings and emit a
clear diagnostic explaining that it is not supported in Rust. When the
intended operation can be inferred, suggest the corresponding Rust
alternative e.g from `println!("{=}", x)` to `dbg!({x})`.

Signed-off-by: Usman Akinyemi <usmanakinyemi202@gmail.com>
This also updates the macOS runners to run on macOS 15 (the macOS 14
runners only have up to Xcode 16.2 available).
Signed-off-by: Usman Akinyemi <usmanakinyemi202@gmail.com>
… report_sub_sup_conflict

In `report_sub_sup_conflict`, when calling `values_str` for
`sub_trace.values`, the code was incorrectly passing `sup_trace.cause`
instead of `sub_trace.cause`. This is a copy-paste error from the
preceding line which correctly uses `sup_trace.cause` for
`sup_trace.values`.

The `cause` parameter matters for `ValuePairs::PolySigs` comparisons,
where `values_str` inspects `cause.code()` to extract
`impl_item_def_id` and `trait_item_def_id` for richer function
signature diagnostics. Using the wrong trace's cause could produce
incorrect function def IDs, leading to misleading diagnostic output
when the sub and sup traces originate from different obligations.

Even for non-PolySigs variants where `cause` is currently unused by
`values_str`, passing the semantically correct cause is the right
thing to do for correctness and maintainability.
This target is intended to be used for kernel development. Becasue on s390x
float and vector registers overlap we have to disable the vector extension.

The default s390x-unknown-gnu-linux target will not allow use of
softfloat.

Co-authored-by: Jubilee <workingjubilee@gmail.com>
tests will check:
- correct emit of assembly for softfloat target
- incompatible set features will emit warnings/errors
- incompatible target tripples in crates will not link
…estebank

rustc_parse: improve the error diagnostic for "missing let"
fix: sup_trace to sub_trace

This looks like a copy-past here from the line above.
rustc_parse_format: improve diagnostics for unsupported debug = syntax

Detect Python-style f-string debug syntax in format strings and emit a
clear diagnostic explaining that it is not supported in Rust. When the
intended operation can be inferred, suggest the corresponding Rust
alternative (e.g. `dbg!` for `{x=}`).
…ingjubilee

Add `s390x-unknown-none-softfloat` with `RustcAbi::Softfloat`

followup on rust-lang#150766

add an `s390x-unknown-none-softfloat` target to use for kernel compilation, as the Linux kernel does not wish to pay the overhead of saving float registers by default on kernel switch. this target's `extern "C"` ABI is unspecified, so it is unstable and subject to change between versions, just like the Linux intrakernel ABI and `extern "Rust"` ABIs are unstable.

enforce target feature incompatibility by adding `RustcAbi::Softfloat`. this is itself just a rename of `RustcAbi::X86Softfloat`, accepting both "x86-softfloat" and "softfloat" as valid strings in the target.json format. the target-features of `"soft-float"` and `"vector"` are incompatible for s390x, so issue a compatibility warning if they are combined.
Update to Xcode 26.2

Update our CI to run with Xcode 26.

This means that:
- LLVM will be built with a newer Clang version (before Apple Clang 15, now Apple Clang 17).
- Our binaries (e.g. `rustc` and `libstd*.dylib`) will have their SDK version raised (before macOS 14.5, now 26.2).
- Our binaries will be built with a newer linker (before 1053.12, now 1230.1).

The last two points can be observed with:
```sh
$ vtool -show-build ./build/host/stage1/bin/rustc
Load command 10
      cmd LC_BUILD_VERSION
  cmdsize 32
 platform MACOS
    minos 11.0
      sdk 26.2
   ntools 1
     tool LD
  version 1230.1
$ vtool -show-build ./build/host/stage1/lib/rustlib/aarch64-apple-darwin/lib/libstd*.dylib
Load command 9
      cmd LC_BUILD_VERSION
  cmdsize 32
 platform MACOS
    minos 11.0
      sdk 26.2
   ntools 1
     tool LD
  version 1230.1
```

This shouldn't have much of an effect, but things like `dyld` is known to inspect the SDK version, so it _might_ expose some latent bugs (I really don't expect it to though).

This also updates the macOS runners to run on macOS 15 (the macOS 14 runners only have up to Xcode 16.2 available). That is desirable anyhow, as [the macOS 14 runners will be deprecated in July](actions/runner-images#13518). This is probably also required for rust-lang#147192.

r? shepmaster
…, r=wesleywiser

Remove the compiler adhoc group

Since triagebot now allows configuring rotation mode through a specific team.

Original review rotation:

```toml
compiler = [
    "@BoxyUwU",
    "@chenyukang",
    "@davidtwco",
    "@eholk",
    "@fee1-dead",
    "@fmease",
    "@jackh726",
    "@jieyouxu",
    "@jdonszelmann",
    "@JonathanBrouwer",
    "@madsmtm",
    "@mati865",
    "@Nadrieril",
    "@nnethercote",
    "@oli-obk",
    "@petrochenkov",
    "@SparrowLii",
    "@TaKO8Ki",
    "@tiif",
    "@WaffleLapkin",
    "@wesleywiser",
]
```

I went through all the remaining members of t-compiler now and set their `compiler` team rotation to be off, to match the original state. You can check it with `team-stats compiler`.

r? @davidtwco
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Feb 9, 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. labels Feb 9, 2026
@JonathanBrouwer
Copy link
Contributor Author

@bors r+ rollup=never p=5

@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 9, 2026

📌 Commit 415780b 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 9, 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 10, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 10, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 4h 7m 12s
Pushing f21b4c0 to main...

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

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#150897 rustc_parse_format: improve diagnostics for unsupported deb… d43b1c4adca9a90f74c7c4008279be9aa6a1259a (link)
#151154 Add s390x-unknown-none-softfloat with `RustcAbi::Softfloa… 9062c3923d0f1a4942f76660cf5f8ef4ee74546b (link)
#151960 rustc_parse: improve the error diagnostic for "missing let" e6901b2ddaa55121ea7b3a3bf2bd7872831b288f (link)
#152013 Update to Xcode 26.2 46ed6cb3cc1a671b8cb02ba95220ad90dd7e22c7 (link)
#152157 Fix error spans for asm!() args that are macros 923ae778a771c660b8b86f10bf7f0dc4f5e15205 (link)
#152317 fix: sup_trace to sub_trace a187fc8e1cdbdbb98dc2caee77fcb248bc00718c (link)
#152326 Remove the compiler adhoc group 6b2a90305f47cb54726766cdf8bc787981cee840 (link)

previous master: 381e9ef09e

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

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 381e9ef (parent) -> f21b4c0 (this PR)

Test differences

Show 26 test diffs

Stage 0

  • spec::tests::s390x_unknown_none_softfloat: [missing] -> pass (J2)

Stage 1

  • [assembly] tests/assembly-llvm/s390x-softfloat-abi.rs#disable-softfloat: [missing] -> pass (J2)
  • [assembly] tests/assembly-llvm/s390x-softfloat-abi.rs#enable-softfloat: [missing] -> pass (J2)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#s390x_unknown_none_softfloat: [missing] -> pass (J2)
  • [crashes] tests/crashes/131292.rs: pass -> [missing] (J2)
  • [ui] tests/ui/abi/s390x-softfloat-gate.rs#disable-softfloat: [missing] -> pass (J2)
  • [ui] tests/ui/abi/s390x-softfloat-gate.rs#enable-softfloat: [missing] -> pass (J2)
  • [ui] tests/ui/fmt/format-string-error-3.rs: [missing] -> pass (J2)
  • [ui] tests/ui/target_modifiers/incompatible_softfloat_targets.rs#disable-softfloat: [missing] -> pass (J2)
  • [ui] tests/ui/target_modifiers/incompatible_softfloat_targets.rs#enable-softfloat: [missing] -> pass (J2)
  • spec::tests::s390x_unknown_none_softfloat: [missing] -> pass (J4)

Stage 2

  • [ui] tests/ui/abi/s390x-softfloat-gate.rs#disable-softfloat: [missing] -> ignore (gcc backend is marked as ignore) (J0)
  • [ui] tests/ui/abi/s390x-softfloat-gate.rs#enable-softfloat: [missing] -> ignore (gcc backend is marked as ignore) (J0)
  • [ui] tests/ui/target_modifiers/incompatible_softfloat_targets.rs#disable-softfloat: [missing] -> ignore (gcc backend is marked as ignore) (J0)
  • [ui] tests/ui/target_modifiers/incompatible_softfloat_targets.rs#enable-softfloat: [missing] -> ignore (gcc backend is marked as ignore) (J0)
  • [assembly] tests/assembly-llvm/s390x-softfloat-abi.rs#disable-softfloat: [missing] -> pass (J1)
  • [assembly] tests/assembly-llvm/s390x-softfloat-abi.rs#enable-softfloat: [missing] -> pass (J1)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#s390x_unknown_none_softfloat: [missing] -> pass (J1)
  • [ui] tests/ui/abi/s390x-softfloat-gate.rs#disable-softfloat: [missing] -> pass (J3)
  • [ui] tests/ui/abi/s390x-softfloat-gate.rs#enable-softfloat: [missing] -> pass (J3)
  • [ui] tests/ui/target_modifiers/incompatible_softfloat_targets.rs#disable-softfloat: [missing] -> pass (J3)
  • [ui] tests/ui/target_modifiers/incompatible_softfloat_targets.rs#enable-softfloat: [missing] -> pass (J3)
  • [ui] tests/ui/fmt/format-string-error-3.rs: [missing] -> pass (J5)
  • [crashes] tests/crashes/131292.rs: pass -> [missing] (J6)

Additionally, 2 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 f21b4c0888ca6a388fcf9365fc0044fa0642ab98 --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-aarch64-linux: 2h 28m -> 1h 47m (-27.5%)
  2. dist-apple-various: 1h 16m -> 1h 28m (+16.6%)
  3. x86_64-gnu-llvm-21-1: 1h 5m -> 1h 12m (+10.2%)
  4. x86_64-msvc-ext1: 2h 18m -> 2h 4m (-10.2%)
  5. dist-loongarch64-linux: 1h 52m -> 1h 41m (-10.2%)
  6. aarch64-apple: 3h 40m -> 4h (+9.2%)
  7. x86_64-msvc-ext3: 1h 39m -> 1h 48m (+8.9%)
  8. aarch64-msvc-2: 1h 46m -> 1h 55m (+8.8%)
  9. pr-check-1: 31m 23s -> 33m 45s (+7.5%)
  10. x86_64-mingw-1: 2h 57m -> 2h 44m (-7.4%)
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 (f21b4c0): 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.1% [0.1%, 0.1%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

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

Cycles

Results (secondary 3.8%)

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.8% [2.8%, 4.8%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Binary size

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

Bootstrap: 509.869s -> 477.06s (-6.43%)
Artifact size: 398.00 MiB -> 398.00 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants