Skip to content

Conversation

@JonathanBrouwer
Copy link
Contributor

Successful merges:

r? @ghost

Create a similar rollup

davidtwco and others added 30 commits December 19, 2025 11:57
Added an example for profiling an external crate diff locally. The
original issue  also mentions that the debuginfo-level = 1 should be
highlighted, but that has been solved by a different commit and as such
was not included here.
Changed so cargo specifies the binary collector, removing the need to
link to its local binary. Clarified that the SHAs should be from the
rustc-repo, but the command should be ran in the rustc-perf repo.
Retire outdated stage0 std remarks
This updates the rust-version file to 44a5b55.
Removes the double subject "it" in the safety documentation of
`core::ptr::split_at_mut` for raw slice pointers, as it does not refer
to anything.

Reported-by: Johnathan Van Why <[email protected]>
I don't think it is necessary anymore. As I understand it from issue
39504 the original problem was that rustbuild changed a hardlink in the
cargo build dir to point to copy in the sysroot while cargo may have
hardlinked it to the original first. I don't think this happens anymore
and as such this workaround is no longer necessary.
–- → – (extra ASCII minus after endash)

Introduced in rust-lang#140463 (11627f0).
- Since UEFI has no threads, this should be safe.
- Makes compiling remote-test-server simpler.

Signed-off-by: Ayush Singh <[email protected]>
sembt borrow_check/opaque-types-region-inference-restrictions
@rustbot rustbot added 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 Jan 13, 2026
@JonathanBrouwer
Copy link
Contributor Author

@bors r+ rollup=never p=5

@rust-bors rust-bors bot added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Jan 13, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 13, 2026

📌 Commit 7ee6257 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-bors rust-bors bot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jan 13, 2026
@JonathanBrouwer
Copy link
Contributor Author

@bors try jobs=dist-various-*,test-various

@rust-bors

This comment has been minimized.

rust-bors bot pushed a commit that referenced this pull request Jan 13, 2026
Rollup of 14 pull requests


try-job: dist-various-*
try-job: test-various
@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 13, 2026

☀️ Try build successful (CI)
Build commit: 9751bf4 (9751bf4187dfe51a0879dfaaf35db5adb0aab1d3, parent: 2f1bd3f3781c90a8447e37d65a898442b8618895)

@rust-bors

This comment has been minimized.

@rust-bors rust-bors bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jan 13, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 13, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Pushing db1484b to main...

@rust-bors rust-bors bot merged commit db1484b into rust-lang:main Jan 13, 2026
13 checks passed
@rustbot rustbot added this to the 1.94.0 milestone Jan 13, 2026
@github-actions
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 b2a322b (parent) -> db1484b (this PR)

Test differences

Show 634 test diffs

