Skip to content

Conversation

matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Oct 18, 2025

Successful merges:

Failed merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

evanj and others added 20 commits October 8, 2025 16:02
Replace "use this API instead" with a link to Builder::spawn. Edit
the paragraph to make it slightly clearer.

The Scope::spawn method already included a. Make the docs for the two
nearly the same.
Signed-off-by: Jonathan Brouwer <[email protected]>
Signed-off-by: Jonathan Brouwer <[email protected]>
I noticed we had a mix of 0.37 and 0.36 at work, and this was why. As
far as I can tell everything still works fine.
When -Z autodiff=Enable is used, the compiler automatically enables
fat-lto for all crates. However, proc-macro crates cannot use fat-lto
without the -Zdylib-lto flag, causing compilation errors.

This commit modifies the lto() method in Session to exclude proc-macro
crates from fat-lto when autodiff is enabled, while preserving the
existing behavior for all other crate types.

The fix ensures that:
- Non-proc-macro crates still get fat-lto when autodiff is enabled
- Proc-macro crates are excluded from fat-lto when autodiff is enabled
- Existing autodiff functionality remains unchanged for regular crates

Signed-off-by: Osama Abdelkader <[email protected]>
The notation used here (e.g. "transmute `t: T` to `Option<T>`") felt
maybe a bit heavy, in the context of the library documentation, so
let's elaborate this a bit.

Also, in the `Option` docs, we talk about this being true for "the
following types `T`", but it felt this caveat might get a bit lost in
the next sentence that talks about the valid transmutations, so let's
reiterate the caveat.

While we're touching the line, we can improve:

> The only difference is the implied semantics:

This sentence was a bit awkward due to the mismatched plurality and
not identifying the difference being spoken to.  We'll reword this to
make it more clear.

We'll wrap to 80, since the existing text and most of the doc comments
in these files are wrapped this way.
…, r=traviscross

Result/Option layout guarantee clarifications

- It seems worth spelling out that this guarantee allows particular transmutes.
- After the `Result` section was written, the `Option` section it referenced gained *more* guarantees, saying that `None` is represented as `[0u8; N]`. Those guarantees were not meant to apply to `Result`. Make the `Result` section more self-contained to make this more clear.
- "Type has no fields" is unclear since there is no general definition of what the fields of some arbitrary type are. Replace that by a more accurate description of the actual check implemented [here](https://github.com/rust-lang/rust/blob/e379c7758667f900aaf5551c4553c7d4c121e3e1/compiler/rustc_lint/src/types.rs#L828-L838).

r? `@traviscross`
…, r=joboet

std::thread spawn: Docs: Link to Builder::spawn; Make same.

Replace "use this API instead" with a link to Builder::spawn. Edit the paragraph to make it slightly clearer.

The Scope::spawn method already included a link to `Builder::spawn_scoped`. Make the docs for `Scope::spawn` and `thread::spawn` nearly the same.
…zelmann

 Port `#[cfg_attr]` to the new attribute parsing infrastructure

This work in progress, not ready for review.
PR mostly for ci/perf runs
…thar

bootstrap: migrate to object 0.37

I noticed we had a mix of 0.37 and 0.36 at work, and this was why. As far as I can tell everything still builds and works correctly.
…-lto, r=petrochenkov

Fix autodiff incorrectly applying fat-lto to proc-macro crates

Fixes rust-lang#147487
… r=fmease

rustdoc: Fix passes order so intra-doc links are collected after stripping passes

Fixes regression I introduced in rust-lang#147153.

This PR puts back the intra-doc link collecting pass after the stripping items pass, preventing lints to be emitted on non-visible items.

Although, might be nice to add a way to change this behaviour. To be discussed later on.

cc ``@ojeda``
r? ``@fmease``
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) 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. rollup A PR which is a rollup labels Oct 18, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Oct 18, 2025

📌 Commit 27b0018 has been approved by matthiaskrgr

It is now in the queue for this repository.

@bors bors removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Oct 18, 2025
@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Oct 18, 2025
@bors
Copy link
Collaborator

bors commented Oct 18, 2025

⌛ Testing commit 27b0018 with merge 6380899...

@bors
Copy link
Collaborator

bors commented Oct 18, 2025

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing 6380899 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Oct 18, 2025
@bors bors merged commit 6380899 into rust-lang:master Oct 18, 2025
12 checks passed
@rustbot rustbot added this to the 1.92.0 milestone Oct 18, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#146509 Result/Option layout guarantee clarifications ca314d9068fbe6e28b0804053067de3795de7b58 (link)
#147494 std::thread spawn: Docs: Link to Builder::spawn; Make same. db40cba4732d39ac3deeae1afe3468df17767934 (link)
#147532 Port #[cfg_attr] to the new attribute parsing infrastruc… 249bc52dc35c50a3f9ee90a3228b885214b0ed6d (link)
#147783 bootstrap: migrate to object 0.37 2eafa9e37df1befc6f1bd087b2d25a90790562c2 (link)
#147792 Fix autodiff incorrectly applying fat-lto to proc-macro cra… af1c91982a8ad5506fa882b08d7883c6b88846e1 (link)
#147809 rustdoc: Fix passes order so intra-doc links are collected … 4405200eea6cd60c85870341389287a4b819eb97 (link)

