Skip to content

Rollup of 17 pull requests #145300

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
Aug 12, 2025
Merged

Rollup of 17 pull requests #145300

merged 53 commits into from
Aug 12, 2025

Conversation

Zalathar
Copy link
Contributor

@Zalathar Zalathar commented Aug 12, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

notJoon and others added 30 commits August 10, 2025 22:50
_span could possibly be confused with the Span type in rustc
Use a time representation with 1900-01-01-00:00:00 at timezone -1440 min as
anchor. This is the earliest time supported in UEFI.

Signed-off-by: Ayush Singh <[email protected]>
Add tests to ensure that extream system times are still representable.

Signed-off-by: Ayush Singh <[email protected]>
…medValueStr`

Modify `AttributeTemplate` to support list of alternatives for list and name value attribute styles.

Suggestions now provide more correct suggested code:

```
error[E0805]: malformed `used` attribute input
  --> $DIR/used_with_multi_args.rs:3:1
   |
LL | #[used(compiler, linker)]
   | ^^^^^^------------------^
   |       |
   |       expected a single argument here
   |
help: try changing it to one of the following valid forms of the attribute
   |
LL - #[used(compiler, linker)]
LL + #[used(compiler)]
   |
LL - #[used(compiler, linker)]
LL + #[used(linker)]
   |
LL - #[used(compiler, linker)]
LL + #[used]
   |
```

instead of the prior "masking" of the lack of this feature by suggesting pipe-separated lists:

```
error[E0805]: malformed `used` attribute input
  --> $DIR/used_with_multi_args.rs:3:1
   |
LL | #[used(compiler, linker)]
   | ^^^^^^------------------^
   |       |
   |       expected a single argument here
   |
help: try changing it to one of the following valid forms of the attribute
   |
LL - #[used(compiler, linker)]
LL + #[used(compiler|linker)]
   |
LL - #[used(compiler, linker)]
LL + #[used]
   |
```
This commit amends the documentation of `Vec::as_mut_ptr` and
`Vec::into_raw_parts` to make it explicit that such calls may be paired
with calls to `dealloc` with a suitable layout. This guarantee was
effectively already provided by the docs of `Vec::from_raw_parts`
mentioning `alloc`.

Additionally, we copy-paste and adjust the “Memory layout” section from
the documentation of `std::boxed` to `std::vec`. This explains the allocator
guarantees in more detail.
Reduce indentation and avoid needless checks (checking the target OS and
vendor is unnecessary).
This is more in-line with what Apple's tooling expects, and allows us to
better support custom compiler drivers (such as certain Homebrew and
Nixpkgs compilers) that prefer their own `-isysroot` flag.

Effectively, we now invoke the compiler driver as-if it was invoked as
`xcrun -sdk $sdk_name $tool`.
To allow using zig-cc or similar as the compiler driver.
The exact reasoning why we do not always pass the SDK root when linking
on macOS eludes me, but I suspect it's because we want to support
compiler drivers which do not support the `-isysroot` option.

Since we now pass the SDK root via the environment variable SDKROOT,
compiler drivers that don't support it can just ignore it.

Similarly, since we only warn when xcrun fails, users that expect their
compiler driver to provide the SDK location can do so now.
`rustc` is going to change the desugaring of `assert!` to be

```rust
match condition {
    true => {}
    _ => panic!(),
}
```
which will make the edge-case of `condition` being `impl Not<Output = bool>`
while not being `bool` itself no longer a straightforward suggestion,
but `!!condition` will coerce the expression to be `bool`, so it can be
machine applicable.
This is a technically a breaking change for what can be parsed in
`#[cfg(false)]`.
@rustbot rustbot added T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure 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. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. rollup A PR which is a rollup labels Aug 12, 2025
@Zalathar
Copy link
Contributor Author

Successor to #145293.

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Aug 12, 2025

📌 Commit 7c4bedc has been approved by Zalathar

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 Aug 12, 2025
@bors
Copy link
Collaborator

bors commented Aug 12, 2025

⌛ Testing commit 7c4bedc with merge d9dba3a...

@bors
Copy link
Collaborator

bors commented Aug 12, 2025

☀️ Test successful - checks-actions
Approved by: Zalathar
Pushing d9dba3a to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Aug 12, 2025
@bors bors merged commit d9dba3a into rust-lang:master Aug 12, 2025
11 checks passed
@rustbot rustbot added this to the 1.91.0 milestone Aug 12, 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 a153133 (parent) -> d9dba3a (this PR)

Test differences

Show 709 test diffs

