Skip to content

Rollup of 9 pull requests #140726

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

Rollup of 9 pull requests #140726

merged 22 commits into from
May 7, 2025

Conversation

jhpratt
Copy link
Member

@jhpratt jhpratt commented May 7, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

RalfJung and others added 22 commits December 13, 2024 19:16
`wrapped_add` is used, not `checked_add`
The Fuchsia bindings are currently spread out across multiple modules in `sys/pal/unix` leading to unnecessary duplication. This PR moves all of these definitions into `sys::pal::unix::fuchsia` and additionally:
* deduplicates the definitions
* makes the error names consistent
* marks some extern functions as safe
* removes unused items (there's no need to maintain these bindings if we're not going to use them)
* removes the documentation for the definitions (contributors should always consult the platform documentation, duplicating that here is just an extra maintenance burden)
Tracking issue: rust-lang#140667

Signed-off-by: Vladimir Krivopalov <[email protected]>
Update comment per review feedback
…aheemdev,traviscross

de-stabilize bench attribute

This has been soft-unstable since forever (rust-lang#64066), and shown in future-compat reports since Rust 1.77 (rust-lang#116274).

The feature covering `bench` itself is tracked in rust-lang#50297, which has been closed despite still having active feature gates referencing it.

Cc `@rust-lang/libs-api`
…ature-addition, r=workingjubilee

Added support for `apxf` target feature
Move `in_external_macro` to `SyntaxContext`

There are a few places in clippy where spans are passed solely to use the context, but we can't pass just the context around because of this function.
Comment on `Rc` abort-guard strategy without naming unrelated fn

`wrapped_add` is used, not `checked_add`, so avoid mentioning specific fn calls that may vary slightly based on "whatever produces the best code" and focus on things that will remain constant into the future.
…er-errors

support duplicate entries in the opaque_type_storage

Necessary for the new solver as we may unify keys when eagerly resolving for canonical queries. See the relevant comment when instantiating query responses:
```rust
            // We eagerly resolve inference variables when computing the query response.
            // This can cause previously distinct opaque type keys to now be structurally equal.
            //
            // To handle this, we store any duplicate entries in a separate list to check them
            // at the end of typeck/borrowck. We could alternatively eagerly equate the hidden
            // types here. However, doing so is difficult as it may result in nested goals and
            // any errors may make it harder to track the control flow for diagnostics.
            if let Some(prev) = prev {
                self.delegate.add_duplicate_opaque_type(key, prev, self.origin_span);
            }
```

This will be far more relevant with rust-lang#140497.

r? `@compiler-errors`
collect all Fuchsia bindings into the `fuchsia` module

The Fuchsia bindings are currently spread out across multiple modules in `sys/pal/unix` leading to unnecessary duplication. This PR moves all of these definitions into `sys::pal::unix::fuchsia` and additionally:
* deduplicates the definitions
* makes the error names consistent
* marks `zx_thread_self` and `zx_clock_get_monotonic` as safe extern functions
* removes unused items (there's no need to maintain these bindings if we're not going to use them)
* removes the documentation for the definitions (contributors should always consult the platform documentation, duplicating that here is just an extra maintenance burden)

`@rustbot` ping fuchsia
…t, r=jhpratt

Implement `VecDeque::truncate_front()`

Tracking issue: rust-lang#140667
…r=GuillaumeGomez

rustdoc: remove unportable markdown lint and old parser

Follow up rust-lang#127127
…lcnr

Structurally resolve in `check_ref_cast` in new solver

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

r? lcnr
@rustbot rustbot added O-unix Operating system: Unix-like 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-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) rollup A PR which is a rollup labels May 7, 2025
@jhpratt
Copy link
Member Author

jhpratt commented May 7, 2025

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented May 7, 2025

📌 Commit 3d8ef7a has been approved by jhpratt

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

bors commented May 7, 2025

⌛ Testing commit 3d8ef7a with merge 891b852...

@bors
Copy link
Collaborator

bors commented May 7, 2025

☀️ Test successful - checks-actions
Approved by: jhpratt
Pushing 891b852 to master...

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

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#134273 de-stabilize bench attribute a5e15975f9319774f93bcc524f26ebf339cc7e2d (link)
#139534 Added support for apxf target feature e372e179f4ec6cd042b10dce0a1e0b7a88b21049 (link)
#140419 Move in_external_macro to SyntaxContext 6cdc8d78a3d243a56a81bcb0c9f7ef901fe62f49 (link)
#140483 Comment on Rc abort-guard strategy without naming unrelat… e6c877bd48b7b5d843e732eb99500b249b2b77e1 (link)
#140607 support duplicate entries in the opaque_type_storage 0a6000f97ae5915601c18e1deb7b60b742c8ed3f (link)
#140656 collect all Fuchsia bindings into the fuchsia module 519435227efde842cb81920fea669c65b077e177 (link)
#140668 Implement VecDeque::truncate_front() c2708e01fd6fc6cb9fc0208ce1f8c96f2d6ac585 (link)
#140709 rustdoc: remove unportable markdown lint and old parser acfb7d3503a13a668cd0256c44ea34bf502ff903 (link)
#140713 Structurally resolve in check_ref_cast in new solver 2323872624311c5e15ecf676b7ed55cf0a51a213 (link)

