Skip to content

Rollup of 10 pull requests #141605

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 23 commits into from
May 26, 2025
Merged

Rollup of 10 pull requests #141605

merged 23 commits into from
May 26, 2025

Conversation

jieyouxu
Copy link
Member

@jieyouxu jieyouxu commented May 26, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

compiler-errors and others added 23 commits May 23, 2025 10:43
Signed-off-by: onur-ozkan <work@onurozkan.dev>
Signed-off-by: onur-ozkan <work@onurozkan.dev>
minor improvements on running miri

It should be clear from the commit messages when reviewing them one by one.
…lcnr

Avoid obligation construction dance with query region constraints

And some renaming...
Emit dummy open drop for unsafe binder

Fixes rust-lang#141394

We can't taint the body in wfcheck when we have a `T: Copy` bound failure, so we end up binding MIR here. Emit a dummy open drop so that drop elaboration doesn't fail.

r? oli-obk
…ures, r=oli-obk

Properly analyze captures from unsafe binders

We need to represent the unsafe binder unwrap as an adjustment in HIR. Pretty straightforward b/c we already represent it as a projection elem in MIR.

Fixes rust-lang#141418
Fixes rust-lang#141417

r? oli-obk
…rce, r=oli-obk

Deduplicate dyn compatibility violations due to coercion

Don't unnecessarily emit dyn compatibility violations due to coercion to a non-dyn-compatible target type.

For us to even have that target type, we would have had to write `dyn Trait` somewhere in source, and that would have led to us *already* emitting a dyn compatibility violation when checking that user written type is WF.

r? oli-obk
…k, r=oli-obk

further deduplicate ast visitor code

Previous PR: rust-lang#141249

Tracking issue: rust-lang#127615

r? `@oli-obk`
interpret: add allocation parameters to `AllocBytes`