Stage 1

  • errors::verify_ast_passes_abi_cannot_be_coroutine_60: [missing] -> pass (J0)
  • errors::verify_ast_passes_abi_custom_safe_foreign_function_58: [missing] -> pass (J0)
  • errors::verify_ast_passes_abi_must_not_have_parameters_or_return_type_63: pass -> [missing] (J0)
  • errors::verify_ast_passes_const_and_coroutine_48: pass -> [missing] (J0)
  • errors::verify_ast_passes_const_bound_trait_object_45: [missing] -> pass (J0)
  • errors::verify_ast_passes_incompatible_features_52: pass -> [missing] (J0)
  • errors::verify_ast_passes_negative_bound_not_supported_51: [missing] -> pass (J0)
  • errors::verify_ast_passes_negative_bound_with_parenthetical_notation_55: pass -> [missing] (J0)
  • errors::verify_ast_passes_nested_lifetimes_44: [missing] -> pass (J0)
  • errors::verify_ast_passes_pattern_in_foreign_50: pass -> [missing] (J0)
  • errors::verify_ast_passes_precise_capturing_not_allowed_here_55: [missing] -> pass (J0)
  • errors::verify_ast_passes_where_clause_after_type_alias_44: pass -> [missing] (J0)
  • errors::verify_parse_array_index_offset_of_172: [missing] -> pass (J0)
  • errors::verify_parse_asm_expected_comma_184: pass -> [missing] (J0)
  • errors::verify_parse_asm_expected_other_186: [missing] -> pass (J0)
  • errors::verify_parse_asm_requires_template_183: pass -> [missing] (J0)
  • errors::verify_parse_asm_sym_no_path_183: [missing] -> pass (J0)
  • errors::verify_parse_associated_static_item_not_allowed_89: pass -> [missing] (J0)
  • errors::verify_parse_async_impl_174: [missing] -> pass (J0)
  • errors::verify_parse_async_move_order_incorrect_61: [missing] -> pass (J0)
  • errors::verify_parse_at_dot_dot_in_struct_pattern_129: pass -> [missing] (J0)
  • errors::verify_parse_at_in_struct_pattern_130: pass -> [missing] (J0)
  • errors::verify_parse_at_in_struct_pattern_131: [missing] -> pass (J0)
  • errors::verify_parse_bad_item_kind_157: [missing] -> pass (J0)
  • errors::verify_parse_binder_and_polarity_178: pass -> [missing] (J0)
  • errors::verify_parse_bounds_not_allowed_on_trait_aliases_86: [missing] -> pass (J0)
  • errors::verify_parse_cannot_be_raw_ident_107: pass -> [missing] (J0)
  • errors::verify_parse_cannot_be_raw_lifetime_108: pass -> [missing] (J0)
  • errors::verify_parse_comma_after_base_struct_26: [missing] -> pass (J0)
  • errors::verify_parse_doc_comment_on_param_type_53: [missing] -> pass (J0)
  • errors::verify_parse_dyn_after_mut_138: pass -> [missing] (J0)
  • errors::verify_parse_dyn_after_mut_139: [missing] -> pass (J0)
  • errors::verify_parse_empty_exponent_float_114: pass -> [missing] (J0)
  • errors::verify_parse_expect_label_found_ident_153: [missing] -> pass (J0)
  • errors::verify_parse_expected_builtin_ident_168: pass -> [missing] (J0)
  • errors::verify_parse_expected_fn_path_found_fn_keyword_65: pass -> [missing] (J0)
  • errors::verify_parse_expected_statement_after_outer_attr_47: [missing] -> pass (J0)
  • errors::verify_parse_expected_struct_field_20: [missing] -> pass (J0)
  • errors::verify_parse_expr_rarrow_call_175: [missing] -> pass (J0)
  • errors::verify_parse_float_literal_requires_integer_part_12: pass -> [missing] (J0)
  • errors::verify_parse_float_literal_unsupported_base_116: [missing] -> pass (J0)
  • errors::verify_parse_frontmatter_extra_characters_after_close_33: [missing] -> pass (J0)
  • errors::verify_parse_frontmatter_invalid_close_preceding_whitespace_36: pass -> [missing] (J0)
  • errors::verify_parse_frontmatter_invalid_close_preceding_whitespace_37: [missing] -> pass (J0)
  • errors::verify_parse_generic_args_in_pat_require_turbofish_syntax_170: pass -> [missing] (J0)
  • errors::verify_parse_inappropriate_default_153: pass -> [missing] (J0)
  • errors::verify_parse_inclusive_range_extra_equals_38: pass -> [missing] (J0)
  • errors::verify_parse_inclusive_range_no_end_40: pass -> [missing] (J0)
  • errors::verify_parse_inclusive_range_no_end_41: [missing] -> pass (J0)
  • errors::verify_parse_incorrect_use_of_await_1: pass -> [missing] (J0)
  • errors::verify_parse_incorrect_use_of_use_2: pass -> [missing] (J0)
  • errors::verify_parse_incorrect_visibility_restriction_45: [missing] -> pass (J0)
  • errors::verify_parse_invalid_offset_of_172: pass -> [missing] (J0)
  • errors::verify_parse_invalid_offset_of_173: [missing] -> pass (J0)
  • errors::verify_parse_invalid_path_sep_in_fn_definition_80: pass -> [missing] (J0)
  • errors::verify_parse_lifetime_in_eq_constraint_149: pass -> [missing] (J0)
  • errors::verify_parse_missing_const_type_92: pass -> [missing] (J0)
  • errors::verify_parse_missing_for_in_trait_impl_82: pass -> [missing] (J0)
  • errors::verify_parse_missing_plus_in_bounds_165: [missing] -> pass (J0)
  • errors::verify_parse_missing_trait_in_trait_impl_81: pass -> [missing] (J0)
  • errors::verify_parse_modifier_lifetime_151: [missing] -> pass (J0)
  • errors::verify_parse_multiple_where_clauses_102: pass -> [missing] (J0)
  • errors::verify_parse_multiple_where_clauses_103: [missing] -> pass (J0)
  • errors::verify_parse_mut_on_nested_ident_pattern_124: pass -> [missing] (J0)
  • errors::verify_parse_need_plus_after_trait_object_lifetime_136: [missing] -> pass (J0)
  • errors::verify_parse_nested_adt_162: [missing] -> pass (J0)
  • errors::verify_parse_non_string_abi_literal_43: [missing] -> pass (J0)
  • errors::verify_parse_nonterminal_expected_statement_104: pass -> [missing] (J0)
  • errors::verify_parse_outer_attribute_not_allowed_on_if_else_21: [missing] -> pass (J0)
  • errors::verify_parse_path_double_colon_69: pass -> [missing] (J0)
  • errors::verify_parse_path_double_colon_71: [missing] -> pass (J0)
  • errors::verify_parse_path_found_named_params_66: pass -> [missing] (J0)
  • errors::verify_parse_path_found_named_params_67: [missing] -> pass (J0)
  • errors::verify_parse_pattern_on_wrong_side_of_at_122: [missing] -> pass (J0)
  • errors::verify_parse_remove_let_30: [missing] -> pass (J0)
  • errors::verify_parse_repeated_mut_in_pattern_126: pass -> [missing] (J0)
  • errors::verify_parse_self_param_not_first_58: pass -> [missing] (J0)
  • errors::verify_parse_single_colon_import_path_156: [missing] -> pass (J0)
  • errors::verify_parse_suffixed_literal_in_attribute_50: pass -> [missing] (J0)
  • errors::verify_parse_trailing_vert_not_allowed_120: [missing] -> pass (J0)
  • errors::verify_parse_trait_alias_cannot_be_auto_86: pass -> [missing] (J0)
  • errors::verify_parse_trait_alias_cannot_be_unsafe_89: [missing] -> pass (J0)
  • errors::verify_parse_underscore_literal_suffix_151: pass -> [missing] (J0)
  • errors::verify_parse_unexpected_default_value_for_lifetime_in_generic_parameters_102: [missing] -> pass (J0)
  • errors::verify_parse_unexpected_if_with_if_63: pass -> [missing] (J0)
  • errors::verify_parse_unexpected_lifetime_in_pattern_123: pass -> [missing] (J0)
  • errors::verify_parse_unexpected_self_in_generic_parameters_100: pass -> [missing] (J0)
  • errors::verify_parse_unexpected_token_after_dot_77: [missing] -> pass (J0)
  • errors::verify_parse_unexpected_token_after_struct_name_found_keyword_95: pass -> [missing] (J0)
  • errors::verify_parse_unexpected_token_after_struct_name_found_metavar_99: [missing] -> pass (J0)
  • errors::verify_parse_unexpected_token_after_struct_name_found_reserved_identifier_95: [missing] -> pass (J0)
  • errors::verify_parse_unexpected_vert_vert_in_pattern_118: pass -> [missing] (J0)
  • errors::verify_parse_unknown_builtin_construct_167: pass -> [missing] (J0)
  • errors::verify_parse_unknown_builtin_construct_168: [missing] -> pass (J0)
  • errors::verify_parse_unmatched_angle_164: [missing] -> pass (J0)
  • errors::verify_parse_unmatched_angle_brackets_52: [missing] -> pass (J0)
  • errors::verify_parse_use_empty_block_not_semi_31: pass -> [missing] (J0)
  • errors::verify_parse_where_generics_148: [missing] -> pass (J0)
  • errors::verify_passes_allow_internal_unstable_80: pass -> [missing] (J0)

