Skip to content

Rollup of 19 pull requests#158924

Merged
rust-bors[bot] merged 52 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-rCVjim4
Jul 8, 2026
Merged

Rollup of 19 pull requests#158924
rust-bors[bot] merged 52 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-rCVjim4

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Contributor

Successful merges:

Failed merges:

r? @ghost

Create a similar rollup

theemathas and others added 30 commits June 12, 2026 19:23
I define the concept of "equivalent allocators", in order to be able
to talk about cloning allocators, and to give commonsense guarantees
about stdlib `Allocator` impls.

I define the concept of "invalidating a memory block" in order to be
able to talk about users not being allowed to use a block of allocated
memory after its allocator is "gone".

An `Allocator` implementation is now allowed to invalidate its
allocations when the allocator is mutated or when a lifetime in the
allocator type expires.

Mutation of an `Allocator` should sensibly be allowed to invalidate its
allocations. For example, the `bumpalo` crates has a `Bump::reset`
method that takes `&mut self` and invalidates all past allocations.
Accesses via `&` still must not invalidate past allocations since,
for example, `Box` provides `&` access to the allocator.

I still had the "allocator destructor" clause as a separate clause from
the `&mut` clause, to avoid questions about whether drop glue of types
that don't implement `Drop` but have fields that implement `Drop` counts
as creating a `&mut` to the whole thing.

