Skip to content

Rollup of 21 pull requests#158795

Merged
rust-bors[bot] merged 59 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-vhfdJ4m
Jul 5, 2026
Merged

Rollup of 21 pull requests#158795
rust-bors[bot] merged 59 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-vhfdJ4m

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

mati865 and others added 30 commits June 17, 2026 13:17
Before mingw-w64/mingw-w64@dbfdf80
mkstemp used by Binutils was not sufficiently
collision resilient and that led to CI errors for
us.

Our new baseline mingw-w64 toolchain's Binutils
are built using mingw-w64 with the fix:
niXman/mingw-builds#682
So, we should be able to get rid of it.
Add a tier 3 bare-metal target for RV32IMFC cores that have hardware
single-precision floating point (the `F` extension, `ilp32f` ABI) but no
atomic (`A`) extension.

This is `riscv32imafc-unknown-none-elf` minus the atomic extension,
handled the same way `riscv32imc-unknown-none-elf` handles a no-`a` core:
`+forced-atomics` lowers atomic load/store to plain load/store (sound on a
single hart) while `atomic_cas = false` keeps RMW/CAS off, so no
`lr.w`/`sc.w`/`amo*` are ever emitted and the target does not trap on a
core without the `A` extension. Downstream crates use a critical-section
polyfill (e.g. `portable-atomic`) for compare-and-swap.

This combination has no builtin target today: cores that pair a
hardware-float application core with no atomic extension otherwise need a
custom target spec plus `-Zbuild-std` on nightly, which is unavailable on
stable. The motivating hardware is the application core of vendor SoCs such
as the HiSilicon WS63/BS2X family, but the target is vendor-neutral.

Register the target, add it to the `targets-elf` assembly sanity test, and
document it on the shared `riscv32-unknown-none-elf` platform-support page.
In many cases where we are flattening `option::IntoIter<I>`, we can use
`into_flat_iter()` instead for a simpler implementation.
This tool is part of the main workspace, so its own lock file is unused,
and the file is clearly outdated for its current dependencies anyway.
Splitting assembling the return value over multiple let-bindings enables
pedagogic discussion of each named let-binding.

The `slice` arg was renamed to remove any chance of visual confusion
with use of `core::slice` functions or "slice" per se.
This starts with `StatementKind` and `TerminatorKind`; they don't need
hashing. That then allows the removal of the `Hash` impl of various
other types.
Signed-off-by: Ajay Singh <ajaykripa8736968359@gmail.com>
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Jul 5, 2026
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. 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-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) labels Jul 5, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Contributor Author

@bors r+ rollup=never p=5

@rust-bors

rust-bors Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 3755fd9 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 Jul 5, 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 Jul 5, 2026
@rust-bors

rust-bors Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 30m 1s
Pushing 4eb6253 to main...

@github-actions

github-actions Bot commented Jul 5, 2026

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 ea088e0 (parent) -> 4eb6253 (this PR)

Test differences

Show 399 test diffs

Stage 0

  • spec::tests::riscv32imfc_unknown_none_elf: [missing] -> pass (J5)

Stage 1

  • [ui (polonius)] tests/ui/associated-inherent-types/next-solver-unsatisfied-bounds-inherent-tait.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/feature-gates/feature-gate-diagnostic-on-type-error-malformed-args.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/impl-trait/rpit/dyn-in-nested-rpit.rs#current: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/impl-trait/rpit/dyn-in-nested-rpit.rs#next: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/lint/improper-ctypes/nonzero-char.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/resolve/too-many-super-issue-158275.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/splat/run-splat.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/splat/splat-fn-ptr-cast-fail.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/splat/splat-self.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/traits/error_reporting/conditionally-implemented-trait-158423.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/traits/next-solver/consider_builtin_pointee_candidate-instantiate-result-fail.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/traits/next-solver/nested-rerun-not-erased-in-normalizes-to.rs: [missing] -> pass (J0)
  • spec::tests::riscv32imfc_unknown_none_elf: [missing] -> pass (J2)
  • [ui] tests/ui/associated-inherent-types/next-solver-unsatisfied-bounds-inherent-tait.rs: [missing] -> pass (J3)
  • [ui] tests/ui/feature-gates/feature-gate-diagnostic-on-type-error-malformed-args.rs: [missing] -> pass (J3)
  • [ui] tests/ui/impl-trait/rpit/dyn-in-nested-rpit.rs#current: [missing] -> pass (J3)
  • [ui] tests/ui/impl-trait/rpit/dyn-in-nested-rpit.rs#next: [missing] -> pass (J3)
  • [ui] tests/ui/lint/improper-ctypes/nonzero-char.rs: [missing] -> pass (J3)
  • [ui] tests/ui/resolve/too-many-super-issue-158275.rs: [missing] -> pass (J3)
  • [ui] tests/ui/splat/run-splat.rs: [missing] -> pass (J3)
  • [ui] tests/ui/splat/splat-fn-ptr-cast-fail.rs: [missing] -> pass (J3)
  • [ui] tests/ui/splat/splat-self.rs: [missing] -> pass (J3)
  • [ui] tests/ui/traits/error_reporting/conditionally-implemented-trait-158423.rs: [missing] -> pass (J3)
  • [ui] tests/ui/traits/next-solver/consider_builtin_pointee_candidate-instantiate-result-fail.rs: [missing] -> pass (J3)
  • [ui] tests/ui/traits/next-solver/nested-rerun-not-erased-in-normalizes-to.rs: [missing] -> pass (J3)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#riscv32imfc_unknown_none_elf: [missing] -> pass (J5)