previous master: 669c1ab967

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 7, 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 669c1ab (parent) -> 891b852 (this PR)

Test differences

Show 356 test diffs

Stage 0

  • vec_deque::test_truncate_front: [missing] -> pass (J0)
  • vec_deque::truncate_front_leak: [missing] -> pass (J0)

Stage 1

  • vec_deque::test_truncate_front: [missing] -> pass (J1)
  • vec_deque::truncate_front_leak: [missing] -> pass (J1)
  • [ui] tests/rustdoc-ui/unportable-markdown.rs: pass -> [missing] (J4)
  • [ui] tests/ui/cast/cast-alias-of-array-to-element.rs#current: [missing] -> pass (J4)
  • [ui] tests/ui/cast/cast-alias-of-array-to-element.rs#next: [missing] -> pass (J4)
  • [ui] tests/ui/feature-gates/feature-gate-apx-target-feature.rs: [missing] -> pass (J4)
  • [ui] tests/ui/traits/next-solver/opaques/duplicate-opaque-type-entries.rs#current: [missing] -> pass (J4)
  • [ui] tests/ui/traits/next-solver/opaques/duplicate-opaque-type-entries.rs#next: [missing] -> pass (J4)

Stage 2

  • [ui] tests/ui/feature-gates/feature-gate-apx-target-feature.rs: [missing] -> ignore (only executed when the architecture is x86_64) (J2)
  • [ui] tests/ui/cast/cast-alias-of-array-to-element.rs#current: [missing] -> pass (J3)
  • [ui] tests/ui/cast/cast-alias-of-array-to-element.rs#next: [missing] -> pass (J3)
  • [ui] tests/ui/traits/next-solver/opaques/duplicate-opaque-type-entries.rs#current: [missing] -> pass (J3)
  • [ui] tests/ui/traits/next-solver/opaques/duplicate-opaque-type-entries.rs#next: [missing] -> pass (J3)
  • [ui] tests/ui/feature-gates/feature-gate-apx-target-feature.rs: [missing] -> pass (J5)
  • [ui] tests/rustdoc-ui/unportable-markdown.rs: pass -> [missing] (J6)

Additionally, 339 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 891b8525477f5c41a9e56d7b70d64b41e7c344e3 --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-aarch64-linux: 7802.8s -> 5465.8s (-29.9%)
  2. dist-x86_64-apple: 7565.0s -> 8837.0s (16.8%)
  3. dist-apple-various: 6250.7s -> 6968.9s (11.5%)
  4. x86_64-msvc-1: 9191.0s -> 8684.5s (-5.5%)
  5. dist-android: 2394.2s -> 2519.5s (5.2%)
  6. x86_64-apple-2: 4793.1s -> 5019.8s (4.7%)
  7. mingw-check: 1306.7s -> 1255.4s (-3.9%)
  8. dist-i686-linux: 6285.9s -> 6048.8s (-3.8%)
  9. dist-various-2: 3337.1s -> 3457.8s (3.6%)
  10. x86_64-gnu-llvm-19-3: 6719.4s -> 6952.8s (3.5%)
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 (891b852): 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.4% [-1.0%, -0.2%] 4
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.4% [-1.0%, -0.2%] 4

Max RSS (memory usage)

Results (primary -0.7%, secondary 0.0%)

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.0% [0.5%, 1.6%] 2
Regressions ❌
(secondary)
2.1% [2.1%, 2.1%] 1
Improvements ✅
(primary)
-1.2% [-2.3%, -0.4%] 7
Improvements ✅
(secondary)
-1.0% [-1.1%, -1.0%] 2
All ❌✅ (primary) -0.7% [-2.3%, 1.6%] 9

Cycles

Results (primary 0.2%, secondary 2.0%)

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.5% [0.4%, 0.9%] 11
Regressions ❌
(secondary)
2.0% [2.0%, 2.0%] 1
Improvements ✅
(primary)
-0.6% [-0.8%, -0.4%] 5
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.2% [-0.8%, 0.9%] 16

Binary size

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

Bootstrap: 768.04s -> 769.575s (0.20%)
Artifact size: 365.49 MiB -> 365.18 MiB (-0.08%)

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. O-unix Operating system: Unix-like 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-rustdoc Relevant to the rustdoc 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.