Skip to content

Rollup of 14 pull requests#159814

Merged
rust-bors[bot] merged 47 commits into
rust-lang:mainfrom
jhpratt:rollup-Q7TJSeP
Jul 24, 2026
Merged

Rollup of 14 pull requests#159814
rust-bors[bot] merged 47 commits into
rust-lang:mainfrom
jhpratt:rollup-Q7TJSeP

Conversation

@jhpratt

@jhpratt jhpratt commented Jul 24, 2026

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

mkroening and others added 30 commits June 26, 2026 15:48
* Enable autodiff tests on x86_64 linux
* move autodiff job def
* remove redundant ./x build
Replace most of the `.span_suggestion(` in `rustc_parse` with `.span_suggestion_verbose(`, as they are more readabale, if more verbose. Verbose suggestions also tend to highlight off-by-one `Span` errors better.
This commit is in preparation for eventual [tier 2 status] for the
`wasm32-wasip3` target. Initially this target will not have support for
threads but it's expected to come ~later this year. The first step in
supporting this is switching internal `#[cfg]` in the standard library
to "ok this target has threads", and this commit is the update for
synchronization primitives. All synchronization primitives on the
`wasm32-wasip3` now use a `futex`-based implementation, and the
implementation of the futex itself is located in wasi-libc (see
WebAssembly/wasi-libc/834). Other WASI targets can eventually all use
this implementation as well, but `wasi-libc`'s implementation of these
symbols will need to percolate, so those targets aren't changed yet. For
`wasm32-wasip3`, however, any supporting `wasi-libc` will have these
symbols.

This then additionally fixes the target to actually build with a modern
LLVM by passing a necessary flag to `wasm-ld`. This flag isn't supported
until LLVM 23, but the `wasm32-wasip3` target isn't fully supported
until LLVM 23 anyway (hence its Tier 3 status currently).

[tier 2 status]: rust-lang/compiler-team#1001
also add regression test for rmeta reproducibility when unrelated `rlib`
are in the search path

Co-authored-by: mejrs <59372212+mejrs@users.noreply.github.com>
…adata

The recent Cargo submodule update picked up <rust-lang/cargo#17149>

However, bootstrap was still using the old name, resulting in:

```
Building stage1 library artifacts (stage1 -> stage1, arm64ec-pc-windows-msvc)
error: unknown `-Z` flag specified: no-embed-metadata
```

Fix is to switch to the rename.

I also removed the diff in the Cranelift setup script, since they must have already hit this issue and no longer need the workaround.
These changes involve the error messages produced in
`check_attribute_stability`, plus some related ones.

The basic idea:
- Use "the `foo` attribute" in `error` lines as much as possible, where
  `foo` is the attribute's path.
- Point carets at just the attribute's path, to match the `error` line.
Mostly in a fashion similar to the previous commit.

There is one exceptional case: for errors involving `repr` the argument
is significant. For these, the argument is included in the error line
and the caret highlighting, e.g.
```
error: the `repr(C)` attribute cannot be used on functions
  --> $DIR/naked-with-invalid-repr-attr.rs:10:3
   |
LL | #[repr(C)]
   |   ^^^^^^^
   |
   = help: the `repr(C)` attribute can only be applied to data types
```

Contrast this with a more typical argument-excluding case used
everywhere else:
```
error: the `rustc_abi` attribute cannot be used on associated consts
  --> $DIR/debug.rs:46:7
   |
LL |     #[rustc_abi(debug)]
   |       ^^^^^^^^^
   |
   = help: the `rustc_abi` attribute can be applied to functions and type aliases
```
@rustbot rustbot added the WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) label Jul 24, 2026
@jhpratt

jhpratt commented Jul 24, 2026

Copy link
Copy Markdown
Member Author

@bors r+ rollup=never p=5

@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-*

@rust-bors

rust-bors Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 625d5f9 has been approved by jhpratt

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

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 24, 2026
Rollup of 14 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-*
@rust-bors

This comment has been minimized.

@rust-bors

rust-bors Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 2311f52 (2311f52b0fe89a502831fe0caaf4de7c03ce6a84)
Base parent: 1498f99 (1498f9968f75e8e5ded6892b9c97bfe66b5a966f)

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

rust-bors Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: jhpratt
Duration: 3h 7m 33s
Pushing 29e68fe to main...

@github-actions

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 1498f99 (parent) -> 29e68fe (this PR)

Test differences

Show 353 test diffs

Stage 1

  • test::format_files_find_new_files_via_cfg_match: pass -> [missing] (J4)
  • test::format_files_find_new_files_via_cfg_select: [missing] -> pass (J4)
  • [run-make] tests/run-make/rmeta-unrelated-search-path-files: [missing] -> pass (J5)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/cfg-attr-proc-macro.rs: [missing] -> pass (J5)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/cfg-attr.rs: [missing] -> pass (J5)
  • [ui (polonius)] tests/ui/assumptions_on_binders/placeholder-assumptions-issue-157840.rs: [missing] -> pass (J6)
  • [ui (polonius)] tests/ui/consts/min_const_fn/bad_const_fn_body_ice.rs: pass -> [missing] (J6)
  • [ui (polonius)] tests/ui/eii/implementation-attribute-allowlist-issue-159015.rs: [missing] -> pass (J6)
  • [ui] tests/ui/assumptions_on_binders/placeholder-assumptions-issue-157840.rs: [missing] -> pass (J8)
  • [ui] tests/ui/consts/min_const_fn/bad_const_fn_body_ice.rs: pass -> [missing] (J8)
  • [ui] tests/ui/eii/implementation-attribute-allowlist-issue-159015.rs: [missing] -> pass (J8)
  • str::word_to_titlecase: [missing] -> pass (J9)
  • vec::const_heap_vec_macro: [missing] -> pass (J9)

