Skip to content

Rollup of 16 pull requests #142299

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 53 commits into from
Jun 10, 2025
Merged

Rollup of 16 pull requests #142299

merged 53 commits into from
Jun 10, 2025

Conversation

fmease
Copy link
Member

@fmease fmease commented Jun 10, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

mejrs and others added 30 commits June 6, 2025 11:43
…from the execution context, add getters and setters in the config, and update the tests and other relevant areas accordingly.
It's purely internal, and not intended to be a public API, even on
nightly. This stops it showing up and being misleading in rustdoc
search.

It also mirrors the (also internal) `core::slice::sort` module.
This takes the current behavior of `file!` and documents it so it is
safe to make assumptions about.
For example, Cargo could provide a `CARGO_RUSTC_CURRENT_DIR` as a base
path for `file!`.

Example use cases
- Being able to look up test assets relative to the current file
  ([example](https://github.com/rust-lang/cargo/blob/b9026bf654d7fac283465e58b8b76742244ef07d/tests/testsuite/cargo_add/add_basic/mod.rs#L34))
- Inline snapshotting libraries being able to update Rust source code
  ([example](https://github.com/rust-lang/cargo/blob/b9026bf654d7fac283465e58b8b76742244ef07d/tests/testsuite/alt_registry.rs#L36-L45))

T-libs-api discussed two solutions
- `file_absolute!`:
  - Has less meaning in other build tools like buck2
  - Bakes in the assumption that a full path is available (e.g. with
    trim-paths)
- Specifying `file!`s behavior (this PR):
  - Leaves it to the user to deal with trim-paths
  - Even though `file!` is currently unspecified, changing it would
    likely have too large of an impact on the ecosystem at this time.

A future possibility is that rustc could have a flag that controls
modifies the base path used for `file!`.
That seems purely additive with specifying the behavior and we do not
want to block on it.
It would also likely be too disruptive for Cargo users (as mentioned).
However, we tried to keep this in mind when specifying the behavior.
WIX toolset works only on Windows hosts and we need to boostrap this
host.
@rustbot rustbot added T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Jun 10, 2025
@fmease
Copy link
Member Author

fmease commented Jun 10, 2025

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Jun 10, 2025

📌 Commit 9f5c10e has been approved by fmease

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

bors commented Jun 10, 2025

⌛ Testing commit 9f5c10e with merge 8ce2287...

@bors
Copy link
Collaborator

bors commented Jun 10, 2025

☀️ Test successful - checks-actions
Approved by: fmease
Pushing 8ce2287 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jun 10, 2025
@bors bors merged commit 8ce2287 into rust-lang:master Jun 10, 2025
11 checks passed
@rustbot rustbot added this to the 1.89.0 milestone Jun 10, 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 c6a9554 (parent) -> 8ce2287 (this PR)

Test differences

Show 525 test diffs

Stage 1

  • [crashes] tests/crashes/139825.rs: pass -> [missing] (J1)
  • [ui] tests/ui/check-cfg/hrtb-crash.rs: [missing] -> pass (J1)
  • [ui] tests/ui/feature-gates/feature-gate-keylocker_x86.rs: pass -> [missing] (J1)
  • [ui] tests/ui/feature-gates/removed-features-note-version-and-pr-issue-141619.rs: [missing] -> pass (J1)

Stage 2

  • [ui] tests/ui/check-cfg/hrtb-crash.rs: [missing] -> pass (J0)
  • [ui] tests/ui/feature-gates/removed-features-note-version-and-pr-issue-141619.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/139825.rs: pass -> [missing] (J2)
  • [ui] tests/ui/feature-gates/feature-gate-keylocker_x86.rs: pass -> [missing] (J3)
  • [ui] tests/ui/feature-gates/feature-gate-keylocker_x86.rs: ignore (only executed when the architecture is x86_64) -> [missing] (J4)

Additionally, 516 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 8ce228758651aa58c4d34e3bd65bf70a251da27e --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: 6862.4s -> 8234.7s (20.0%)
  2. mingw-check-tidy: 78.1s -> 92.9s (18.9%)
  3. x86_64-apple-2: 4095.9s -> 4825.2s (17.8%)
  4. x86_64-apple-1: 6858.2s -> 8007.2s (16.8%)
  5. dist-ohos-aarch64: 4163.8s -> 4623.4s (11.0%)
  6. dist-ohos-x86_64: 4090.6s -> 4498.4s (10.0%)
  7. dist-aarch64-apple: 6292.1s -> 6852.3s (8.9%)
  8. dist-x86_64-mingw: 8267.9s -> 7550.9s (-8.7%)
  9. dist-powerpc64le-linux-musl: 5114.4s -> 5457.3s (6.7%)
  10. dist-loongarch64-linux: 6008.0s -> 6365.6s (6.0%)
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
#134442 Specify the behavior of file! 7811d7eb457b8a9e76d072e3dcce9f5c606ddb70 (link)
#140372 Exhaustively handle parsed attributes in CheckAttr 695af6396b73ed133c98d7b1c77369f51ffae95d (link)
#140766 Stabilize keylocker 1fd753975e76e7d9c15ba4fac040dd9da19ece10 (link)
#141642 Note the version and PR of removed features when using it f19ec2e7a7ee3916e845ac7615016c066e13c781 (link)
#141818 Don't create .msi installer for gnullvm hosts f0e35c6b52ded016709d21338425a094f66c67b8 (link)
#141909 Add central execution context to bootstrap b428d7dc5acafe99153631115f4d274bdc65e6a8 (link)
#141992 use #[naked] for __rust_probestack 74eaf2ae4189fcf7fb618403139d5a7fc392670c (link)
#142101 core::ptr: deduplicate more method docs dd0a14e8d3009e1d7419b444059a8479d5a78172 (link)
#142102 docs: Small clarification on the usage of read_to_string an… d501ac532f26d71ed9d84175b8da0e484001fa05 (link)
#142124 Allow transmute casts in pre-runtime-MIR 38e457e3667eaed81a393920de46f6d09c662463 (link)
#142240 deduplicate the rest of AST walker functions 294d66c266c83139d525116a1b1addba75f318a4 (link)
#142258 platform-support.md: Mention specific Linux kernel version … 1ba32a340cbf457385b4b0a9b54a36cfcbddefc6 (link)
#142262 Mark core::slice::memchr as #[doc(hidden)] 9a80e2efa68060a22f954881f01bf561aa2914d6 (link)
#142271 compiler: fn ptrs should hit different lints based on ABI 6d88bc873d83cf03ae0bc264ede7a16b0f37a59d (link)
#142275 rustdoc: Refractor clean_ty_generics 6126916f815c9de0cb6a456b5e3197a6782d4c90 (link)
#142288 const_eval: fix some outdated comments 697ce1ee9e23bc75343b6ce0da614c30297de0cc (link)

previous master: c6a955468b

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 (8ce2287): comparison URL.

Overall result: ❌ regressions - 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

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.5% [0.1%, 0.7%] 8
Regressions ❌
(secondary)
0.4% [0.2%, 1.1%] 37
Improvements ✅
(primary)
-0.2% [-0.2%, -0.2%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.4% [-0.2%, 0.7%] 9

Max RSS (memory usage)

Results (primary 1.8%, secondary 8.6%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

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

Cycles

Results (primary 0.5%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
1.3% [1.0%, 1.5%] 3
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.0% [-2.0%, -2.0%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.5% [-2.0%, 1.5%] 4

Binary size

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

Bootstrap: 754.321s -> 755.415s (0.15%)
Artifact size: 372.15 MiB -> 372.14 MiB (-0.00%)

@rustbot rustbot added the perf-regression Performance regression. label Jun 11, 2025
@fmease
Copy link
Member Author

fmease commented Jun 11, 2025

Queries/functions early_lint_checks, pre_AST_expansion_lint_checks, jump out to me, so maybe lint-related? Let's see.

@rust-timer build 6d88bc8

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (6d88bc8): comparison URL.

Overall result: no relevant changes - no action needed

Instruction count

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

Max RSS (memory usage)

Results (secondary 2.5%)

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)
5.5% [2.8%, 8.3%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-3.4% [-3.4%, -3.4%] 1
All ❌✅ (primary) - - 0

Cycles

Results (secondary 11.2%)

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)
11.2% [11.2%, 11.2%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Binary size

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

Bootstrap: 754.321s -> 754.575s (0.03%)
Artifact size: 372.15 MiB -> 372.15 MiB (-0.00%)

@fmease
Copy link
Member Author

fmease commented Jun 11, 2025

Hmmm.. maybe one of 74eaf2a or 294d66c then?

@rust-timer build 294d66c

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (294d66c): comparison URL.

Overall result: ❌ regressions - please read the text below

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.5% [0.1%, 0.7%] 9
Regressions ❌
(secondary)
0.4% [0.2%, 1.1%] 36
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.5% [0.1%, 0.7%] 9

Max RSS (memory usage)

Results (secondary 8.3%)

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)
8.3% [8.3%, 8.3%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

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: 754.321s -> 755.502s (0.16%)
Artifact size: 372.15 MiB -> 372.15 MiB (-0.00%)

@fmease
Copy link
Member Author

fmease commented Jun 13, 2025

The regressions should all be taken care of in PR #142398 (not merged yet). See perf results: #142398 (comment).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-attributes Area: Attributes (`#[…]`, `#![…]`) A-compiler-builtins Area: compiler-builtins (https://github.com/rust-lang/compiler-builtins) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. 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. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) 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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.