previous master: 0c0f27afd4

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 0c0f27a (parent) -> 6380899 (this PR)

Test differences

Show 715 test diffs

Stage 0

  • errors::verify_parse_array_index_offset_of_171: [missing] -> pass (J0)
  • errors::verify_parse_array_index_offset_of_172: pass -> [missing] (J0)
  • errors::verify_parse_asm_expected_comma_183: [missing] -> pass (J0)
  • errors::verify_parse_asm_expected_comma_184: pass -> [missing] (J0)
  • errors::verify_parse_asm_expected_other_184: [missing] -> pass (J0)
  • errors::verify_parse_asm_expected_other_185: pass -> [missing] (J0)
  • errors::verify_parse_asm_expected_register_class_or_explicit_register_187: [missing] -> pass (J0)
  • errors::verify_parse_asm_expected_register_class_or_explicit_register_188: pass -> [missing] (J0)
  • errors::verify_parse_asm_expected_string_literal_186: [missing] -> pass (J0)
  • errors::verify_parse_asm_expected_string_literal_187: pass -> [missing] (J0)
  • errors::verify_parse_asm_non_abi_185: [missing] -> pass (J0)
  • errors::verify_parse_asm_non_abi_186: pass -> [missing] (J0)
  • errors::verify_parse_asm_requires_template_182: [missing] -> pass (J0)
  • errors::verify_parse_asm_requires_template_183: pass -> [missing] (J0)
  • errors::verify_parse_asm_sym_no_path_181: [missing] -> pass (J0)
  • errors::verify_parse_asm_sym_no_path_182: pass -> [missing] (J0)
  • errors::verify_parse_asm_underscore_input_180: [missing] -> pass (J0)
  • errors::verify_parse_asm_underscore_input_181: pass -> [missing] (J0)
  • errors::verify_parse_asm_unsupported_operand_179: [missing] -> pass (J0)
  • errors::verify_parse_asm_unsupported_operand_180: pass -> [missing] (J0)
  • errors::verify_parse_async_impl_173: [missing] -> pass (J0)
  • errors::verify_parse_async_impl_174: pass -> [missing] (J0)
  • errors::verify_parse_binder_and_polarity_177: [missing] -> pass (J0)
  • errors::verify_parse_binder_and_polarity_178: pass -> [missing] (J0)
  • errors::verify_parse_binder_before_modifiers_176: [missing] -> pass (J0)
  • errors::verify_parse_binder_before_modifiers_177: pass -> [missing] (J0)
  • errors::verify_parse_dot_dot_range_attribute_175: [missing] -> pass (J0)
  • errors::verify_parse_dot_dot_range_attribute_176: pass -> [missing] (J0)
  • errors::verify_parse_expected_builtin_ident_168: [missing] -> pass (J0)
  • errors::verify_parse_expected_builtin_ident_169: pass -> [missing] (J0)
  • errors::verify_parse_expr_rarrow_call_174: [missing] -> pass (J0)
  • errors::verify_parse_expr_rarrow_call_175: pass -> [missing] (J0)
  • errors::verify_parse_generic_args_in_pat_require_turbofish_syntax_170: [missing] -> pass (J0)
  • errors::verify_parse_generic_args_in_pat_require_turbofish_syntax_171: pass -> [missing] (J0)
  • errors::verify_parse_invalid_offset_of_172: [missing] -> pass (J0)
  • errors::verify_parse_invalid_offset_of_173: pass -> [missing] (J0)
  • errors::verify_parse_malformed_cfg_attr_167: pass -> [missing] (J0)
  • errors::verify_parse_modifiers_and_polarity_178: [missing] -> pass (J0)
  • errors::verify_parse_modifiers_and_polarity_179: pass -> [missing] (J0)
  • errors::verify_parse_static_with_generics_169: [missing] -> pass (J0)
  • errors::verify_parse_static_with_generics_170: pass -> [missing] (J0)
  • errors::verify_parse_unknown_builtin_construct_167: [missing] -> pass (J0)
  • errors::verify_parse_unknown_builtin_construct_168: pass -> [missing] (J0)

