Skip to content

Rollup of 10 pull requests #142864

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

Rollup of 10 pull requests #142864

merged 30 commits into from
Jun 22, 2025

Conversation

jhpratt
Copy link
Member

@jhpratt jhpratt commented Jun 22, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

lcnr and others added 30 commits June 18, 2025 17:14
also return `EvaluationResult` instead of the final
`StackEntry` to make sure we correctly track information
between reruns.
The panic_abort crate must be compiled with panic=abort, but cargo
doesn't allow setting the panic strategy for a single crate the usual
way using panic="abort", but luckily per-package rustflags do allow
this. Bootstrap previously handled this in its rustc wrapper, but for
example the build systems of cg_clif and cg_gcc don't use the rustc
wrapper, so they would either need to add one, patch the standard
library or be unable to build a sysroot suitable for both panic=abort
and panic=unwind (as is currently the case).
"Basic usage" implies there is an example that shows advanced usage,
but these APIs are extra simple.
We currently have both `FromClean<clean::Constant> for Constant` and
`FromClean<clean::ConstantKind> for Constant` which are basically
identical, but the former is unused.
It's just replicating exactly what is done by `<Vec<GenericParamDef> as
FromClean>::into_json`
The `FromClean` trait is used a lot for converting to rustdoc-json
format. But it's not used universally; there are still some ad hoc
functions and methods for converting. This commit fixes this
inconsistency by using `FromClean` more.

The commit also introduces `FromClean` for `Box` and `Option`. This lets
a lot of `as_ref` and `map` calls be removed in favour of simple
`into_json` calls.
- `convert_static` -> `from_clean_static`
- `from_function` -> `from_clean_function`

To match the pre-existing `from_clean_item` and `FromClean::from_clean`.

I left `JsonRenderer::convert_item` unchanged because it's a bit
different.
…petrochenkov

Pass -Cpanic=abort for the panic_abort crate

The panic_abort crate must be compiled with panic=abort, but cargo doesn't allow setting the panic strategy for a single crate the usual way using `panic="abort"`, but luckily per-package rustflags do allow this. Bootstrap previously handled this in its rustc wrapper, but for example the build systems of cg_clif and cg_gcc don't use the rustc wrapper, so they would either need to add one, patch the standard library or be unable to build a sysroot suitable for both panic=abort and panic=unwind (as is currently the case).

Required for rust-lang/rustc_codegen_cranelift#1567
…transparent, r=jdonszelmann

Port `#[rustc_pub_transparent]` to the new attribute system

Very similar to rust-lang#142498.

This is a part of rust-lang#131229, so
r? ````@jdonszelmann````

---

For reference, the `#[rustc_pub_transparent]` attribute was created by me back in rust-lang#129487.

As mentioned back in rust-lang#129487 (comment), this attribute does not check that it is applied to an ADT, because it checks that `#[repr(transparent)]` is also applied to the same item, which, in turn, should check for ADT.
…rors

improve search graph docs, reset `encountered_overflow` between reruns

I think this shouldn't really matter for now. It will be more relevant for my current rework as we otherwise cannot partially reevaluate the root goal in case there has been overflow during the prervious iteration.

r? ````@BoxyUwU````
…ps, r=aDotInTheVoid

rustdoc_json: conversion cleanups

A bunch of clean-to-types conversion cleanups I found while working on perf-related stuff in rustdoc_json.

r? ```@aDotInTheVoid```
All HIR attributes are outer

Fixes rust-lang#142649. Closes rust-lang#142759.

All HIR attributes, including parsed and not yet parsed, will now be rendered as outer attributes by `rustc_hir_pretty`. The original style of the corresponding AST attribute(s) is not relevant for pretty printing, only for diagnostics.

r? ````@jdonszelmann````
…crum

integer docs: remove extraneous text

"Basic usage" implies there is an example that shows advanced usage, but these APIs are extra simple.
…ouxu

Enable fmt-write-bloat for Windows

Seems to be working fine for MSVC once it has the correct binary name.

Addresses item in rust-lang#128602

---

try-job: x86_64-mingw-*
try-job: x86_64-msvc-*
try-job: i686-msvc-*
… r=jieyouxu

Enable textrel-on-minimal-lib for Windows

`bin_name` needs to be used when building a runnable executable.

Addresses item in rust-lang#128602

---

try-job: x86_64-mingw-*
try-job: x86_64-msvc-*
try-job: i686-msvc-*
remove asm_goto feature annotation, for it is now stabilized