Stage 2

  • [run-make] tests/run-make/link-under-xcode: [missing] -> pass (J1)

(and 338 additional test diffs)

Additionally, 271 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 d9dba3a55476ae2da5d4e5bce8a81b341c675750 --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. pr-check-2: 4548.2s -> 2178.7s (-52.1%)
  2. aarch64-apple: 7238.5s -> 4660.4s (-35.6%)
  3. dist-apple-various: 6065.6s -> 3911.0s (-35.5%)
  4. x86_64-apple-2: 5998.2s -> 4279.4s (-28.7%)
  5. x86_64-apple-1: 9683.6s -> 7151.0s (-26.2%)
  6. dist-x86_64-apple: 10209.7s -> 11873.9s (16.3%)
  7. x86_64-rust-for-linux: 3044.2s -> 2620.5s (-13.9%)
  8. x86_64-gnu-llvm-19: 2808.2s -> 2441.7s (-13.1%)
  9. pr-check-1: 1662.6s -> 1469.1s (-11.6%)
  10. aarch64-gnu-llvm-19-2: 2523.9s -> 2237.2s (-11.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

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#131477 Apple: Always pass SDK root when linking with cc, and pas… 1d3bd1ea756883a6951bae0354e1889719292818 (link)
#139806 std: sys: pal: uefi: Overhaul Time ada25d1ebf1f24318004e3562d86832a27445ba9 (link)
#144386 Extract TraitImplHeader in AST/HIR 47e1934bfb6f9ed4e09a8cc9047b896459a6f8d2 (link)
#144921 Don't emit rustdoc::broken_intra_doc_links for GitHub-fla… bffbe8e7bac97b353c345654df59e0944b2354b1 (link)
#145155 Port #[allow_internal_unsafe] to the new attribute system… 0f3ddfcc9234bb282ee19082ea3613764dfbfd7d (link)
#145214 fix: re-enable self-assignment b58963be08090aa95253fc0d76501574cc66b1b3 (link)
#145216 rustdoc: correct negative-to-implicit discriminant display 1f7059d45f7be013b217e5912ab837e40c2c87f8 (link)
#145238 Tweak invalid builtin attribute output 06a39a3a6bcc526b23920a4a9fe9bbd31d4957b7 (link)
#145249 Rename entered trace span variables from _span to `_trac… 719ec377c030d201bbd4f443fb69b8926f5b3ac3 (link)
#145251 Support using #[unstable_feature_bound] on trait 8d9c2b1f12f41def10c8ec6820607f429d493c79 (link)
#145253 Document compiler and stdlib in stage1 in pr-check-2 CI j… 62e277df4103359ab24550d5871efe56d95fcda2 (link)
#145260 Make explicit guarantees about Vec’s allocator c843c109cd761d6f15010a2baba2ab92f7c2f763 (link)
#145263 Update books fae6ef209a604efc9179e0ea7560dbff33050e3a (link)
#145273 Account for new assert! desugaring in !condition sugges… 8219311585a345a13596efe2538fdce74e307680 (link)
#145283 Make I-miscompile imply I-prioritize 07808c5a88845e1909ded65956c55bc171b563a6 (link)
#145291 bootstrap: Only warn about rust.debug-assertions if downl… 2d614ac4e75be9535565459c1ae16b1b59a51e5e (link)
#145292 Fix a typo in range docs ecc892c96d8e635b05c06612b844e314b371dad9 (link)

previous master: a1531335fe

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

Overall result: ❌ regressions - 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.3%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary 1.1%)

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

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

Cycles

Results (primary -2.5%, secondary -3.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)
- - 0
Improvements ✅
(primary)
-2.5% [-2.9%, -2.1%] 2
Improvements ✅
(secondary)
-3.2% [-3.2%, -3.2%] 1
All ❌✅ (primary) -2.5% [-2.9%, -2.1%] 2

Binary size

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

Bootstrap: 465.439s -> 464.325s (-0.24%)
Artifact size: 377.34 MiB -> 377.45 MiB (0.03%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs A-rustc-dev-guide Area: rustc-dev-guide A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. O-apple Operating system: Apple (macOS, iOS, tvOS, visionOS, watchOS) 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-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure 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. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.
Projects
None yet
Development

Successfully merging this pull request may close these issues.