Skip to content

Rollup of 28 pull requests#159966

Merged
rust-bors[bot] merged 124 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-efqUEIj
Jul 27, 2026
Merged

Rollup of 28 pull requests#159966
rust-bors[bot] merged 124 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-efqUEIj

Conversation

@JonathanBrouwer

@JonathanBrouwer JonathanBrouwer commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

View all comments

Successful merges:

r? @ghost

Create a similar rollup

moabo3li and others added 30 commits July 18, 2026 08:00
Use `local_to_op` and the operand storage shape to render initialized
immediate locals through Miri's Immediate display implementation.

Keep mplace-backed locals as `<indirect>` for now, preserve explicit
dead/uninit states, and expose interpreter errors in `LocalDesc`.value.

Add value-shape and metadata-sized local fixtures for the next indirect
rendering slices.
Resolve allocation-backed mplace locals and display their allocation
contents with dump_alloc.

Keep unsupported provenance as <indirect> and update the fixtures for the
temporary diagnostic allocation output.
This updates the rust-version file to c904ba3.
Replace the diagnostic dump_alloc output with a Priroda-owned byte renderer
for mplace-backed locals.

Compute the current value size with size_and_align_of_val, inspect only the
mplace byte range, and render uninitialized bytes with an explicit marker.
Render complete pointer provenance while dumping indirect local values.
Preserve initialized and uninitialized byte ranges, including padding and
partial pointer bytes, and report unsupported unsized values explicitly.

Add UI coverage for pointer positions, nonzero target offsets,
uninitialized regions, and partial provenance.
Add a `follow` command that renders allocation bytes starting at a given
allocation offset, reusing the provenance-aware allocation byte renderer used
for indirect locals.

Document the command and cover following a rendered pointer allocation in the
pointer-rendering UI test.
…dling

[Priroda] Render indirect local values
When using `RUSTFLAGS="-Ctarget-features=+avx512f"`, the Rust compiler
complains:

    error: unknown codegen option: `target-features`

The actual option uses the singular form.
…eature-typo

readme: fix misspelling of `-Ctarget-feature`
This updates the rust-version file to 1af98b7.
…nsic support"

This reverts commit 785e740bb5c1d9166717c93612f7b9f99fee1caf. The additional intrinsic support has meanwhile been implemented.
This commit is a change for all WASI targets to use a different
underlying implementation in the standard library for `thread_local!`.
Previously all wasm targets, without the `atomics` feature, were
funneled into the `no_threads` implementation and various fallbacks in
the `thread_local` module. The upcoming `wasm32-wasip3` target, however,
will actually have threads and will need different treatment.
Additionally the modules that `wasm32-wasip3` needs all already work on
all other WASI targets as well -- for example the `pthread_*` symbols
needed to manage destructors are exposed by `wasi-libc`.

The end result is that the `wasm32-wasip3` target will be "ready for
threads" as soon as `wasi-libc` has support. Other targets shouldn't
have any functional difference from before, too.
This updates the rust-version file to 390279b.
Add a CLI fixture covering a projected memory-backed field inside a larger
aggregate. This locks in that projected values render only their own MPlace
layout bytes instead of trailing bytes from the parent allocation.
Keep projected MIR Places long enough to evaluate them with
`eval_place_to_op`, then reuse the existing raw operand renderer for
immediate and memory-backed values.

This removes `<unsupported-projection>` from projected locals, including
fields, enum projections, references, and dereferences. Update the projected
debug-info UI expectations and verify the full Priroda suite.
[Priroda] Render projected debug-info values
@JonathanBrouwer

Copy link
Copy Markdown
Contributor Author

Omg it's spurious that explains why it was so weird...
@bors retry

@rust-bors

rust-bors Bot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

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

@JonathanBrouwer

Copy link
Copy Markdown
Contributor Author

@bors r+

@rust-bors

rust-bors Bot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

📌 Commit e6a1a8f 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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jul 26, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Contributor Author

@bors treeopen
It has been relatively well behaved I think?

@rust-bors

rust-bors Bot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Tree is now open for merging.

@rust-bors

This comment has been minimized.

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job optional-x86_64-gnu-parallel-frontend failed! Check out the build log: (web) (plain enhanced) (plain)

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