Necessary for a better implementation of [rust-lang/miri#4343](rust-lang/miri#4343). Also included here is the code from that PR, adapted to this new interface for the sake of example and so that CI can run on them; the Miri changes can be reverted and merged separately, though.

r? `@RalfJung`
speed up charsearcher for ascii chars

attempt at fixing rust-lang#82471

this implementation should be valid because ascii characters are always one byte and there are no continuation bytes that overlap with ascii characters

im not completely sure that this is _always_ an improvement but it seems to be an improvement for this case and i dont think it can significantly regress any cases
add a dedicated section for compiler environment variables in the unstable book

rendered: ![image](https://github.com/user-attachments/assets/dcb6e2a3-2e2d-43bb-8f45-79715705bf45)

fixes rust-lang#141523
…ukang

Fix `unused_braces` lint suggestion when encountering attributes

This PR fixes the `unused_braces` lint suggestion when encountering attributes by not removing them in the suggestion.

Fixes rust-lang#141549
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. rollup A PR which is a rollup labels May 26, 2025
@jieyouxu
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented May 26, 2025

📌 Commit bca4279 has been approved by jieyouxu

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

bors commented May 26, 2025

⌛ Testing commit bca4279 with merge 2805e1d...

@bors
Copy link
Collaborator

bors commented May 26, 2025

☀️ Test successful - checks-actions
Approved by: jieyouxu
Pushing 2805e1d to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label May 26, 2025
@bors bors merged commit 2805e1d into rust-lang:master May 26, 2025
8 checks passed
@rustbot rustbot added this to the 1.89.0 milestone May 26, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#140898 minor improvements on running miri 73feaa4e3e4ddc29437cc3334d753ba0a7f28f67 (link)
#141392 Avoid obligation construction dance with query region const… d95d98fc89dab587c26eb0df402cb6d7d390b1f0 (link)
#141431 Emit dummy open drop for unsafe binder f58ba8befd8f36c506ee7f63437c107de93378ca (link)
#141433 Properly analyze captures from unsafe binders 74baaf28a0f155f2621985c6ef853dd10331b783 (link)
#141439 Deduplicate dyn compatibility violations due to coercion d46b6e75570ca04015eccfab85bcf2b8bb714f09 (link)
#141449 further deduplicate ast visitor code 5ccb6f05110c743f083f3f4d0baecd32842d3ef7 (link)
#141513 interpret: add allocation parameters to AllocBytes e6be81cb3eec346d3453f9523aa7c2eb8027efe3 (link)
#141516 speed up charsearcher for ascii chars 0c48358b06910a94661be45cbadff125c3993670 (link)
#141526 add a dedicated section for compiler environment variables … e2b71fb52e8ffd0988de9998746020dbbb419a54 (link)
#141550 Fix unused_braces lint suggestion when encountering attri… cb18f2a8bf9bf457fed8d3486b3aec278f1064ad (link)

previous master: 40d2563ea2

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

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 40d2563 (parent) -> 2805e1d (this PR)

Test differences

Show 68 test diffs

Stage 1

  • [ui] tests/ui/lint/unused/unused-braces-attrs-issue-141549.rs: [missing] -> pass (J1)
  • [ui] tests/ui/unsafe-binders/cat-projection.rs: [missing] -> pass (J1)
  • [ui] tests/ui/unsafe/move-out-of-non-copy.rs: [missing] -> pass (J1)

Stage 2

  • [ui] tests/ui/lint/unused/unused-braces-attrs-issue-141549.rs: [missing] -> pass (J0)
  • [ui] tests/ui/unsafe-binders/cat-projection.rs: [missing] -> pass (J0)
  • [ui] tests/ui/unsafe/move-out-of-non-copy.rs: [missing] -> pass (J0)

Additionally, 62 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 2805e1dc4c18ed4c84d161502c48da870c56f68a --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-apple-various: 5893.0s -> 6837.0s (16.0%)
  2. x86_64-mingw-1: 8777.7s -> 9421.8s (7.3%)
  3. dist-x86_64-musl: 7756.6s -> 7258.9s (-6.4%)
  4. aarch64-gnu: 7655.1s -> 8134.0s (6.3%)
  5. dist-i686-mingw: 7949.1s -> 8439.2s (6.2%)
  6. dist-armhf-linux: 5268.1s -> 4960.8s (-5.8%)
  7. dist-aarch64-linux: 5648.9s -> 5327.3s (-5.7%)
  8. x86_64-apple-2: 4830.9s -> 5102.8s (5.6%)
  9. x86_64-msvc-ext1: 6954.9s -> 7325.1s (5.3%)
  10. aarch64-apple: 4125.6s -> 4340.2s (5.2%)
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

Finished benchmarking commit (2805e1d): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

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

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)
1.3% [0.1%, 7.8%] 37
Regressions ❌
(secondary)
1.3% [0.2%, 2.6%] 26
Improvements ✅
(primary)
-1.1% [-1.8%, -0.5%] 2
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 1.2% [-1.8%, 7.8%] 39

Max RSS (memory usage)

Results (primary -1.9%, secondary -3.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)
3.2% [2.4%, 4.0%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-5.3% [-8.4%, -3.2%] 3
Improvements ✅
(secondary)
-3.3% [-4.6%, -2.1%] 2
All ❌✅ (primary) -1.9% [-8.4%, 4.0%] 5

Cycles

Results (primary 2.2%)

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)
2.2% [1.1%, 3.8%] 3
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.2% [1.1%, 3.8%] 3

Binary size

Results (primary -0.0%, secondary -0.2%)

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.2% [0.0%, 1.0%] 7
Regressions ❌
(secondary)
0.1% [0.1%, 0.1%] 1
Improvements ✅
(primary)
-0.2% [-0.7%, -0.0%] 12
Improvements ✅
(secondary)
-0.2% [-0.4%, -0.1%] 38
All ❌✅ (primary) -0.0% [-0.7%, 1.0%] 19

Bootstrap: 778.13s -> 778.675s (0.07%)
Artifact size: 366.42 MiB -> 366.38 MiB (-0.01%)

@Kobzol
Copy link
Contributor

Kobzol commented May 27, 2025

Started a bunch of perf. runs.

@lqd
Copy link
Member

lqd commented May 27, 2025

Yeah pretty weird. Unsafe binders shouldn't be applicable to doc benchmarks, I presume. We'll see what happens. It'd probably be faster to check regex-automata locally.

@Kobzol
Copy link
Contributor

Kobzol commented May 27, 2025

Crap, the unrolled builds are broken due to the recent rust-lang-ci migration. Will try to fix.

@Kobzol
Copy link
Contributor

Kobzol commented May 28, 2025

Restarted all the failed try builds. Once they finish, we should be able to restart the perf. runs.

@Kobzol
Copy link
Contributor

Kobzol commented May 28, 2025

Hmm, looks like it won't be that easy, the builds are somehow cached and they still fail :/ I'll try to revert & perf. test some of the PRs.

bors added a commit that referenced this pull request May 28, 2025
[do not merge] Revert "increase perf of charsearcher for single ascii characters"

This reverts commit 245bf50.

Trying for perf, because unrolling individual PRs failed in #141605.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. 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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.