Stage 2

  • [run-make] tests/run-make/rmeta-unrelated-search-path-files: [missing] -> pass (J0)
  • str::word_to_titlecase: [missing] -> pass (J1)
  • vec::const_heap_vec_macro: [missing] -> pass (J1)
  • [ui] tests/ui/assumptions_on_binders/placeholder-assumptions-issue-157840.rs: [missing] -> pass (J2)
  • [ui] tests/ui/consts/min_const_fn/bad_const_fn_body_ice.rs: pass -> [missing] (J2)
  • [ui] tests/ui/eii/implementation-attribute-allowlist-issue-159015.rs: [missing] -> pass (J2)
  • [run-make] tests/run-make/rmeta-unrelated-search-path-files: [missing] -> ignore (ignored if target does not support std) (J3)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/cfg-attr-proc-macro.rs: [missing] -> pass (J7)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/cfg-attr.rs: [missing] -> pass (J7)
  • [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) (J10)

Additionally, 330 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 29e68fe2295f8fc2feb52b8cb0b61a055842fdcf --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-rust-for-linux: 40m 53s -> 1h 17m (+88.5%)
  2. x86_64-gnu-gcc-core-tests: 14m 9s -> 26m 19s (+85.9%)
  3. x86_64-gnu-miri: 1h 2m -> 1h 54m (+84.5%)
  4. x86_64-msvc-ext3: 1h 8m -> 1h 54m (+68.0%)
  5. pr-check-1: 29m 17s -> 45m 56s (+56.8%)
  6. pr-check-2: 37m 21s -> 53m 34s (+43.4%)
  7. arm-android: 1h 26m -> 2h 3m (+43.0%)
  8. x86_64-gnu-next-trait-solver-polonius: 55m 33s -> 1h 16m (+38.5%)
  9. optional-x86_64-gnu-parallel-frontend: 1h 53m -> 2h 35m (+36.8%)
  10. dist-x86_64-msvc-alt: 2h 6m -> 2h 51m (+35.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.

@jhpratt
jhpratt deleted the rollup-Q7TJSeP branch July 24, 2026 09:16
@rust-timer

Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#159765 Avoid spurious rebuilds of JSON docs in bootstrap 80c4878bc8efffd33362573912b0335cc226b3f2 (link)
#159781 Update bootstrap to use -Zembed-metadata=no instead of -Zno… 501efcb4b9f716155d838598019f995a568211a8 (link)
#158362 trait solver: account for universes from replace_bound_vars 84a41169e65d9c7b76b11d79591ce851d4c3c416 (link)
#158372 rustfmt: Discover modules via cfg_select! e28ca7a4edecf8b4c0ce0e58ffb536d1069a8d90 (link)
#159173 Add allowed list check on EII implementations attributes 7d7af34f72804840da3cf5cb894a210e59f0d757 (link)
#159718 Make DocLinkResMap an FxIndexMap 2444111f11dd79487648d7c74cb5e514cdfd63b3 (link)
#159722 [rustdoc] Retrieve cfg_attr information for derived impl… eeb3517da45d06066d05000d13b7f91442b2c1d3 (link)
#159731 std: Implement futex on wasip3 targets, update target spec ed1c12fdeb7b0de17b0ef87f955e1454e3a60004 (link)
#159755 Improve consistency of attribute error messages 33aac84db2acd06923095baa37e183c08afa133d (link)
#155795 constify vec![1, 2, 3] macro 9eaa43a5855e0909f9a5b2a2b8054530c681ce2f (link)
#157776 ci: Enable autodiff tests on x86_64 linux adf3cc3625d104312ad54932293fed6f54f5e8a7 (link)
#158766 Promote riscv64-unknown-linux-musl to tier 2 with host tools 4271fb68867f9394c3f804f477b1437564715f56 (link)
#159271 str: add ASCII fast path to word_to_titlecase b5382c45b65edca0b96304c671203ded9b447914 (link)
#159667 Make some parser structured suggestions verbose and tweak t… d69985004e1056a30da670abdd0ee356080b40fd (link)

previous master: 1498f9968f

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 (29e68fe): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

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

Max RSS (memory usage)

Results (secondary -2.2%)

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.3% [2.3%, 2.3%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-6.6% [-6.6%, -6.6%] 1
All ❌✅ (primary) - - 0

Cycles

Results (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)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.4% [-2.7%, -2.0%] 2
All ❌✅ (primary) - - 0

Binary size

Results (primary 0.1%, secondary 0.0%)

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

mean range count
Regressions ❌
(primary)
0.1% [0.0%, 0.5%] 40
Regressions ❌
(secondary)
0.0% [0.0%, 0.3%] 16
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.1% [0.0%, 0.5%] 40

Bootstrap: 486.272s -> 488.104s (0.38%)
Artifact size: 387.67 MiB -> 387.69 MiB (0.00%)

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-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 merged-by-bors This PR was explicitly merged by bors. O-wasi Operating system: Wasi, Webassembly System Interface 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.