20 LL | |     Self::Item: Baz,
21    | |____________________^
22    = note: ...which again requires coherence checking all impls of trait `Foo`, completing the cycle
- note: cycle used when checking that `<impl at $DIR/next-solver-region-resolution.rs:12:1: 14:20>` is well-formed
-   --> $DIR/next-solver-region-resolution.rs:12:1
+ note: cycle used when checking that `<impl at $DIR/next-solver-region-resolution.rs:18:1: 20:21>` is well-formed
+   --> $DIR/next-solver-region-resolution.rs:18:1
25    |
- LL | / impl<'a, T> Foo for &'a T
+ LL | / impl<'a, T> Foo for &T
27 LL | | where
- LL | |     Self::Item: 'a,
-    | |___________________^
+ LL | |     Self::Item: Baz,
+    | |____________________^
30    = note: for more information, see <https://rustc-dev-guide.rust-lang.org/overview.html#queries> and <https://rustc-dev-guide.rust-lang.org/query.html>
31 
32 error: aborting due to 1 previous error

Note: some mismatched output was normalized before being compared
- note: cycle used when checking that `<impl at /checkout/tests/ui/specialization/min_specialization/next-solver-region-resolution.rs:18:1: 20:21>` is well-formed
-   --> /checkout/tests/ui/specialization/min_specialization/next-solver-region-resolution.rs:18:1
+ note: cycle used when checking that `<impl at $DIR/next-solver-region-resolution.rs:18:1: 20:21>` is well-formed
+   --> $DIR/next-solver-region-resolution.rs:18:1
+ LL | / impl<'a, T> Foo for &T
+ LL | |     Self::Item: Baz,
+    | |____________________^

Compare output by lines enabled, diff by lines:
Expected contains these lines that are not in actual:
   | |___________________^
  --> $DIR/next-solver-region-resolution.rs:12:1
LL | / impl<'a, T> Foo for &'a T
LL | |     Self::Item: 'a,
note: cycle used when checking that `<impl at $DIR/next-solver-region-resolution.rs:12:1: 14:20>` is well-formed
Actual contains these lines that are not in expected:
   | |____________________^
  --> $DIR/next-solver-region-resolution.rs:18:1
LL | / impl<'a, T> Foo for &T
LL | |     Self::Item: Baz,
note: cycle used when checking that `<impl at $DIR/next-solver-region-resolution.rs:18:1: 20:21>` is well-formed

The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args specialization/min_specialization/next-solver-region-resolution.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/specialization/min_specialization/next-solver-region-resolution.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--target=x86_64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "-Zthreads=4" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/specialization/min_specialization/next-solver-region-resolution" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-Znext-solver=globally"
stdout: none
--- stderr -------------------------------
error[E0391]: cycle detected when coherence checking all impls of trait `Foo`
##[error]  --> /checkout/tests/ui/specialization/min_specialization/next-solver-region-resolution.rs:6:1
   |