Stage 2

  • [ui] tests/ui/associated-inherent-types/next-solver-unsatisfied-bounds-inherent-tait.rs: [missing] -> pass (J1)
  • [ui] tests/ui/feature-gates/feature-gate-diagnostic-on-type-error-malformed-args.rs: [missing] -> pass (J1)
  • [ui] tests/ui/impl-trait/rpit/dyn-in-nested-rpit.rs#current: [missing] -> pass (J1)
  • [ui] tests/ui/impl-trait/rpit/dyn-in-nested-rpit.rs#next: [missing] -> pass (J1)
  • [ui] tests/ui/lint/improper-ctypes/nonzero-char.rs: [missing] -> pass (J1)
  • [ui] tests/ui/resolve/too-many-super-issue-158275.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/run-splat.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-fn-ptr-cast-fail.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-self.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/error_reporting/conditionally-implemented-trait-158423.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/next-solver/consider_builtin_pointee_candidate-instantiate-result-fail.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/next-solver/nested-rerun-not-erased-in-normalizes-to.rs: [missing] -> pass (J1)
  • [run-make] tests/run-make/compressed-debuginfo-zstd: pass -> ignore (ignored if LLVM wasn't build with zstd for ELF section compression or LLVM is not the default codegen backend) (J4)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#riscv32imfc_unknown_none_elf: [missing] -> pass (J6)

Additionally, 358 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 4eb62535fc12dd1a63fd43a4173e224e79313c4d --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-1: 1h 26m -> 2h 30m (+73.2%)
  2. x86_64-gnu-llvm-21: 48m 11s -> 1h 21m (+68.7%)
  3. x86_64-gnu-gcc-core-tests: 15m 41s -> 25m 21s (+61.5%)
  4. x86_64-gnu-stable: 1h 56m -> 2h 50m (+46.6%)
  5. pr-check-1: 28m 14s -> 39m 40s (+40.5%)
  6. dist-x86_64-solaris: 1h 42m -> 1h 1m (-39.9%)
  7. x86_64-gnu-tools: 1h 6m -> 1h 26m (+29.9%)
  8. pr-check-2: 38m 50s -> 50m 19s (+29.5%)
  9. x86_64-gnu-next-trait-solver-polonius: 58m 43s -> 1h 14m (+26.0%)
  10. dist-aarch64-apple: 1h 55m -> 1h 25m (-25.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
#158100 Emit retags in codegen to support BorrowSanitizer (part 4) 6c00b94ceede0fa74ad8a92ce9b918785c13194b (link)
#158494 Improve E0277 diagnostics for conditionally implemented tra… 752cc4a9f164b9289e2cfe2446b2f346cac1a7c9 (link)
#158606 use ProjectionPredicate instead of AliasRelate 7e089bbe6581108a1f8146fd1bd291dff445715d (link)
#158627 Simplify option-iterator flattening in the compiler 34a8e7a0a0442687ab07688838419cee41267ee8 (link)
#158658 Update LLVM submodule 9872f6449a3c2b9196485f9788499ffc961a6796 (link)
#158665 Revert "Remove redundant dyn-compatibility check." 7017bac6dc0325f4d9692f4704ec5eb04824e66b (link)
#158021 Remove old MinGW workaround a324a7b8896aad6cc48a541e871cd3344594e040 (link)
#158473 Add riscv32imfc-unknown-none-elf bare-metal target 58f3b4e9c9afc349727f95e3ca032cf107ba3d15 (link)
#158549 process::exec: using appropriate exit code on vxworks. 6d2eb85f53bb6bdb5905c77a8e2f68f26a4cb76e (link)
#158585 Improve diagnostic for too many super keywords 17623252a2f2d4d049be4162c6da970ef47d0768 (link)
#158637 hir_ty_lowering: avoid self type lookup for inherent aliases bc69e118bafe9dd004f7ebb7e9f19711a7af8946 (link)
#158651 ptr doc: reduce use of unsafe block to where needed 954c0a0dabc56701cd829f8e3fdb9765e7dee81c (link)
#158669 Remove src/tools/test-float-parse/Cargo.lock b5091786826064ff5184b296cbd604894186d4b1 (link)
#158674 library: Polish transmute's split_at_stdlib example 39b626406b0af39a2ee9e09a7d1ce3f9c0c45f56 (link)
#158677 Add extra splat tests 43a251e9d4478932864367cdd45cb1ebb20b0291 (link)
#158680 Avoid ICE for NonZero<char> in improper_ctypes 3b7d720ce89f2fe1eb78a54fb6e56af932eb9704 (link)
#158681 Remove unnecessary Hash derives from MIR types e770092884a8aeb37c6d626d1079c8879a527b2e (link)
#158682 Avoid delayed bug for disabled on_type_error arguments 09bb180c6f72554d400a3d60ee62c4c117ba831c (link)
#158684 Add missing generic test coverage for #[splat] ae4547de45a31326217365458d894aeeee7e7044 (link)
#158687 Streamline MacEager b64c8a936aaabc94881610b5b5534684176eeb2e (link)
#158688 Cleanup attribute docs and add links to other mentioned att… 63f1c70075b5cabdff13ef5bf77af0dd2f2ba5da (link)

previous master: ea088e0a3d

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

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. 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-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.