This was stabilized in rust-lang#133870
@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 A-rustdoc-json Area: Rustdoc JSON backend S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. 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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Jun 22, 2025
@jhpratt
Copy link
Member Author

jhpratt commented Jun 22, 2025

@bors r+ rollup=never p=5

@rustbot rustbot added the rollup A PR which is a rollup label Jun 22, 2025
@bors
Copy link
Collaborator

bors commented Jun 22, 2025

📌 Commit 34dd536 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 Jun 22, 2025
@bors
Copy link
Collaborator

bors commented Jun 22, 2025

⌛ Testing commit 34dd536 with merge a30f178...

@bors
Copy link
Collaborator

bors commented Jun 22, 2025

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

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jun 22, 2025
@bors bors merged commit a30f178 into rust-lang:master Jun 22, 2025
11 checks passed
@rustbot rustbot added this to the 1.89.0 milestone Jun 22, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#140254 Pass -Cpanic=abort for the panic_abort crate a4ea0f32814c90eb97cb292c5c3bb5bd6962f5d0 (link)
#142600 Port #[rustc_pub_transparent] to the new attribute system a4df0d1f78396e8cc36dddd9ab96c24054656b0b (link)
#142617 improve search graph docs, reset encountered_overflow bet… 0d03e3d7ee25a27fcb31c475484ac94504f41973 (link)
#142747 rustdoc_json: conversion cleanups 1ba9ebdf18173815ab326202f5225efd4f51f3e6 (link)
#142776 All HIR attributes are outer 6d376382d0b04a08fe2d509bff65925e24e87bed (link)
#142800 integer docs: remove extraneous text a0bb228618f3d2082f91bb52c0708df412d491ed (link)
#142841 Enable fmt-write-bloat for Windows 57120b55030aef6e97db2389698cff651b448d88 (link)
#142845 Enable textrel-on-minimal-lib for Windows 1a8abf5a875a779a540ff335d8aa30cdde94fd9b (link)
#142850 remove asm_goto feature annotation, for it is now stabilized b178cda34e1f09fdd7151293a8f9ec5d993a7e40 (link)
#142860 Notify me on tidy changes 1b4bf16adef20bccce7c9582ef5386b1c9190dcb (link)

previous master: 9972ebfcc2

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

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 9972ebf (parent) -> a30f178 (this PR)

Test differences

Show 4146 test diffs

Stage 1

  • [ui] tests/ui/deprecation/deprecated-expr-precedence.rs: [missing] -> pass (J0)

Stage 2

  • [ui] tests/ui/deprecation/deprecated-expr-precedence.rs: [missing] -> pass (J1)
  • [run-make] tests/run-make/fmt-write-bloat: ignore (ignored when the operating system is windows) -> pass (J2)
  • [run-make] tests/run-make/textrel-on-minimal-lib: ignore (ignored when the operating system is windows) -> pass (J2)

Additionally, 4142 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 a30f1783fe136d92545423dd30b12eb619973cdb --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: 5319.5s -> 3390.8s (-36.3%)
  2. mingw-check-tidy: 66.3s -> 79.8s (20.5%)
  3. dist-i686-msvc: 7758.8s -> 6748.1s (-13.0%)
  4. x86_64-apple-1: 6622.2s -> 7441.0s (12.4%)
  5. dist-apple-various: 7576.9s -> 8421.8s (11.2%)
  6. dist-loongarch64-linux: 6443.8s -> 5943.3s (-7.8%)
  7. x86_64-mingw-1: 9300.4s -> 8596.1s (-7.6%)
  8. x86_64-gnu-llvm-19-1: 3310.7s -> 3556.0s (7.4%)
  9. test-various: 4680.3s -> 4358.2s (-6.9%)
  10. dist-x86_64-msvc: 6226.0s -> 6525.0s (4.8%)
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 (a30f178): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

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

Max RSS (memory usage)

Results (secondary 4.4%)

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)
4.4% [4.1%, 4.6%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Cycles

Results (secondary 5.7%)

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.7% [5.7%, 5.7%] 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: 691.157s -> 689.082s (-0.30%)
Artifact size: 371.94 MiB -> 371.89 MiB (-0.01%)

@jhpratt jhpratt deleted the rollup-mf0yq8o branch June 22, 2025 17:46
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 A-rustdoc-json Area: Rustdoc JSON backend 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-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. 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.