Skip to content

Conversation

jhpratt
Copy link
Member

@jhpratt jhpratt commented Jun 17, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

fee1-dead and others added 30 commits May 26, 2025 15:21
this is one-time initialization data, it can just
be a function parameter.

we also move the json parsing into createSrcSidebar
to save a few bytes.
This allows a more gradual transition path for projects that need to use
use the spec-complaint C ABI both with older and newer rustc versions.
…x, r=jhpratt

impl `Default` for `array::IntoIter`

cc rust-lang#91583

my personal use of this feature comes from https://github.com/fee1-dead/w/blob/092db5df631ea515b688bae99c7f02eef12d7221/src/cont.rs#L154-L170

insta-stable, but I feel like this is small enough to _not_ require an ACP (but a FCP per https://forge.rust-lang.org/libs/maintaining-std.html#when-theres-new-trait-impls)? feel free to correct me if I am wrong.
Add support for repetition to `proc_macro::quote`

Progress toward: rust-lang#140238
…67, r=GuillaumeGomez

rustdoc: make srcIndex no longer a global variable

this is one-time initialization data, it can just
be a function parameter.

while we're doing that, we can more the json parsing into the function and save a few extra bytes of storage for free, at least in the case of multiple crates in a doc bundle.

fixes rust-lang#138467
…s, r=petrochenkov

avoid `&mut P<T>` in `visit_expr` etc methods

trying a different way than rust-lang#141636
r? ghost
…lacrum

Windows: Use anonymous pipes in Command

When setting `Stdio::pipe` on `Command` we want to create an anonymous pipe that can be used asynchronously (at least on our end). Usually we'd use [`CreatePipe`](https://learn.microsoft.com/en-us/windows/win32/api/namedpipeapi/nf-namedpipeapi-createpipe) to open anonymous pipes but unfortunately it opens pipes for synchronous access. The alternative is to use [`CreateNamedPipeW`](https://learn.microsoft.com/en-us/windows/win32/api/namedpipeapi/nf-namedpipeapi-createnamedpipew) which does allow asynchronous access but that requires giving a file name to the pipe. So we currently have this awful hack where we attempt to emulate anonymous pipes using `CreateNamedPipeW` by attempting to create a unique name and looping until we find one that doesn't already exist.

The better option is to use the lower level [`NtCreateNamedPipeFile`](https://learn.microsoft.com/en-us/windows/win32/devnotes/nt-create-named-pipe-file) (which is used internally by both `CreatePipe` and `CreateNamedPipeW`). This function wasn't documented until a few years ago but now that it is it's ok for us to use it.

try-job: *msvc*
try-job: *mingw*
alloc: less static mut + some cleanup

I'm looking into rust-lang#125035 and would like some feedback on my approach.
Generic ctx imprv

Cleanup work for my gpu pr

r? `@oli-obk`
…li-obk

Don't unwrap in enzyme builds in case of missing llvm-config

r? `@onur-ozkan`

For some reason x.py was now panicking in this location, so I also removed the unwrap here.
part 2 of rust-lang#140000, there shouldn't be other locations where we check for llvm-config.
…rget-more-accurately, r=wesleywiser

Refresh module-level docs for `rustc_target::spec`

We have long since gone on a curveball from the flexible-target-specification RFC by introducing stability and soundness promises to the language and compiler which we often struggle with extending to target-specific implementation details. Indeed, we often *literally cannot*. We also have modified the search algorithm details. Update the comments for `rustc_target::spec` considerably.
…r=lolbinarycat

Lint about `console` calls in rustdoc JS

As discussed [here](rust-lang#142100 (comment)), this PR enforces that `console` is not used in rustdoc JS by default.

cc `@lolbinarycat`
… r=jhpratt

Remove a panicking branch in `BorrowedCursor::advance`
Dont suggest remove semi inside macro expansion for redundant semi lint

Fixes rust-lang#142143

r? compiler
jhpratt added 2 commits June 17, 2025 23:19
Update cargo

6 commits in fc1518ef02b77327d70d4026b95ea719dd9b8c51..2251525ae503fa196f6d7f9ce6d32eccb2d5f044
2025-06-06 04:49:44 +0000 to 2025-06-16 22:01:27 +0000
- feat: Add custom completer for `cargo remove &lt;TAB&gt;` (rust-lang/cargo#15662)
- chore(deps): update msrv (3 versions) to v1.85 (rust-lang/cargo#15668)
- refactor: replace InternedString with Cow in IndexPackage (rust-lang/cargo#15559)
- highlight the correct words (rust-lang/cargo#15659)
- CHANGELOG.md: typo (rust-lang/cargo#15660)
- Use `Not::not` rather than a custom `is_false` function (rust-lang/cargo#15645)
…orkingjubilee

Temporarily add back -Zwasm-c-abi=spec

This allows a more gradual transition path for projects that need to use use the spec-complaint C ABI both with older and newer rustc versions.
@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-rustdoc-search Area: Rustdoc's search feature F-autodiff `#![feature(autodiff)]` O-windows Operating system: Windows 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. 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 Jun 17, 2025
@jhpratt
Copy link
Member Author

jhpratt commented Jun 17, 2025

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Jun 17, 2025

📌 Commit 3ec1451 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 17, 2025
@bors
Copy link
Collaborator

bors commented Jun 18, 2025

⌛ Testing commit 3ec1451 with merge 77ec48f...

@bors
Copy link
Collaborator

bors commented Jun 18, 2025

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

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

Test differences

Show 147 test diffs

Stage 1

  • lints::verify_lint_ambiguous_glob_reexport_142: pass -> [missing] (J0)
  • lints::verify_lint_associated_const_elided_lifetime_144: [missing] -> pass (J0)
  • lints::verify_lint_atomic_ordering_fence_90: [missing] -> pass (J0)
  • lints::verify_lint_atomic_ordering_fence_91: pass -> [missing] (J0)
  • lints::verify_lint_atomic_ordering_invalid_91: [missing] -> pass (J0)
  • lints::verify_lint_atomic_ordering_invalid_92: pass -> [missing] (J0)
  • lints::verify_lint_atomic_ordering_load_88: [missing] -> pass (J0)
  • lints::verify_lint_atomic_ordering_load_89: pass -> [missing] (J0)
  • lints::verify_lint_atomic_ordering_store_89: [missing] -> pass (J0)
  • lints::verify_lint_avoid_att_syntax_112: [missing] -> pass (J0)
  • lints::verify_lint_avoid_intel_syntax_112: pass -> [missing] (J0)
  • lints::verify_lint_byte_slice_in_packed_struct_with_derive_139: pass -> [missing] (J0)
  • lints::verify_lint_cfg_attr_no_attributes_116: [missing] -> pass (J0)
  • lints::verify_lint_custom_inner_attribute_unstable_125: pass -> [missing] (J0)
  • lints::verify_lint_duplicate_matcher_binding_119: [missing] -> pass (J0)
  • lints::verify_lint_duplicate_matcher_binding_120: pass -> [missing] (J0)
  • lints::verify_lint_extern_without_abi_129: pass -> [missing] (J0)
  • lints::verify_lint_hidden_glob_reexport_142: [missing] -> pass (J0)
  • lints::verify_lint_hidden_glob_reexport_143: pass -> [missing] (J0)
  • lints::verify_lint_ill_formed_attribute_input_122: [missing] -> pass (J0)
  • lints::verify_lint_ill_formed_attribute_input_123: pass -> [missing] (J0)
  • lints::verify_lint_incomplete_include_113: [missing] -> pass (J0)
  • lints::verify_lint_incomplete_include_114: pass -> [missing] (J0)
  • lints::verify_lint_inner_macro_attribute_unstable_123: [missing] -> pass (J0)
  • lints::verify_lint_inner_macro_attribute_unstable_124: pass -> [missing] (J0)
  • lints::verify_lint_invalid_asm_label_binary_102: [missing] -> pass (J0)
  • lints::verify_lint_invalid_asm_label_binary_103: pass -> [missing] (J0)
  • lints::verify_lint_invalid_asm_label_format_arg_101: [missing] -> pass (J0)
  • lints::verify_lint_invalid_asm_label_format_arg_102: pass -> [missing] (J0)
  • lints::verify_lint_invalid_asm_label_named_101: pass -> [missing] (J0)
  • lints::verify_lint_legacy_derive_helpers_129: [missing] -> pass (J0)
  • lints::verify_lint_legacy_derive_helpers_130: pass -> [missing] (J0)
  • lints::verify_lint_macro_expanded_macro_exports_accessed_by_absolute_paths_126: [missing] -> pass (J0)
  • lints::verify_lint_macro_expanded_macro_exports_accessed_by_absolute_paths_127: pass -> [missing] (J0)
  • lints::verify_lint_macro_is_private_108: [missing] -> pass (J0)
  • lints::verify_lint_macro_is_private_109: pass -> [missing] (J0)
  • lints::verify_lint_macro_rule_never_used_111: pass -> [missing] (J0)
  • lints::verify_lint_macro_use_deprecated_104: [missing] -> pass (J0)
  • lints::verify_lint_macro_use_deprecated_105: pass -> [missing] (J0)
  • lints::verify_lint_metavariable_still_repeating_117: [missing] -> pass (J0)
  • lints::verify_lint_metavariable_wrong_operator_118: [missing] -> pass (J0)
  • lints::verify_lint_metavariable_wrong_operator_119: pass -> [missing] (J0)
  • lints::verify_lint_missing_unsafe_on_extern_135: [missing] -> pass (J0)
  • lints::verify_lint_missing_unsafe_on_extern_136: pass -> [missing] (J0)
  • lints::verify_lint_named_argument_used_positionally_137: [missing] -> pass (J0)
  • lints::verify_lint_named_argument_used_positionally_138: pass -> [missing] (J0)
  • lints::verify_lint_only_cast_u8_to_char_82: [missing] -> pass (J0)
  • lints::verify_lint_only_cast_u8_to_char_83: pass -> [missing] (J0)
  • lints::verify_lint_or_patterns_back_compat_131: pass -> [missing] (J0)
  • lints::verify_lint_out_of_scope_macro_calls_146: [missing] -> pass (J0)
  • lints::verify_lint_overflowing_literal_84: [missing] -> pass (J0)
  • lints::verify_lint_overflowing_uint_83: [missing] -> pass (J0)
  • lints::verify_lint_overflowing_uint_84: pass -> [missing] (J0)
  • lints::verify_lint_path_statement_no_effect_95: [missing] -> pass (J0)
  • lints::verify_lint_private_extern_crate_reexport_107: pass -> [missing] (J0)
  • lints::verify_lint_raw_prefix_132: [missing] -> pass (J0)
  • lints::verify_lint_raw_prefix_133: pass -> [missing] (J0)
  • lints::verify_lint_redundant_import_visibility_145: [missing] -> pass (J0)
  • lints::verify_lint_redundant_import_visibility_146: pass -> [missing] (J0)
  • lints::verify_lint_redundant_semicolons_82: pass -> [missing] (J0)
  • lints::verify_lint_reserved_multihash_150: pass -> [missing] (J0)
  • lints::verify_lint_reserved_prefix_131: [missing] -> pass (J0)
  • lints::verify_lint_reserved_prefix_132: pass -> [missing] (J0)
  • lints::verify_lint_reserved_string_149: pass -> [missing] (J0)
  • lints::verify_lint_trailing_semi_macro_135: pass -> [missing] (J0)
  • lints::verify_lint_unexpected_builtin_cfg_104: pass -> [missing] (J0)
  • lints::verify_lint_unit_bindings_100: pass -> [missing] (J0)
  • lints::verify_lint_unit_bindings_99: [missing] -> pass (J0)
  • lints::verify_lint_unnameable_test_items_114: [missing] -> pass (J0)
  • lints::verify_lint_unnameable_test_items_115: pass -> [missing] (J0)
  • lints::verify_lint_unnecessary_qualification_143: [missing] -> pass (J0)
  • lints::verify_lint_unnecessary_qualification_144: pass -> [missing] (J0)
  • lints::verify_lint_unqualified_local_imports_147: [missing] -> pass (J0)
  • lints::verify_lint_unqualified_local_imports_148: pass -> [missing] (J0)
  • lints::verify_lint_unused_allocation_98: pass -> [missing] (J0)
  • lints::verify_lint_unused_allocation_mut_98: [missing] -> pass (J0)
  • lints::verify_lint_unused_builtin_attribute_133: [missing] -> pass (J0)
  • lints::verify_lint_unused_closure_93: [missing] -> pass (J0)
  • lints::verify_lint_unused_closure_94: pass -> [missing] (J0)
  • lints::verify_lint_unused_coroutine_95: pass -> [missing] (J0)
  • lints::verify_lint_unused_crate_dependency_121: [missing] -> pass (J0)
  • lints::verify_lint_unused_crate_dependency_122: pass -> [missing] (J0)
  • lints::verify_lint_unused_doc_comment_127: [missing] -> pass (J0)
  • lints::verify_lint_unused_doc_comment_128: pass -> [missing] (J0)
  • lints::verify_lint_unused_extern_crate_140: pass -> [missing] (J0)
  • lints::verify_lint_unused_label_107: [missing] -> pass (J0)
  • lints::verify_lint_unused_label_108: pass -> [missing] (J0)
  • lints::verify_lint_unused_lifetime_136: [missing] -> pass (J0)
  • lints::verify_lint_unused_lifetime_137: pass -> [missing] (J0)
  • lints::verify_lint_unused_macro_definition_109: [missing] -> pass (J0)
  • lints::verify_lint_unused_macro_definition_110: pass -> [missing] (J0)
  • lints::verify_lint_unused_macro_use_106: pass -> [missing] (J0)
  • lints::verify_lint_unused_result_92: [missing] -> pass (J0)
  • lints::verify_lint_uses_power_alignment_85: [missing] -> pass (J0)
  • lints::verify_lint_uses_power_alignment_86: pass -> [missing] (J0)
  • lints::verify_lint_variant_size_differences_87: [missing] -> pass (J0)
  • lints::verify_lint_variant_size_differences_88: pass -> [missing] (J0)
  • transmute::verify_lint_undefined_transmute_150: [missing] -> pass (J0)
  • transmute::verify_lint_undefined_transmute_151: pass -> [missing] (J0)

Stage 2

  • [ui] tests/ui/lint/redundant-semicolon/suggest-remove-semi-in-macro-expansion-issue-142143.rs: [missing] -> pass (J1)

(and 41 additional test diffs)

Additionally, 6 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 77ec48f5642ee1aa451d270f11f308c297f55f76 --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: 3645.1s -> 4849.4s (33.0%)
  2. dist-aarch64-apple: 6388.3s -> 4784.6s (-25.1%)
  3. mingw-check-1: 1607.3s -> 1993.8s (24.0%)
  4. x86_64-msvc-ext1: 6776.8s -> 7807.6s (15.2%)
  5. i686-gnu-2: 5412.2s -> 6227.2s (15.1%)
  6. x86_64-gnu-llvm-20-1: 3222.1s -> 3704.4s (15.0%)
  7. x86_64-apple-1: 6518.2s -> 7448.6s (14.3%)
  8. x86_64-rust-for-linux: 2571.6s -> 2916.1s (13.4%)
  9. i686-gnu-nopt-1: 7042.8s -> 7932.4s (12.6%)
  10. i686-gnu-1: 7231.0s -> 8073.9s (11.7%)
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
#141574 impl Default for array::IntoIter 1ecfac647c9281baa4ea38b4c1ae85da25dc1745 (link)
#141608 Add support for repetition to proc_macro::quote a45f31e36a51d27dcda25b19ccb788917cb99ff3 (link)
#142100 rustdoc: make srcIndex no longer a global variable d23ea442789f4806883ce8ac20f199cfdae67117 (link)
#142371 avoid &mut P<T> in visit_expr etc methods 3f9068fdfb56513488984e4d7515ff2419d1a951 (link)
#142517 Windows: Use anonymous pipes in Command 6822a9127e1579aa1314fca8789e01e3c72c1b4b (link)
#142520 alloc: less static mut + some cleanup 8f888b89a2504f2cfb29bcc6b7003923a0336e6e (link)
#142588 Generic ctx imprv 66c88d634b59f5651ea068b923bc19e608011683 (link)
#142605 Don't unwrap in enzyme builds in case of missing llvm-config 60164b96fb57a9a99766d4cad648d733af3a70bd (link)
#142608 Refresh module-level docs for rustc_target::spec a69b9cd5dd5e98cc14ea82e9e9b13690e6f91ae0 (link)
#142618 Lint about console calls in rustdoc JS ee84d798efad2af327deefa592dd96f818f44b6c (link)
#142620 Remove a panicking branch in BorrowedCursor::advance afb130f513d156fe9fdfe2b8faed282020d32dd8 (link)
#142631 Dont suggest remove semi inside macro expansion for redunda… d7ed4b18b67c4c0f58c98db5b4acf6b92cdf5941 (link)
#142632 Update cargo cd713bcb7119912baf82e2c1882222e1132ec74b (link)
#142635 Temporarily add back -Zwasm-c-abi=spec 9faa8384b9a6809e37d9e837ae63e5696a94d7a3 (link)

previous master: 27eb2690f4

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 (77ec48f): 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.4% [0.4%, 0.4%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.4% [0.4%, 0.4%] 1

Max RSS (memory usage)

Results (primary -2.1%)

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

mean range count
Regressions ❌
(primary)
2.4% [2.4%, 2.4%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-3.2% [-6.3%, -0.9%] 4
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.1% [-6.3%, 2.4%] 5

Cycles

Results (secondary -2.1%)

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

Binary size

Results (primary 0.4%, secondary 1.2%)

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

mean range count
Regressions ❌
(primary)
0.6% [0.1%, 1.1%] 15
Regressions ❌
(secondary)
1.2% [0.5%, 2.0%] 6
Improvements ✅
(primary)
-0.4% [-0.4%, -0.4%] 2
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.4% [-0.4%, 1.1%] 17

Bootstrap: 693.336s -> 692.662s (-0.10%)
Artifact size: 372.12 MiB -> 372.09 MiB (-0.01%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-rustdoc-search Area: Rustdoc's search feature F-autodiff `#![feature(autodiff)]` merged-by-bors This PR was explicitly merged by bors. O-windows Operating system: Windows 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. 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.