Stage 1

  • [ui] tests/rustdoc-ui/intra-doc/hidden-check.rs: [missing] -> pass (J0)
  • [ui] tests/rustdoc-ui/intra-doc/private-check.rs: [missing] -> pass (J0)
  • [ui] tests/ui/conditional-compilation/cfg_attr-attr-syntax-validation.rs: [missing] -> pass (J0)
  • errors::verify_parse_array_index_offset_of_171: [missing] -> pass (J1)
  • errors::verify_parse_array_index_offset_of_172: pass -> [missing] (J1)
  • errors::verify_parse_asm_expected_comma_183: [missing] -> pass (J1)
  • errors::verify_parse_asm_expected_comma_184: pass -> [missing] (J1)
  • errors::verify_parse_asm_expected_other_184: [missing] -> pass (J1)
  • errors::verify_parse_asm_expected_other_185: pass -> [missing] (J1)
  • errors::verify_parse_asm_expected_register_class_or_explicit_register_187: [missing] -> pass (J1)
  • errors::verify_parse_asm_expected_register_class_or_explicit_register_188: pass -> [missing] (J1)
  • errors::verify_parse_asm_expected_string_literal_186: [missing] -> pass (J1)
  • errors::verify_parse_asm_expected_string_literal_187: pass -> [missing] (J1)
  • errors::verify_parse_asm_non_abi_185: [missing] -> pass (J1)
  • errors::verify_parse_asm_non_abi_186: pass -> [missing] (J1)
  • errors::verify_parse_asm_requires_template_182: [missing] -> pass (J1)
  • errors::verify_parse_asm_requires_template_183: pass -> [missing] (J1)
  • errors::verify_parse_asm_sym_no_path_181: [missing] -> pass (J1)
  • errors::verify_parse_asm_sym_no_path_182: pass -> [missing] (J1)
  • errors::verify_parse_asm_underscore_input_180: [missing] -> pass (J1)
  • errors::verify_parse_asm_underscore_input_181: pass -> [missing] (J1)
  • errors::verify_parse_asm_unsupported_operand_179: [missing] -> pass (J1)
  • errors::verify_parse_asm_unsupported_operand_180: pass -> [missing] (J1)
  • errors::verify_parse_async_impl_173: [missing] -> pass (J1)
  • errors::verify_parse_async_impl_174: pass -> [missing] (J1)
  • errors::verify_parse_binder_and_polarity_177: [missing] -> pass (J1)
  • errors::verify_parse_binder_and_polarity_178: pass -> [missing] (J1)
  • errors::verify_parse_binder_before_modifiers_176: [missing] -> pass (J1)
  • errors::verify_parse_binder_before_modifiers_177: pass -> [missing] (J1)
  • errors::verify_parse_dot_dot_range_attribute_175: [missing] -> pass (J1)
  • errors::verify_parse_dot_dot_range_attribute_176: pass -> [missing] (J1)
  • errors::verify_parse_expected_builtin_ident_168: [missing] -> pass (J1)
  • errors::verify_parse_expected_builtin_ident_169: pass -> [missing] (J1)
  • errors::verify_parse_expr_rarrow_call_174: [missing] -> pass (J1)
  • errors::verify_parse_expr_rarrow_call_175: pass -> [missing] (J1)
  • errors::verify_parse_generic_args_in_pat_require_turbofish_syntax_170: [missing] -> pass (J1)
  • errors::verify_parse_generic_args_in_pat_require_turbofish_syntax_171: pass -> [missing] (J1)
  • errors::verify_parse_invalid_offset_of_172: [missing] -> pass (J1)
  • errors::verify_parse_invalid_offset_of_173: pass -> [missing] (J1)
  • errors::verify_parse_malformed_cfg_attr_167: pass -> [missing] (J1)
  • errors::verify_parse_modifiers_and_polarity_178: [missing] -> pass (J1)
  • errors::verify_parse_modifiers_and_polarity_179: pass -> [missing] (J1)
  • errors::verify_parse_static_with_generics_169: [missing] -> pass (J1)
  • errors::verify_parse_static_with_generics_170: pass -> [missing] (J1)
  • errors::verify_parse_unknown_builtin_construct_167: [missing] -> pass (J1)
  • errors::verify_parse_unknown_builtin_construct_168: pass -> [missing] (J1)

Stage 2

  • [ui] tests/rustdoc-ui/intra-doc/hidden-check.rs: [missing] -> pass (J2)
  • [ui] tests/rustdoc-ui/intra-doc/private-check.rs: [missing] -> pass (J2)
  • [ui] tests/ui/conditional-compilation/cfg_attr-attr-syntax-validation.rs: [missing] -> pass (J3)

Additionally, 623 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 6380899f32599ea25615d4ccd708d0e8da652b0c --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: 6350.5s -> 9366.0s (47.5%)
  2. x86_64-gnu-llvm-20: 2476.0s -> 2860.1s (15.5%)
  3. aarch64-apple: 7391.2s -> 8235.2s (11.4%)
  4. dist-x86_64-apple: 6683.3s -> 5962.0s (-10.8%)
  5. x86_64-gnu-llvm-20-1: 3225.4s -> 3572.7s (10.8%)
  6. aarch64-gnu-llvm-20-2: 2324.5s -> 2565.0s (10.3%)
  7. pr-check-1: 1453.6s -> 1596.0s (9.8%)
  8. x86_64-gnu: 6819.7s -> 7365.7s (8.0%)
  9. dist-apple-various: 3261.3s -> 3509.8s (7.6%)
  10. dist-x86_64-netbsd: 4608.6s -> 4951.0s (7.4%)
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 (6380899): 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.2% [0.2%, 0.2%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.4% [-1.1%, -0.1%] 8
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (secondary 0.6%)

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

Cycles

Results (primary -1.6%)

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

Binary size

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

Bootstrap: 474.582s -> 471.955s (-0.55%)
Artifact size: 390.62 MiB -> 390.54 MiB (-0.02%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.