Skip to content

Rollup of 8 pull requests #140818

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 19 commits into from
May 9, 2025
Merged

Rollup of 8 pull requests #140818

merged 19 commits into from
May 9, 2025

Conversation

matthiaskrgr
Copy link
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

nnethercote and others added 19 commits May 7, 2025 12:56
To get rid of the `Ident::empty` uses.

This requires introducing `PathParser::word_sym`, as an alternative to
`PathParser::word`.
By using `@` patterns more.

Also, use `Symbol` more in a couple of errors to avoid some unnecessary
conversions to strings. This even removes a lifetime.
And note that the same limitation applies to all LLVM-based compilers

Co-authored-by: Ralf Jung <[email protected]>
…onszelmann

Eliminate `word_and_empty` methods.

To remove the last remaining `Ident::empty` uses.

r? `@jdonszelmann`
…ulacrum

Clarify black_box warning a bit

Trying to bring the docs on black_box more in line with the advice that we have discussed in Zulip.

rust-lang#140341 (comment)
… r=lcnr

Only include `dyn Trait<Assoc = ...>` associated type bounds for `Self: Sized` associated types if they are provided

Since rust-lang#136458, we began filtering out associated types with `Self: Sized` bounds when constructing the list of associated type bounds to put into our `dyn Trait` types. For example, given:

```rust
trait Trait {
    type Assoc where Self: Sized;
}
```

After rust-lang#136458, even if a user writes `dyn Trait<Assoc = ()>`, the lowered ty would have an empty projection list, and thus be equivalent to `dyn Trait`. However, this has the side effect of no longer constraining any types in the RHS of `Assoc = ...`, not implying any WF implied bounds, and not requiring that they hold when unsizing.

After this PR, we include these bounds, but (still) do not require that they are provided. If the are not provided, they are skipped from the projections list.

This results in `dyn Trait` types that have differing numbers of projection bounds. This will lead to re-introducing type mismatches e.g. between `dyn Trait` and `dyn Trait<Assoc = ()>`. However, this is expected and doesn't suffer from any of the deduplication unsoundness from before rust-lang#136458.

We may want to begin to ignore thse bounds in the future by bumping `unused_associated_type_bounds` to an FCW. I don't want to tangle that up into the fix that was originally intended in rust-lang#136458, so I'm doing a "fix-forward" in this PR and deferring thinking about this for the future.

Fixes rust-lang#140645

r? lcnr
…orm, r=lcnr

Structurally normalize in range pattern checking in HIR typeck

Fixes rust-lang/trait-system-refactor-initiative#200

r? lcnr
…=jieyouxu

Improve `-Zremap-path-scope` tests with dependency

This PR greatly improves our coverage of `-Zremap-path-scope` for diagnostic paths and macros with dependencies.

r? `@jieyouxu` (since we talked about it)

try-job: x86_64-msvc-1
…oval, r=jieyouxu

Make `rustdoc-tempdir-removal` run-make tests work on other platforms than linux

Follow-up of rust-lang#140706.

r? `@jieyouxu`
…lbini

Add release notes for 1.87.0

Originally drafted in rust-lang#140133

cc `@rust-lang/release`

r? `@pietroalbani` as you're running the release
Enable triagebot note functionality for rust-lang/rust

Docs: <https://forge.rust-lang.org/triagebot/note.html>.

r? `@Urgau`
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs 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-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. rollup A PR which is a rollup labels May 8, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@matthiaskrgr matthiaskrgr reopened this May 8, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented May 8, 2025

📌 Commit 4e4d6ad has been approved by matthiaskrgr

It is now in the queue for this repository.

@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 May 8, 2025
@bors
Copy link
Collaborator

bors commented May 8, 2025

⌛ Testing commit 4e4d6ad with merge 667247d...

@bors
Copy link
Collaborator

bors commented May 9, 2025

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing 667247d to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label May 9, 2025
@bors bors merged commit 667247d into rust-lang:master May 9, 2025
7 of 10 checks passed
@rustbot rustbot added this to the 1.88.0 milestone May 9, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#140095 Eliminate word_and_empty methods. a6a46d0928e67a7497c76f96694cb21c798b7731 (link)
#140341 Clarify black_box warning a bit aa157ee839dadde7a94a96e6f2913a21651cc231 (link)
#140684 Only include dyn Trait<Assoc = ...> associated type bound… 9ceb477abf2dcc18787b59bb4b9bc8c74cbf8a28 (link)
#140707 Structurally normalize in range pattern checking in HIR typ… 2b30699af3efbe338c6f0cd62ccefc4d7c365f21 (link)
#140716 Improve -Zremap-path-scope tests with dependency c6420c645aef40a59c370a462548bc436b254205 (link)
#140800 Make rustdoc-tempdir-removal run-make tests work on other… 21abac70dff3c179682293e623241d9445f8d2d5 (link)
#140802 Add release notes for 1.87.0 4d765435e75bfd699ec91f79f639675f99dd4c6a (link)
#140811 Enable triagebot note functionality for rust-lang/rust e23f68354d5b33d351c4dab25e99a051a3a6124e (link)

previous master: 50aa041807

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

Copy link

github-actions bot commented May 9, 2025

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 50aa041 (parent) -> 667247d (this PR)

Test differences

Show 107 test diffs