Stage 0

  • errors::verify_passes_abi_invalid_attribute_60: pass -> [missing] (J0)
  • errors::verify_passes_custom_mir_incompatible_dialect_and_phase_103: [missing] -> pass (J0)
  • errors::verify_passes_custom_mir_incompatible_dialect_and_phase_106: pass -> [missing] (J0)
  • errors::verify_passes_custom_mir_phase_requires_dialect_105: pass -> [missing] (J0)
  • errors::verify_passes_debug_visualizer_unreadable_31: [missing] -> pass (J0)
  • errors::verify_passes_deprecated_annotation_has_no_effect_40: [missing] -> pass (J0)
  • errors::verify_passes_eii_impl_not_function_107: pass -> [missing] (J0)
  • errors::verify_passes_function_not_have_default_implementation_108: [missing] -> pass (J0)
  • errors::verify_passes_inline_ignored_for_exported_69: pass -> [missing] (J0)
  • errors::verify_passes_lang_item_fn_with_track_caller_45: [missing] -> pass (J0)
  • errors::verify_passes_lang_item_on_incorrect_target_47: [missing] -> pass (J0)
  • errors::verify_passes_layout_homogeneous_aggregate_53: [missing] -> pass (J0)
  • errors::verify_passes_layout_invalid_attribute_57: pass -> [missing] (J0)
  • errors::verify_passes_missing_const_stab_attr_79: [missing] -> pass (J0)
  • errors::verify_passes_missing_stability_attr_80: pass -> [missing] (J0)
  • errors::verify_passes_repr_align_should_be_align_static_104: pass -> [missing] (J0)
  • errors::verify_passes_rustc_allow_const_fn_unstable_34: pass -> [missing] (J0)
  • errors::verify_passes_rustc_legacy_const_generics_index_24: [missing] -> pass (J0)
  • errors::verify_passes_rustc_pub_transparent_33: [missing] -> pass (J0)
  • errors::verify_passes_sanitize_attribute_not_allowed_90: [missing] -> pass (J0)
  • errors::verify_passes_sanitize_attribute_not_allowed_93: pass -> [missing] (J0)
  • errors::verify_passes_trait_impl_const_stable_82: pass -> [missing] (J0)
  • errors::verify_passes_transparent_incompatible_75: pass -> [missing] (J0)
  • errors::verify_passes_unexportable_generic_fn_94: [missing] -> pass (J0)
  • errors::verify_passes_unexportable_type_in_interface_97: [missing] -> pass (J0)
  • errors::verify_passes_unstable_attr_for_already_stable_feature_77: [missing] -> pass (J0)
  • errors::verify_passes_unsupported_attributes_in_where_92: [missing] -> pass (J0)
  • session_diagnostics::verify_attr_parsing_as_needed_compatibility_60: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_doc_alias_malformed_63: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_doc_alias_malformed_64: [missing] -> pass (J0)
  • session_diagnostics::verify_attr_parsing_doc_attribute_not_attribute_6: [missing] -> pass (J0)
  • session_diagnostics::verify_attr_parsing_doc_keyword_not_keyword_4: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_empty_link_name_49: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_incompatible_wasm_link_52: [missing] -> pass (J0)
  • session_diagnostics::verify_attr_parsing_incorrect_repr_format_align_one_arg_19: [missing] -> pass (J0)
  • session_diagnostics::verify_attr_parsing_incorrect_repr_format_expect_literal_integer_20: [missing] -> pass (J0)
  • session_diagnostics::verify_attr_parsing_invalid_alignment_value_40: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_invalid_alignment_value_41: [missing] -> pass (J0)
  • session_diagnostics::verify_attr_parsing_invalid_repr_generic_18: [missing] -> pass (J0)
  • session_diagnostics::verify_attr_parsing_invalid_target_39: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_missing_issue_12: [missing] -> pass (J0)
  • session_diagnostics::verify_attr_parsing_missing_since_6: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_multiple_stability_levels_8: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_non_ident_feature_11: [missing] -> pass (J0)
  • session_diagnostics::verify_attr_parsing_null_on_link_section_32: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_whole_archive_needs_static_60: [missing] -> pass (J0)

