Skip to content

Rollup of 6 pull requests - #163754

Merged
rust-bors[bot] merged 15 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-fdgcPnD
Oct 4, 2026
Merged

rust-bors[bot] merged 15 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-fdgcPnD

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

itsjunetime and others added 15 commits October 2, 2026 11:28
Fix test-tidy

review changes

review changes

review changes

fix llvm build

ignore attribute documentation example

fix tidy

use no_run instead of ignore
…r, r=mejrs

FCW for `#[panic_handler]` on `unsafe fn`.

Mitigates rust-lang#162967.

A function annotated with `#[panic_handler]` can be called by the compiler from anywhere. So, such functions must not have any safety preconditions.

A [github search](https://github.com/search?q=language%3Arust+%2F%23%5C%5Bpanic_handler%5C%5D%5Cnunsafe%2F&type=code) shows many crates that would run into this, so a hard error seems infeasible. If needed, I can modify the code in order to run crater to check how much code would be flagged by this FCW.

~~I have not yet created a proper tracking issue for the FCW. If this PR seems like the right direction, I will do so before merging.~~ I've created a tracking issue for this FCW at rust-lang#163263

An LLM pointed me towards `check_panic_info_fn` and `emit_node_span_lint` (which I verified to be right). However, this PR is otherwise written manually.
…ttribute, r=bushrat011899,JonathanBrouwer

Add documentation for the `no_main` and `repr` attributes

Part of rust-lang#157604.

This PR documents `no_main` and `repr` attributes in `library/core/src/attribute_docs.rs` with some examples.

Tested with: `./x doc`
…opt, r=Kobzol

Add `--frontend-threads` option to `./x perf`

This just adds an option to pass through the `--frontend-threads` option to `rustc-perf` through `./x perf` (which option is documented in the [`rustc-perf` repo](https://github.com/rust-lang/rustc-perf/blob/main/collector/README.md#benchmarking-options). Before this, `./x perf` had no way of telling `rustc-perf` how many frontend threads to use, so it always defaulted to 1. This made it a bit more difficult to test perf-related chnages to the parallel frontend.

I tested this option locally and it seems to work perfectly fine.
…fonthey

c_str_alloc_error test: mention why this is mostly Miri-only

This was explained at the top of the file but I missed it there. Seems worth repeating at the attribute? Or am I just too blind?
Cc @bjorn3 -- is it expected that `#[global_allocator]` does not work in alloctests?
…enyukang

[tiny] Remove useless `.into()` calls
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Oct 4, 2026
@rustbot rustbot added 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. labels Oct 4, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors r+ p=5 force

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,test-x86_64-gnu-aux,test-x86_64-msvc-1,test-aarch64-apple-1,test-aarch64-apple-2,test-x86_64-mingw-1,test-i686-msvc,test-armhf-gnu

@rust-bors

rust-bors Bot commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 1afe421 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-bors rust-bors Bot 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 Oct 4, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Oct 4, 2026
Rollup of 6 pull requests


try-job: dist-various-1
try-job: test-various
try-job: test-x86_64-gnu-aux
try-job: test-x86_64-msvc-1
try-job: test-aarch64-apple-1
try-job: test-aarch64-apple-2
try-job: test-x86_64-mingw-1
try-job: test-i686-msvc
try-job: test-armhf-gnu
@rust-bors

This comment has been minimized.

@rust-bors

rust-bors Bot commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 054a7f3 (054a7f3e274478933a69116055e3d9a4a179355c)
Base parent: 4ddbc06 (4ddbc06ea09abcda34f80baf31cc9bc2686b0ae6)

@rust-bors rust-bors Bot added the merged-by-bors This PR was explicitly merged by bors. label Oct 4, 2026
@rust-bors rust-bors Bot removed the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Oct 4, 2026
@rust-bors

rust-bors Bot commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 48s
Pushing f48b3e6 to main...

@github-actions

github-actions Bot commented Oct 4, 2026

Copy link
Copy Markdown
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 a639ea0 (parent) -> f48b3e6 (this PR)

Test differences

Show 131 test diffs

Stage 1

  • [ui (polonius)] tests/ui/panic-handler/unsafe_panic_handler.rs: [missing] -> pass (J0)
  • [ui] tests/ui/panic-handler/unsafe_panic_handler.rs: [missing] -> pass (J2)

Stage 2

  • [ui] tests/ui/panic-handler/unsafe_panic_handler.rs: [missing] -> pass (J1)

Additionally, 128 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 f48b3e61eeece268609bd920fcca1ded047db7ca --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-i686-msvc: 32m 25s -> 52m 51s (+63.0%)
  2. dist-loongarch64-linux: 1h 21m -> 2h 8m (+58.5%)
  3. test-x86_64-gnu-aux: 2h 37m -> 1h 30m (-42.8%)
  4. test-arm-android: 1h 16m -> 1h 49m (+42.6%)
  5. test-i686-gnu-nopt-2: 2h 21m -> 1h 23m (-41.0%)
  6. test-x86_64-gnu-stable: 1h 52m -> 2h 36m (+38.7%)
  7. dist-x86_64-musl: 1h 43m -> 2h 21m (+37.2%)
  8. test-x86_64-msvc-ext3: 1h 29m -> 2h 1m (+35.4%)
  9. test-x86_64-gnu-debug: 2h 4m -> 1h 21m (-34.4%)
  10. test-pr-check-1: 39m 1s -> 25m 48s (-33.9%)
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
Copy Markdown
Collaborator

Finished benchmarking commit (f48b3e6): comparison URL.

Overall result: ❌✅ regressions and 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.4% [0.4%, 0.4%] 1
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 1.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)
9.1% [9.1%, 9.1%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.5% [-3.0%, -2.1%] 2
All ❌✅ (primary) - - 0

Cycles

Results (secondary -0.9%)

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

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 489.631s -> 490.122s (0.10%)
Artifact size: 408.63 MiB -> 408.65 MiB (0.00%)

@rust-bors

rust-bors Bot commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#162974 FCW for #[panic_handler] on unsafe fn. 00e4dad1632b46dbf956648311908bad107f6788
(link)
#163627 Add documentation for the no_main and repr attributes 5059fc013879e512c60ad81fab297466ea8fba46
(link)
#163671 Add --frontend-threads option to ./x perf 31394a5198a6d8972163f3cae450d87887f0f357
(link)
#163694 c_str_alloc_error test: mention why this is mostly Miri-only ea6a18759383d9e52dc185d2b0a23ddcb5dd74ef
(link)
#163711 Stabilize CStr::display 909b0296a7743d13460b71b56ed4e9249003a0e0
(link)
#163723 [tiny] Remove useless .into() calls 2d7373f038d538fd6ba9b60a25fc057c3c188cba
(link)

parent commit: a639ea0890

In the case of a perf regression, run the following command with the SHAs of each PR you suspect might be the cause: @rust-timer triage $SHA $SHA $SHA..., or run @rust-timer triage all to benchmark all rollup members.

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. rollup A PR which is a rollup 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.

9 participants