Stage 1

  • [ui] tests/ui/errors/remap-path-prefix-diagnostics.rs#not-diag-in-deps: [missing] -> pass (J1)
  • [ui] tests/ui/errors/remap-path-prefix-diagnostics.rs#only-debuginfo-in-deps: [missing] -> pass (J1)
  • [ui] tests/ui/errors/remap-path-prefix-diagnostics.rs#only-diag-in-deps: [missing] -> pass (J1)
  • [ui] tests/ui/errors/remap-path-prefix-diagnostics.rs#only-macro-in-deps: [missing] -> pass (J1)
  • [ui] tests/ui/errors/remap-path-prefix-diagnostics.rs#with-debuginfo-in-deps: [missing] -> pass (J1)
  • [ui] tests/ui/errors/remap-path-prefix-diagnostics.rs#with-diag-in-deps: [missing] -> pass (J1)
  • [ui] tests/ui/errors/remap-path-prefix-diagnostics.rs#with-macro-in-deps: [missing] -> pass (J1)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#normal: pass -> [missing] (J1)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#not-macro-in-deps: [missing] -> pass (J1)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#only-debuginfo-in-deps: [missing] -> pass (J1)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#only-diag-in-deps: [missing] -> pass (J1)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#only-macro-in-deps: [missing] -> pass (J1)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#with-debuginfo-in-deps: [missing] -> pass (J1)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#with-diag-in-deps: [missing] -> pass (J1)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#with-macro-in-deps: [missing] -> pass (J1)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#with-macro-scope: pass -> [missing] (J1)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#without-macro-scope: pass -> [missing] (J1)
  • [ui] tests/ui/pattern/normalize-ty-in-range.rs#current: [missing] -> pass (J1)
  • [ui] tests/ui/pattern/normalize-ty-in-range.rs#next: [missing] -> pass (J1)
  • [ui] tests/ui/traits/object/constrain-via-unnecessary-bound.rs: [missing] -> pass (J1)

Stage 2

  • [ui] tests/ui/errors/remap-path-prefix-diagnostics.rs#not-diag-in-deps: [missing] -> pass (J0)
  • [ui] tests/ui/errors/remap-path-prefix-diagnostics.rs#only-debuginfo-in-deps: [missing] -> pass (J0)
  • [ui] tests/ui/errors/remap-path-prefix-diagnostics.rs#only-diag-in-deps: [missing] -> pass (J0)
  • [ui] tests/ui/errors/remap-path-prefix-diagnostics.rs#only-macro-in-deps: [missing] -> pass (J0)
  • [ui] tests/ui/errors/remap-path-prefix-diagnostics.rs#with-debuginfo-in-deps: [missing] -> pass (J0)
  • [ui] tests/ui/errors/remap-path-prefix-diagnostics.rs#with-diag-in-deps: [missing] -> pass (J0)
  • [ui] tests/ui/errors/remap-path-prefix-diagnostics.rs#with-macro-in-deps: [missing] -> pass (J0)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#normal: pass -> [missing] (J0)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#not-macro-in-deps: [missing] -> pass (J0)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#only-debuginfo-in-deps: [missing] -> pass (J0)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#only-diag-in-deps: [missing] -> pass (J0)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#only-macro-in-deps: [missing] -> pass (J0)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#with-debuginfo-in-deps: [missing] -> pass (J0)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#with-diag-in-deps: [missing] -> pass (J0)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#with-macro-in-deps: [missing] -> pass (J0)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#with-macro-scope: pass -> [missing] (J0)
  • [ui] tests/ui/errors/remap-path-prefix-macro.rs#without-macro-scope: pass -> [missing] (J0)
  • [ui] tests/ui/pattern/normalize-ty-in-range.rs#current: [missing] -> pass (J0)
  • [ui] tests/ui/pattern/normalize-ty-in-range.rs#next: [missing] -> pass (J0)
  • [ui] tests/ui/traits/object/constrain-via-unnecessary-bound.rs: [missing] -> pass (J0)
  • [run-make] tests/run-make/rustdoc-tempdir-removal: ignore (only executed when the operating system is linux) -> ignore (ignored when cross-compiling) (J2)
  • [run-make] tests/run-make/rustdoc-tempdir-removal: ignore (only executed when the operating system is linux) -> pass (J3)
  • [run-make] tests/run-make/rustdoc-tempdir-removal: pass -> ignore (ignored when cross-compiling) (J4)

Additionally, 64 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 667247db71ea18c4130dd018d060e7f09d589490 --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-apple-2: 4299.7s -> 5691.9s (32.4%)
  2. dist-apple-various: 5720.6s -> 7341.5s (28.3%)
  3. dist-x86_64-apple: 10067.5s -> 8512.9s (-15.4%)
  4. dist-aarch64-apple: 5274.9s -> 4681.1s (-11.3%)
  5. x86_64-gnu-distcheck: 4362.8s -> 4827.7s (10.7%)
  6. x86_64-apple-1: 7902.4s -> 7275.7s (-7.9%)
  7. dist-x86_64-mingw: 8086.1s -> 7549.0s (-6.6%)
  8. x86_64-gnu-llvm-19-1: 5259.3s -> 5602.0s (6.5%)
  9. aarch64-apple: 4258.8s -> 3993.4s (-6.2%)
  10. dist-powerpc64-linux: 5728.7s -> 5421.2s (-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.

@bors bors mentioned this pull request May 9, 2025
@rust-timer
Copy link
Collaborator

Finished benchmarking commit (667247d): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.5% [-0.6%, -0.4%] 2
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -1.1%, secondary 0.3%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
0.8% [0.6%, 0.9%] 2
Regressions ❌
(secondary)
2.2% [0.9%, 4.3%] 3
Improvements ✅
(primary)
-1.6% [-8.5%, -0.4%] 8
Improvements ✅
(secondary)
-5.6% [-5.6%, -5.6%] 1
All ❌✅ (primary) -1.1% [-8.5%, 0.9%] 10

Cycles

Results (primary 1.9%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

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

Binary size

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

Bootstrap: 772.168s -> 771.655s (-0.07%)
Artifact size: 365.28 MiB -> 365.39 MiB (0.03%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-attributes Area: Attributes (`#[…]`, `#![…]`) A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs 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-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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.