Stage 1

  • errors::verify_passes_abi_invalid_attribute_58: [missing] -> pass (J1)
  • errors::verify_passes_attr_application_enum_71: pass -> [missing] (J1)
  • errors::verify_passes_attr_application_struct_enum_union_72: [missing] -> pass (J1)
  • errors::verify_passes_const_stable_not_stable_87: pass -> [missing] (J1)
  • errors::verify_passes_deprecated_annotation_has_no_effect_42: pass -> [missing] (J1)
  • errors::verify_passes_duplicate_feature_err_85: pass -> [missing] (J1)
  • errors::verify_passes_eii_fn_with_track_caller_105: [missing] -> pass (J1)
  • errors::verify_passes_eii_impl_not_function_107: pass -> [missing] (J1)
  • errors::verify_passes_extern_main_63: [missing] -> pass (J1)
  • errors::verify_passes_function_not_found_in_trait_112: pass -> [missing] (J1)
  • errors::verify_passes_inline_ignored_for_exported_67: [missing] -> pass (J1)
  • errors::verify_passes_lang_item_fn_with_track_caller_45: [missing] -> pass (J1)
  • errors::verify_passes_link_24: pass -> [missing] (J1)
  • errors::verify_passes_missing_const_stab_attr_79: [missing] -> pass (J1)
  • errors::verify_passes_missing_panic_handler_42: [missing] -> pass (J1)
  • errors::verify_passes_missing_stability_attr_78: [missing] -> pass (J1)
  • errors::verify_passes_multiple_rustc_main_62: [missing] -> pass (J1)
  • errors::verify_passes_panic_unwind_without_std_45: pass -> [missing] (J1)
  • errors::verify_passes_repr_align_greater_than_target_max_28: [missing] -> pass (J1)
  • errors::verify_passes_repr_align_should_be_align_103: pass -> [missing] (J1)
  • errors::verify_passes_rustc_const_stable_indirect_pairing_94: pass -> [missing] (J1)
  • errors::verify_passes_rustc_legacy_const_generics_index_24: [missing] -> pass (J1)
  • errors::verify_passes_rustc_legacy_const_generics_index_exceed_27: pass -> [missing] (J1)
  • errors::verify_passes_rustc_legacy_const_generics_only_25: pass -> [missing] (J1)
  • errors::verify_passes_sanitize_attribute_not_allowed_90: [missing] -> pass (J1)
  • errors::verify_passes_unexportable_fn_abi_98: pass -> [missing] (J1)
  • errors::verify_passes_unexportable_item_93: [missing] -> pass (J1)
  • errors::verify_passes_unexportable_type_in_interface_100: pass -> [missing] (J1)
  • errors::verify_passes_unknown_feature_alias_81: [missing] -> pass (J1)
  • errors::verify_passes_unstable_attr_for_already_stable_feature_77: [missing] -> pass (J1)
  • errors::verify_passes_useless_stability_77: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_doc_attr_not_crate_level_4: [missing] -> pass (J1)
  • session_diagnostics::verify_attr_parsing_doc_attribute_not_attribute_6: [missing] -> pass (J1)
  • session_diagnostics::verify_attr_parsing_doc_keyword_not_keyword_4: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_expects_feature_list_26: [missing] -> pass (J1)
  • session_diagnostics::verify_attr_parsing_expects_features_26: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_incompatible_wasm_link_52: [missing] -> pass (J1)
  • session_diagnostics::verify_attr_parsing_incorrect_repr_format_packed_expect_integer_14: [missing] -> pass (J1)
  • session_diagnostics::verify_attr_parsing_incorrect_repr_format_packed_one_or_zero_arg_13: [missing] -> pass (J1)
  • session_diagnostics::verify_attr_parsing_invalid_repr_align_need_arg_16: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_invalid_repr_align_need_arg_17: [missing] -> pass (J1)
  • session_diagnostics::verify_attr_parsing_invalid_repr_hint_no_paren_14: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_limit_invalid_63: [missing] -> pass (J1)
  • session_diagnostics::verify_attr_parsing_multiple_modifiers_56: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_naked_functions_incompatible_attribute_45: [missing] -> pass (J1)
  • session_diagnostics::verify_attr_parsing_null_on_objc_class_33: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_rustc_allowed_unstable_pairing_21: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_rustc_allowed_unstable_pairing_22: [missing] -> pass (J1)
  • session_diagnostics::verify_attr_parsing_stability_outside_std_38: [missing] -> pass (J1)
  • session_diagnostics::verify_attr_parsing_unrecognized_repr_hint_43: [missing] -> pass (J1)
  • session_diagnostics::verify_attr_parsing_unstable_feature_bound_incompatible_stability_44: [missing] -> pass (J1)
  • session_diagnostics::verify_attr_parsing_unused_multiple_30: pass -> [missing] (J1)
  • session_diagnostics::verify_attr_parsing_whole_archive_needs_static_59: pass -> [missing] (J1)
  • [assembly] tests/assembly-llvm/asm/s390x-types.rs#s390x: pass -> ignore (ignored when the LLVM version 20.1.2 is older than 21.0.0) (J2)

(and 522 additional test diffs)