LL | trait Foo { //~ ERROR cycle detected when coherence checking all impls of trait `Foo`
   | ^^^^^^^^^
   |
   = note: ...which requires building specialization graph of trait `Foo`...
note: ...which requires computing whether impls specialize one another...
  --> /checkout/tests/ui/specialization/min_specialization/next-solver-region-resolution.rs:12:1
   |
LL | / impl<'a, T> Foo for &'a T
LL | | where
LL | |     Self::Item: 'a,
   | |___________________^
note: ...which requires computing normalized predicates of `<impl at /checkout/tests/ui/specialization/min_specialization/next-solver-region-resolution.rs:18:1: 20:21>`...
  --> /checkout/tests/ui/specialization/min_specialization/next-solver-region-resolution.rs:18:1
   |
LL | / impl<'a, T> Foo for &T
LL | | where
LL | |     Self::Item: Baz,
   | |____________________^
   = note: ...which again requires coherence checking all impls of trait `Foo`, completing the cycle
note: cycle used when checking that `<impl at /checkout/tests/ui/specialization/min_specialization/next-solver-region-resolution.rs:18:1: 20:21>` is well-formed
  --> /checkout/tests/ui/specialization/min_specialization/next-solver-region-resolution.rs:18:1
   |
LL | / impl<'a, T> Foo for &T
LL | | where
LL | |     Self::Item: Baz,
   | |____________________^
   = note: for more information, see <https://rustc-dev-guide.rust-lang.org/overview.html#queries> and <https://rustc-dev-guide.rust-lang.org/query.html>

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0391`.
------------------------------------------

@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 27, 2026
@rust-bors

rust-bors Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 14m 2s
Pushing dfbea5b to main...

@rust-timer

Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#159638 bootstrap: Split the Step trait into multiple traits 37e3b95e26094b84927c9357e7ffbf0f0628e98f (link)
#159774 rustc_trait_selection: fix trait solver hang caused by dege… a0de912ef118bca6168a48e92427d13983fa145d (link)
#159837 line-tables-only test: check that the line number matches t… 46a5fd287b393f08cd1d9f6eb862a8f5e5c71916 (link)
#159946 Update Enzyme submodule to imporve llvm-cov 121bb4792ed3dbd4de349a680a1cbdbb74b7fe2b (link)
#159962 miri subtree update 1869eb38ebb267b2825a6a14e4e066bead2bd5ea (link)
#156570 tests: extend remap-path-prefix-std to all stdlib rlibs ec49913ed46d915bcfa06bc0e1c35a4c027b6ac0 (link)
#159617 Fix up #[linkage] target checking 5ba7a349426e0f7481e83bbb8ab0e90e2fb3cf30 (link)
#159633 Improve workings of attribute suggestions a553aac854cee9bc678bb437d8fa66208229cef7 (link)
#159733 std: Switch implementations of thread_local! for WASI 5f4dae14c2de29c58eed842a40e1619f666b767f (link)
#159783 Check unsafe impls on safe EIIs 4fcef240ce1ac91c4f80d6169e1a7adbfc447645 (link)
#159810 Add tuple never coercion collection regression test 3660995eb8cff7ec4fbdea42d41ad4dd638b57ac (link)
#159826 Remove redundant #[rustc_paren_sugar] feature gate ef2c177737e73c9e872e985d7c16028100f20af2 (link)
#159846 Implement str::copy_from_str 63c2703cf92a4fd1dab3ea82bc31de47cfdb9503 (link)
#159849 rustc_parse: Stop returning Option from statement parsing d1c9ad605e4b48b5eb8c51ebfd8aee166aaadac1 (link)
#159853 Updated expect messages for CString struct and method doc… f242e63daab96795f58a9033bcf1afdd36f525de (link)
#159875 More cleanup in rustc_attr_parsing e6d70ada57446de65e31e7aca774cb3530b13ead (link)
#159882 Update expect messages in library/alloc/boxed.rs and librar… f63443d5fc0ad7cf02d0c8ee3e06f09cab960d1e (link)
#159891 Split multiline derives into std/rustc macros e255c72929460a188e92b346e6581eb2e7cc0d72 (link)
#159893 Fix find_attr hygiene and rustc_hir cleanups 2b644d1db895137f749055cca1331d46adaba2d4 (link)
#159895 rustc-dev-guide subtree update 09ce5bc7d169b13a649686b26fe164750a1a9482 (link)
#159902 Clarify that the expected runtime symbols signature is for … d07fea5d511f785073f3a308531c55d864549dbc (link)
#159914 Fix error in diagnostic on_unmatched_args 4d567a3966e728d792de7ae88b8e002f66bf9910 (link)
#159917 spare capacity mut constification 6ccbe8eae2a1b3c11f7d49aa05f515605769d7e6 (link)
#159918 rename abort_unwind → abort_on_unwind 438076e0be5423af4b61f649ee5d3783c2932397 (link)
#159927 Remove sve2 from the ImpliedFeatures of AArch64 v9a. 8d063b8838c729177fc9369bfaeb51041c27615c (link)
#159936 Minor rustc_ast::ast doc cleanups 3cf7b34172d3a9e8940247e15da74221ecf66a7e (link)
#159945 Update expect messages in library/core/src/ptr/non_null.rs 497507b3839037c138bf532ca8ebd16545933740 (link)
#159950 Add CFI tests for return types and never type d3f55b10e707f58b65b6924d604e252db7f52bff (link)

previous master: dc3f85158a

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-log-analyzer

Copy link
Copy Markdown
Collaborator

A job failed! Check out the build log: (web) (plain enhanced) (plain)

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

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (dfbea5b): comparison URL.

Overall result: ❌ regressions - 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.3% [0.3%, 0.3%] 6
Regressions ❌
(secondary)
0.4% [0.2%, 0.6%] 22
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.3% [0.3%, 0.3%] 6

Max RSS (memory usage)

Results (primary 2.1%, secondary 2.4%)

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

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

Cycles

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

Binary size

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

Bootstrap: 489.277s -> 486.74s (-0.52%)
Artifact size: 387.73 MiB -> 387.74 MiB (0.00%)

@rustbot rustbot added the perf-regression Performance regression. label Jul 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-run-make Area: port run-make Makefiles to rmake.rs A-rustc-dev-guide Area: rustc-dev-guide 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. perf-regression Performance regression. PG-exploit-mitigations Project group: Exploit mitigations 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-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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.