Skip to content

Rollup of 9 pull requests #140726

New issue

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

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

Already on GitHub? # 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 <vladimir.krivopalov@gmail.com>
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
Contributor

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%)

github-actions bot pushed a commit to carolynzech/rust that referenced this pull request May 16, 2025
Rollup of 9 pull requests

Successful merges:

 - rust-lang#134273 (de-stabilize bench attribute)
 - rust-lang#139534 (Added support for `apxf` target feature)
 - rust-lang#140419 (Move `in_external_macro` to `SyntaxContext`)
 - rust-lang#140483 (Comment on `Rc` abort-guard strategy without naming unrelated fn)
 - rust-lang#140607 (support duplicate entries in the opaque_type_storage)
 - rust-lang#140656 (collect all Fuchsia bindings into the `fuchsia` module)
 - rust-lang#140668 (Implement `VecDeque::truncate_front()`)
 - rust-lang#140709 (rustdoc: remove unportable markdown lint and old parser)
 - rust-lang#140713 (Structurally resolve in `check_ref_cast` in new solver)

r? `@ghost`
`@rustbot` modify labels: rollup
# for free to join this conversation on GitHub. Already have an account? # 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.