Additionally, 12 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 db1484bdee1cb065b322a5bd512b39c49dadc9e5 --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. aarch64-apple: 9255.9s -> 12291.1s (+32.8%)
  2. dist-aarch64-llvm-mingw: 5308.1s -> 6381.3s (+20.2%)
  3. test-various: 7487.1s -> 6108.1s (-18.4%)
  4. pr-check-1: 1685.4s -> 1969.3s (+16.8%)
  5. aarch64-msvc-2: 6653.3s -> 5619.6s (-15.5%)
  6. i686-gnu-2: 5259.7s -> 6076.7s (+15.5%)
  7. x86_64-rust-for-linux: 2688.2s -> 3102.4s (+15.4%)
  8. x86_64-gnu-gcc: 3032.7s -> 3460.0s (+14.1%)
  9. x86_64-gnu-miri: 4464.6s -> 5027.2s (+12.6%)
  10. i686-gnu-1: 7365.6s -> 8274.2s (+12.3%)
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
#150151 Destabilise target-spec-json 383cc0ac7ecc05685e05f2f1a0040d3cc66f5da1 (link)
#150826 Add f16 inline ASM support for s390x 8c71d78de6a6e008c349ab71e4e8b858cf07132e (link)
#150883 Improve span for "unresolved intra doc link" on `deprecated… 0f6029510fbb7d48eedb2ba7313af54091698b4f (link)
#150934 Move some checks from check_doc_attrs directly into `rust… 01517e85dad5d7cd2e54d091e924739490c61f8e (link)
#150943 Port #[must_not_suspend] to attribute parser 3344a1562f350b12430882a5fdebecaa17f6eab1 (link)
#150990 std: sys: net: uefi: Make TcpStream Send c86dbd3e3f29dfe596d4403294f2d15503b02f7c (link)
#150995 core: ptr: split_at_mut: fix typo in safety doc 1bedead9b3ebaf633b417f7c39681c41eff19e69 (link)
#150998 Relax test expectation for @__llvm_profile_runtime_user cfa54e4ecc0331d295fea1c7c6e192f7495bc6a6 (link)
#151002 Remove a workaround for a bug (take 2) f2f85f934ee74f0884fd28c08eae41d838c88c2b (link)
#151005 Fix typo in MaybeUninit docs 01be4242524d3131436e4974ec82ea32b253cc84 (link)
#151011 Update books dbe622c9175cd7805711ef07e458ab4bd8dde848 (link)
#151029 rustc-dev-guide subtree update 171ba28419fbe21f391e6709993c1269799a2ac6 (link)
#151032 fix: added missing backtick in triagebot.toml 23b94a2cffcd2f7c2b30e5f391c235283499526a (link)
#151035 Don't suggest replacing closure parameter with type name 7b78446e6d5a8d92195d55d917620c94bc37fee1 (link)

previous master: b2a322beb2

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

Overall result: ❌✅ regressions and improvements - please read the text below

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

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

Max RSS (memory usage)

Results (primary 2.3%, secondary -2.6%)

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

mean range count
Regressions ❌
(primary)
2.3% [2.3%, 2.3%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.6% [-4.1%, -1.5%] 4
All ❌✅ (primary) 2.3% [2.3%, 2.3%] 1

Cycles

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

Binary size

Results (primary 0.2%, secondary 0.1%)

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

mean range count
Regressions ❌
(primary)
0.2% [0.1%, 0.2%] 8
Regressions ❌
(secondary)
0.1% [0.1%, 0.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.2% [0.1%, 0.2%] 8

Bootstrap: 473.958s -> 474.378s (0.09%)
Artifact size: 383.19 MiB -> 383.16 MiB (-0.01%)

@JonathanBrouwer
Copy link
Contributor Author

Probably an attr related regression again :c
I started jobs on the attr parsing changes

@JonathanBrouwer
Copy link
Contributor Author

JonathanBrouwer commented Jan 13, 2026

@rustbot label: +perf-regression-triaged
Caused by #150934

@rustbot rustbot added the perf-regression-triaged The performance regression has been triaged. label Jan 13, 2026
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-rustc-dev-guide Area: rustc-dev-guide merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. perf-regression-triaged The performance regression has been triaged. rollup A PR which is a rollup 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.