Skip to content

Rollup of 19 pull requests #145701

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 46 commits into from
Aug 21, 2025
Merged

Rollup of 19 pull requests #145701

merged 46 commits into from
Aug 21, 2025

Conversation

jhpratt
Copy link
Member

@jhpratt jhpratt commented Aug 21, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

fee1-dead and others added 30 commits July 3, 2025 23:43
Add a few links to the collections mentioned in the module doc for Collections.
Just like we implemented relatively complex rules to imply other extensions
**from** "C" (and some others), this commit implements implication
**to** the "C" extension from others, complying the following text
in the ISA Manual (although there's no direct imply/depend references).

> The C extension is the superset of the following extensions:
>
> - Zca
> - Zcf if F is specified (RV32 only)
> - Zcd if D is specified

This is formally verified so that no other extension combinations
(*not* in this implementation) can (currently) imply the "C" extension.
`ModKind::Loaded` has an `inline` field and a `had_parse_error` field.
If the `inline` field is `Inline::Yes` then `had_parse_error` must be
`Ok(())`.

This commit moves the `had_parse_error` field into the `Inline::No`
variant. This makes it impossible to create the nonsensical combination
of `inline == Inline::Yes` and `had_parse_error = Err(_)`.
…egen-backend` and `--override-codegen-backend`
…t while proving a where-clause

Signed-off-by: xizheyin <[email protected]>
The return type is correct in the source code but incorrect in the docstring
`rustc_errors` depends on numerous crates, solely to implement its
`IntoDiagArg` trait on types from those crates. Many crates depend on
`rustc_errors`, and it's on the critical path.

We can't swap things around to make all of those crates depend on
`rustc_errors` instead, because `rustc_errors` would end up in
dependency cycles.

Instead, move `IntoDiagArg` into `rustc_error_messages`, which has far
fewer dependencies, and then have most of these crates depend on
`rustc_error_messages`.

This allows `rustc_errors` to drop dependencies on several crates,
including the large `rustc_target`.

(This doesn't fully reduce dependency chains yet, as `rustc_errors`
still depends on `rustc_hir` which depends on `rustc_target`. That will
get fixed in a subsequent commit.)
Some crates depend on `rustc_hir` but only want `HirId` and similar id
types. `rustc_hir` is a heavy dependency, since it pulls in
`rustc_target`. Split these types out into their own crate
`rustc_hir_id`.

This allows `rustc_errors` to drop its direct dependency on `rustc_hir`.

(`rustc_errors` still depends on `rustc_hir` indirectly through
`rustc_lint_defs`; a subsequent commit will fix that.)
`rustc_lint_defs` uses `rustc_hir` solely for the `Namespace` type,
which it only needs the static description from. Use the static
description directly, to eliminate the dependency on `rustc_hir`.

This reduces a long dependency chain:
- Many things depend on `rustc_errors`
- `rustc_errors` depends on `rustc_lint_defs`
- `rustc_lint_defs` depended on `rustc_hir` prior to this commit
- `rustc_hir` depends on `rustc_target`
…hir`

`rustc_mir_dataflow` only uses `DefId`, which is a re-export from
`rustc_span`.
`rustc_traits` only uses `DefId`, which is a re-export from
`rustc_span`.
…y, r=dtolnay

stabilize `const_array_each_ref`

cc rust-lang#133289, needs FCP.
[Doc] Add links to the various collections

Add a few links to the collections mentioned in the module doc for Collections.
…quality, r=WaffleLapkin,lcnr

Defer tail call ret ty equality to check_tail_calls

Fixes rust-lang#144892.

Currently the tail call signature check assumes that return types have been accounted for. However, this is not complete for several reasons.

Firstly, we were using subtyping instead of equality in the HIR typeck code:

https://github.com/rust-lang/rust/blob/e1b9081e699065badfc1a9419ec9566e5c8615c4/compiler/rustc_hir_typeck/src/expr.rs#L1096

We could fix this, but it doesn't really do much for us anyways since HIR typeck doesn't care about regions.

That means, secondly, we'd need to fix the terminator type check in MIR typeck to account for variances, since tail call terminators need to relate their arguments invariantly to account for the "signature must be equal" rule. This seems annoying.

All of this seems like a lot of work, and we already are *manually* checking argument equality. Let's just extend the `check_tail_calls` to account for mismatches in return types anyways.

r? ``````@WaffleLapkin``````
@rustbot rustbot added F-explicit_tail_calls `#![feature(explicit_tail_calls)]` 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-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-release Relevant to the release subteam, 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. rollup A PR which is a rollup labels Aug 21, 2025
@jhpratt
Copy link
Member Author

jhpratt commented Aug 21, 2025

@bors r+ rollup=never p=5

@bors2 try jobs=test-various

@bors
Copy link
Collaborator

bors commented Aug 21, 2025

📌 Commit 49eb781 has been approved by jhpratt

It is now in the queue for this repository.

@rust-bors

This comment has been minimized.

@bors bors 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 Aug 21, 2025
rust-bors bot added a commit that referenced this pull request Aug 21, 2025
Rollup of 19 pull requests

try-job: test-various
@rust-bors
Copy link

rust-bors bot commented Aug 21, 2025

☀️ Try build successful (CI)
Build commit: e9213c1 (e9213c194ef0027279fe70d6c953e71dd87daf86, parent: 125ff8a788c5d6a66917f499abdc00051afe6886)

@bors
Copy link
Collaborator

bors commented Aug 21, 2025

⌛ Testing commit 49eb781 with merge 57e620e...

@bors
Copy link
Collaborator

bors commented Aug 21, 2025

☀️ Test successful - checks-actions
Approved by: jhpratt
Pushing 57e620e to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Aug 21, 2025
@bors bors merged commit 57e620e into rust-lang:master Aug 21, 2025
12 checks passed
@rustbot rustbot added this to the 1.91.0 milestone Aug 21, 2025
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 922958c (parent) -> 57e620e (this PR)

Test differences

Show 51 test diffs

Stage 1

  • [ui] tests/ui/explicit-tail-calls/ret-ty-hr-mismatch.rs: [missing] -> pass (J0)
  • [ui] tests/ui/explicit-tail-calls/ret-ty-modulo-anonymization.rs: [missing] -> pass (J0)
  • [ui] tests/ui/trait-bounds/trait-bound-adt-issue-145611.rs: [missing] -> pass (J0)
  • [ui] tests/ui/traits/const-traits/const-supertraits-dyn-compat.rs: [missing] -> pass (J0)
  • errors::verify_ast_passes_abi_x86_interrupt_64: [missing] -> pass (J2)

Stage 2

  • [ui] tests/ui/explicit-tail-calls/ret-ty-hr-mismatch.rs: [missing] -> pass (J1)
  • [ui] tests/ui/explicit-tail-calls/ret-ty-modulo-anonymization.rs: [missing] -> pass (J1)
  • [ui] tests/ui/trait-bounds/trait-bound-adt-issue-145611.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/const-traits/const-supertraits-dyn-compat.rs: [missing] -> pass (J1)

Additionally, 42 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 57e620e56b718abaf47f18e1e20a3cc3480b258b --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-x86_64-apple: 7021.6s -> 8863.5s (26.2%)
  2. aarch64-apple: 5662.9s -> 6840.1s (20.8%)
  3. pr-check-1: 1476.7s -> 1731.8s (17.3%)
  4. dist-aarch64-msvc: 5518.5s -> 6088.2s (10.3%)
  5. pr-check-2: 2181.1s -> 2356.6s (8.0%)
  6. tidy: 192.0s -> 177.6s (-7.5%)
  7. dist-x86_64-solaris: 5240.7s -> 5582.3s (6.5%)
  8. dist-various-1: 3841.0s -> 4058.6s (5.7%)
  9. aarch64-gnu-llvm-19-2: 2410.9s -> 2541.0s (5.4%)
  10. x86_64-gnu-llvm-19-3: 7275.6s -> 6885.5s (-5.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

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#143383 stabilize const_array_each_ref 3be038408ed1b40998e17f9caddc23f4a49e9f6c (link)
#144758 [Doc] Add links to the various collections fe4b1c8cbb2cb1abab8ac4a0dd115d4d21c7f2af (link)
#144915 Defer tail call ret ty equality to check_tail_calls b36f2a3d4e611779ed4d8a848c929b31da6279a4 (link)
#145256 Add new --test-codegen-backend bootstrap option 4142b30ced097e41462e2b80159cd4f4820e9a81 (link)
#145297 fix(debuginfo): handle false positives in overflow check 6f36a0f77bc691e95c1b7201f7d30efcae316c45 (link)
#145390 Shorten some dependency chains in the compiler 5027d84d2b7aac4efa9e298a505b091d453d653f (link)
#145415 std_detect: RISC-V: implement implication to "C" 54e8fe5199ce73efefc0a395cf2e2bb6fc8c017d (link)
#145525 stdlib: Replace typedef -> type alias in doc comment 34be92bb001d7bc1b6f91ad1ffd468887da40a6b (link)
#145590 Prevent impossible combinations in ast::ModKind. e63a6a41d9c8847eae070536054b2b972098c3d9 (link)
#145593 UnsafePinned::raw_get: sync signature with get 073acff0087a9302169b20b30800937763a8fd0f (link)
#145621 Fix some doc typos f5bae708ae790ec7f35f7399b2314544bdff713d (link)
#145627 Unconditionally-const supertraits are considered not dyn co… df1a2c94f388ad28cb95a3d4d3bc9e65b4850662 (link)
#145642 Do not use effective_visibilities query for Adt types of a … 289fbfc4e19cff2cc9db4839adf3316e7381de32 (link)
#145650 Fix JS search scripts path 2bbb5c033eee7ce82c15d177c66b96e23aca99f8 (link)
#145654 Download CI GCC into the correct directory 450dfac9acac411b0b31001987872f11c1b867fe (link)
#145662 Enforce correct number of arguments for "x86-interrupt" f… 9895970bd0947e18e3719e9f5ab323876e594c5e (link)
#145673 Add flock support for cygwin 3f732f0ad0e069a71d96e15a15e11a7a75987f20 (link)
#145674 Enable triagebot [review-changes-since] feature a13783858bcc8952c3f6044f8d86c4df195a8b2a (link)
#145678 Fix typo in docstring 7892b70c07662faa13af977e450d0e52eed60b67 (link)

previous master: 922958cffe

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
Collaborator

Finished benchmarking commit (57e620e): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

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

Max RSS (memory usage)

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

Cycles

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

Binary size

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

Bootstrap: 471.588s -> 469.9s (-0.36%)
Artifact size: 378.39 MiB -> 378.22 MiB (-0.05%)

@jhpratt jhpratt deleted the rollup-a0kg33p branch August 21, 2025 14:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-attributes Area: Attributes (`#[…]`, `#![…]`) A-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-rustdoc-search Area: Rustdoc's search feature A-testsuite Area: The testsuite used to check the correctness of rustc A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic F-explicit_tail_calls `#![feature(explicit_tail_calls)]` merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 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-release Relevant to the release subteam, 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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.