The "lifetime expiry" clause closes a hole/ambiguity on when an
allocator is considered to be "dropped" if it does not have a
destructor. Additionally, this clause matches what is required for
`Box::into_pin` and `{Rc, Arc}::pin` to be sound. (Those methods have an
`A: 'static` bound to prevent allocating via a `&MyAllocator` and then
running `MyAllocator`'s destructor.)
Starting with FreeBSD 16.0, powerpc64le switches to IEEE long double.
128 bit arithmetics are implemented in LLVM's compiler_rt, which is
FreeBSD's libgcc. Link with it so that building on FreeBSD 16.0
succeeds - noop for earlier releases.
The docs stated that try_with will return an AccessError when the key
has been destroyed. This is not guaranteed: on some platforms, TLS
slots can be re-initialized during destruction, so the destroyed state
cannot always be observed. Change 'will' to 'may' to accurately reflect
the best-effort nature of the check.
…r generation for memcpy.

This moves a TA failure in the testcase from memcpy to a later location.
`body_id` is often used to mean "ID of a body-owning node", which is
confusing since the obvious reading of "body ID" is wrong.

`body_def_id` is easier to read as "body-owning definition ID".
In LLVM 22 the x64 MSVC ABI wasn't matched and f128 was being directly
returned in %xmm0, but now it correctly returns the value via a pointer.
* Support mapping of all arguments with Self type
* Address some review comments
* Review: use #[cfg(debug_assertions)] on the whole module
* Review: emit error when trying to map non-receiver argument when block contains definitions
* Use `cfg_select`
* Fix tidy
* Unify mapping with `should_generate_block`
* Better naming and message for error
* loop -> `extend`
@rustbot rustbot added T-clippy Relevant to the Clippy team. 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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. T-rustfmt Relevant to the rustfmt team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Jul 7, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Contributor Author

@bors r+ rollup=never p=5

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,aarch64-apple,x86_64-mingw-1,i686-msvc-2

@rust-bors

rust-bors Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 7ce91c5 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 7, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 7, 2026
Rollup of 19 pull requests


try-job: dist-various-1
try-job: test-various
try-job: x86_64-gnu-aux
try-job: x86_64-gnu-llvm-21-3
try-job: x86_64-msvc-1
try-job: aarch64-apple
try-job: x86_64-mingw-1
try-job: i686-msvc-2
@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 8, 2026
@rust-bors

rust-bors Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 18m 34s
Pushing 76fcc1c to main...

@rust-bors rust-bors Bot merged commit 76fcc1c into rust-lang:main Jul 8, 2026
15 checks passed
@rustbot rustbot added this to the 1.99.0 milestone Jul 8, 2026
@rust-bors

rust-bors Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 97bfdcb (97bfdcb1ff24ec4781d614b030f5f3b7baa9e421)
Base parent: f10db29 (f10db292a3733b5c67c8da8c7661195ff4b05774)

@github-actions

github-actions Bot commented Jul 8, 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 f10db29 (parent) -> 76fcc1c (this PR)

Test differences

Show 211 test diffs

Stage 0

  • pprust::tests::test_field_view: [missing] -> pass (J5)

Stage 1

  • [ui] tests/ui/abi/unsupported.rs#wasm32: [missing] -> pass (J1)
  • [ui] tests/ui/abi/unsupported.rs#wasm64: [missing] -> pass (J1)
  • [ui] tests/ui/closures/hrtb-closure-suggest-type-annotation.rs: [missing] -> pass (J1)
  • [ui] tests/ui/delegation/constraints-in-generic-args-ice-158812.rs: [missing] -> pass (J1)
  • [ui] tests/ui/delegation/self-mapping-arguments-errors.rs: [missing] -> pass (J1)
  • [ui] tests/ui/delegation/self-mapping-arguments.rs: [missing] -> pass (J1)
  • [ui] tests/ui/feature-gates/feature-gate-view-types.rs: pass -> [missing] (J1)
  • [ui] tests/ui/lint/unused-braces-macro-arg-issue-158747.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/final/overriding-rpitit.rs: [missing] -> pass (J1)
  • [ui] tests/ui/view-types/feature-gate-view-types.rs: [missing] -> pass (J1)
  • [ui] tests/ui/view-types/must-be-struct.rs: [missing] -> pass (J1)
  • [ui] tests/ui/view-types/must-exist.rs: [missing] -> pass (J1)
  • [ui] tests/ui/view-types/must-restrict.rs: [missing] -> pass (J1)
  • [ui] tests/ui/view-types/regression-156016.rs: [missing] -> pass (J1)
  • [ui] tests/ui/view-types/syntax-errors.rs: [missing] -> pass (J1)
  • [ui] tests/ui/view-types/tuple-structs.rs: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/abi/unsupported.rs#wasm32: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/abi/unsupported.rs#wasm64: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/closures/hrtb-closure-suggest-type-annotation.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/delegation/constraints-in-generic-args-ice-158812.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/delegation/self-mapping-arguments-errors.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/delegation/self-mapping-arguments.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/feature-gates/feature-gate-view-types.rs: pass -> [missing] (J3)
  • [ui (polonius)] tests/ui/lint/unused-braces-macro-arg-issue-158747.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/traits/final/overriding-rpitit.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/view-types/feature-gate-view-types.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/view-types/must-be-struct.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/view-types/must-exist.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/view-types/must-restrict.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/view-types/regression-156016.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/view-types/syntax-errors.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/view-types/tuple-structs.rs: [missing] -> pass (J3)
  • [assembly] tests/assembly-llvm/x86_64-windows-float-abi.rs: pass -> [missing] (J5)
  • [assembly] tests/assembly-llvm/x86_64-windows-float-abi.rs#LLVM22: [missing] -> pass (J5)
  • [run-make] tests/run-make/autodiff/type-trees/iter: [missing] -> ignore (ignored when LLVM Enzyme is disabled or LLVM is not the default codegen backend) (J5)
  • [assembly] tests/assembly-llvm/x86_64-windows-float-abi.rs#LLVM23: [missing] -> ignore (ignored when the LLVM version 22.1.2 is older than 23.0.0) (J8)
  • os::unix::net::tests::sock_addr_from_pathname: [missing] -> pass (J11)
  • [assembly] tests/assembly-llvm/x86_64-windows-float-abi.rs#LLVM23: [missing] -> ignore (ignored when the LLVM version 21.1.2 is older than 23.0.0) (J12)
  • pprust::tests::test_field_view: [missing] -> pass (J15)

Stage 2

  • [ui] tests/ui/closures/hrtb-closure-suggest-type-annotation.rs: [missing] -> pass (J0)
  • [ui] tests/ui/delegation/constraints-in-generic-args-ice-158812.rs: [missing] -> pass (J0)
  • [ui] tests/ui/delegation/self-mapping-arguments-errors.rs: [missing] -> pass (J0)
  • [ui] tests/ui/delegation/self-mapping-arguments.rs: [missing] -> pass (J0)
  • [ui] tests/ui/feature-gates/feature-gate-view-types.rs: pass -> [missing] (J0)
  • [ui] tests/ui/lint/unused-braces-macro-arg-issue-158747.rs: [missing] -> pass (J0)
  • [ui] tests/ui/traits/final/overriding-rpitit.rs: [missing] -> pass (J0)
  • [ui] tests/ui/view-types/feature-gate-view-types.rs: [missing] -> pass (J0)
  • [ui] tests/ui/view-types/must-be-struct.rs: [missing] -> pass (J0)
  • [ui] tests/ui/view-types/must-exist.rs: [missing] -> pass (J0)
  • [ui] tests/ui/view-types/must-restrict.rs: [missing] -> pass (J0)
  • [ui] tests/ui/view-types/regression-156016.rs: [missing] -> pass (J0)
  • [ui] tests/ui/view-types/syntax-errors.rs: [missing] -> pass (J0)
  • [ui] tests/ui/view-types/tuple-structs.rs: [missing] -> pass (J0)
  • [run-make] tests/run-make/autodiff/type-trees/iter: [missing] -> ignore (ignored when cross-compiling) (J2)
  • [assembly] tests/assembly-llvm/x86_64-windows-float-abi.rs#LLVM23: [missing] -> ignore (ignored when the LLVM version 22.1.8 is older than 23.0.0) (J4)
  • [assembly] tests/assembly-llvm/x86_64-windows-float-abi.rs: pass -> [missing] (J6)
  • [assembly] tests/assembly-llvm/x86_64-windows-float-abi.rs#LLVM22: [missing] -> pass (J6)
  • [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) (J7)
  • [run-make] tests/run-make/autodiff/type-trees/iter: [missing] -> ignore (ignored when LLVM Enzyme is disabled or LLVM is not the default codegen backend) (J9)
  • [assembly] tests/assembly-llvm/x86_64-windows-float-abi.rs#LLVM23: [missing] -> ignore (ignored when the LLVM version 22.1.2 is older than 23.0.0) (J10)
  • [ui] tests/ui/abi/unsupported.rs#wasm32: [missing] -> ignore (gcc backend is marked as ignore) (J13)
  • [ui] tests/ui/abi/unsupported.rs#wasm64: [missing] -> ignore (gcc backend is marked as ignore) (J13)
  • [ui] tests/ui/abi/unsupported.rs#wasm32: [missing] -> pass (J14)
  • [ui] tests/ui/abi/unsupported.rs#wasm64: [missing] -> pass (J14)
  • os::unix::net::tests::sock_addr_from_pathname: [missing] -> pass (J16)
  • [assembly] tests/assembly-llvm/x86_64-windows-float-abi.rs#LLVM23: [missing] -> ignore (ignored when the LLVM version 21.1.2 is older than 23.0.0) (J17)

Additionally, 144 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 76fcc1c04d0c7e5759d92af857f08609a3c8e506 --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. x86_64-gnu-gcc-core-tests: 8m 6s -> 27m (+233.3%)
  2. x86_64-gnu-miri: 1h 7m -> 1h 56m (+73.9%)
  3. x86_64-gnu-tools: 58m -> 1h 25m (+47.6%)
  4. i686-gnu-2: 1h 9m -> 1h 41m (+45.3%)
  5. optional-x86_64-gnu-parallel-frontend: 2h 16m -> 3h 10m (+39.2%)
  6. pr-check-2: 36m 49s -> 50m 56s (+38.3%)
  7. pr-check-1: 29m 46s -> 40m 32s (+36.1%)
  8. x86_64-gnu-next-trait-solver-polonius: 53m 33s -> 1h 11m (+33.2%)
  9. armhf-gnu: 1h 27m -> 1h 53m (+30.6%)
  10. dist-apple-various: 1h 51m -> 2h 21m (+27.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
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#156016 view-types: store view types in the AST bf9ec21e9f83af1ae85ac83f51bb34205ddbb310 (link)
#157385 Enable Enzyme on x86_64-apple 0e81cb7b60a570bc3f312d38826151b17614fc60 (link)
#158179 std: unconditionally use preadv/pwritev on AArch64 macOS 68a86d5434cfc2d12b7275c7c83c6a5b7bd78155 (link)
#158621 disallow extern "custom" on wasm and spirv targets 76018361ac41ddcd883f8b50b2280232a4032cbf (link)
#158690 delegation: support mapping of all arguments with Self ty… 3d3c4ffe56e92fbe8c2c646a686be58fb8c08753 (link)
#158696 Rename some body_id to body_def_id 26eb223d6eddac38550c0bab095501cc81de1528 (link)
#158697 Fixes for QNX SDP 8 75f99588493693383d57e90335aa506d6dea9aa3 (link)
#158760 Clarify that LocalKey::try_with may return AccessError b4c4e03bdaaacfc0955a6f03c93173aeda360068 (link)
#157801 Rewrite safety requirements for Allocator impls ecc5058add84cb3317b145a8b7894d7d341bf244 (link)
#158085 rustdoc: Fix sidebar heading order cee1597f0cbb12d866b438462dd1c5607fcf5c92 (link)
#158333 Fix typetree generation for differentiated functions 6b6f793e977e760be8cb6d351ed07b2397031bb4 (link)
#158646 powerpc64le_unknown_freebsd.rs: link with -lgcc 92f57b3c691f3689207448a46a2ddab7aee33ca8 (link)
#158701 diagnostics: suggest type annotation for closure params on… a715085f091a2735e9b2449a4382330c35d9e2c3 (link)
#158791 Avoid unused braces lint for macro generated arguments b860b2a82ee099796acfd3e218cfca527260bdee (link)
#158802 Use ci-mirrors in armhf-gnu for {busybox, ubuntu rootfs… e6f08c7b6a258a6f28bdcebd30426c4c7746f239 (link)
#158841 Avoid final override ICE for RPITIT associated types 5d91b42ea21b8d02cf41d102b67965bfc23ff001 (link)
#158889 tests: catch up with LLVM returning f128 on the stack 74aeca8e34f65691df0a4100e153530e66fdbd00 (link)
#158905 delegation: add constraints to new generic args a07d1c11e984aca7b83e2cb0cb46df310786f28a (link)
#158922 tests: clean up over-constraint on LLVM feature count 3c0bb098d07ddd3e8cc6d02ea60c57e05cf455a1 (link)

previous master: f10db292a3

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 (76fcc1c): comparison URL.

Overall result: ❌✅ regressions and improvements - 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.3% [0.0%, 0.7%] 3
Improvements ✅
(primary)
-0.3% [-0.3%, -0.3%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.3% [-0.3%, -0.3%] 1

Max RSS (memory usage)

Results (primary 1.3%, secondary 3.9%)

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

mean range count
Regressions ❌
(primary)
2.6% [1.9%, 3.3%] 2
Regressions ❌
(secondary)
3.9% [3.9%, 3.9%] 1
Improvements ✅
(primary)
-1.4% [-1.4%, -1.4%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 1.3% [-1.4%, 3.3%] 3

Cycles

Results (primary 2.2%)

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

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

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 487.206s -> 489.458s (0.46%)
Artifact size: 388.97 MiB -> 388.97 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-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc F-autodiff `#![feature(autodiff)]` merged-by-bors This PR was explicitly merged by bors. O-unix Operating system: Unix-like 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-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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. T-rustfmt Relevant to the rustfmt 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.