Skip to content

Conversation

est31
Copy link
Member

@est31 est31 commented May 23, 2025

PR #132833 has stabilized the let_chains feature. This PR removes the last occurrence from the library.

Split out of #140966 as it caused breakage. Now we have a patch to the linux tree that fixes the build, so we update the linux tree to it.

cc Rust-for-Linux/linux#1163
cc #140722

@rustbot
Copy link
Collaborator

rustbot commented May 23, 2025

r? @Mark-Simulacrum

rustbot has assigned @Mark-Simulacrum.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. 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. labels May 23, 2025
@est31
Copy link
Member Author

est31 commented May 23, 2025

cc @nbdd0121

@rust-log-analyzer

This comment has been minimized.

@est31 est31 force-pushed the let_chains_libcore branch from 998ba0f to 6d71674 Compare May 23, 2025 00:47
@est31 est31 mentioned this pull request May 23, 2025
8 tasks
@est31
Copy link
Member Author

est31 commented May 23, 2025

r? @tgross35 as you also reviewed #140966

@rustbot rustbot assigned tgross35 and unassigned Mark-Simulacrum May 23, 2025
@tgross35
Copy link
Contributor

@bors r+

@bors
Copy link
Collaborator

bors commented May 23, 2025

📌 Commit 6d71674 has been approved by tgross35

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 May 23, 2025
@bors
Copy link
Collaborator

bors commented May 24, 2025

⌛ Testing commit 6d71674 with merge 5af801b...

@bors
Copy link
Collaborator

bors commented May 24, 2025

☀️ Test successful - checks-actions
Approved by: tgross35
Pushing 5af801b to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label May 24, 2025
@bors bors merged commit 5af801b into rust-lang:master May 24, 2025
7 checks passed
@rustbot rustbot added this to the 1.89.0 milestone May 24, 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 105354d (parent) -> 5af801b (this PR)

Test differences

Show 33262 test diffs

Stage 1

  • error::verify_middle_const_eval_non_int_5: [missing] -> pass (J0)
  • errors::verify_ast_passes_obsolete_auto_37: [missing] -> pass (J0)
  • errors::verify_builtin_macros_trace_macros_23: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_unable_to_exe_linker_50: [missing] -> pass (J0)
  • errors::verify_const_eval_long_running_25: [missing] -> pass (J0)
  • errors::verify_mir_build_non_const_path_2: [missing] -> pass (J0)
  • errors::verify_parse_assignment_else_not_allowed_45: [missing] -> pass (J0)
  • errors::verify_parse_frontmatter_invalid_close_preceding_whitespace_36: [missing] -> pass (J0)
  • errors::verify_parse_maybe_fn_typo_with_impl_61: [missing] -> pass (J0)
  • errors::verify_parse_missing_expression_in_for_loop_21: [missing] -> pass (J0)
  • errors::verify_parse_nested_adt_156: [missing] -> pass (J0)
  • errors::verify_passes_no_mangle_72: [missing] -> pass (J0)
  • lints::verify_lint_uses_power_alignment_86: [missing] -> pass (J0)
  • spec::tests::arm_unknown_linux_musleabi: [missing] -> pass (J0)
  • tests::format_raw: [missing] -> pass (J0)
  • net::udp::tests::ttl: [missing] -> pass (J1)
  • num::int_sqrt::u64_sqrt_random_small: [missing] -> pass (J1)
  • path::bench_hash_path_long: [missing] -> pass (J1)
  • sort::tests::unstable::correct_f128_ascending: [missing] -> pass (J1)
  • term::terminfo::parm::tests::test_format: [missing] -> pass (J1)
  • term::terminfo::parm::tests::test_param_stack_failure_conditions: [missing] -> pass (J1)
  • tests::run_include_ignored_option: [missing] -> pass (J1)
  • vec::bench_clone_from_01_0100_1000: [missing] -> pass (J1)
  • vec::bench_extend_1000_1000: [missing] -> pass (J1)
  • clone::test_clone_to_uninit_slice_drops_on_panic: [missing] -> pass (J2)
  • collections::btree::map::tests::test_extract_if::height_0_keeping_half: [missing] -> pass (J2)
  • collections::hash::map::tests::test_into_keys: [missing] -> pass (J2)
  • collections::linked_list::tests::test_rev_iter: [missing] -> pass (J2)
  • iter::adapters::filter::test_iterator_filter_count: [missing] -> pass (J2)
  • iter::adapters::fuse::test_fuse_fold: [missing] -> pass (J2)
  • mpsc_sync::oneshot_single_thread_try_recv_closed: [missing] -> pass (J2)
  • num::bignum::test_sub_underflow_1: [missing] -> pass (J2)
  • num::i16::test_borrowing_sub: [missing] -> pass (J2)
  • num::u16::test_carrying_add: [missing] -> pass (J2)
  • num::u16::test_count_zeros: [missing] -> pass (J2)
  • num::u8::test_next_multiple_of: [missing] -> pass (J2)
  • result::test_expect_err: [missing] -> pass (J2)
  • slice::memchr::no_match: [missing] -> pass (J2)
  • str::pattern::char_searcher_ascii_haystack::bwd: [missing] -> pass (J2)
  • sys_common::wtf8::tests::wtf8_slice_to: [missing] -> pass (J2)
  • sys_common::wtf8::tests::wtf8buf_from_string: [missing] -> pass (J2)
  • test_set_var: [missing] -> pass (J2)
  • vec::test_retain_drop_panic: [missing] -> pass (J2)
  • sort::tests::stable::correct_u64_saw_mixed: [missing] -> ignore (J3)

Stage 2

  • errors::verify_const_eval_nullary_intrinsic_fail_34: pass -> [missing] (J0)
  • errors::verify_const_eval_unallowed_inline_asm_22: pass -> [missing] (J0)
  • errors::verify_const_eval_unmarked_const_item_exposed_13: pass -> [missing] (J0)
  • errors::verify_incremental_delete_lock_24: pass -> [missing] (J0)
  • errors::verify_parse_lifetime_in_borrow_expression_7: pass -> [missing] (J0)
  • errors::verify_passes_unknown_lang_item_113: pass -> [missing] (J0)
  • errors::verify_passes_unreachable_due_to_uninhabited_165: pass -> [missing] (J0)
  • lints::verify_lint_byte_slice_in_packed_struct_with_derive_140: pass -> [missing] (J0)
  • lints::verify_lint_dangling_pointers_from_temporaries_71: pass -> [missing] (J0)
  • markdown::parse::tests::test_parse_heading: pass -> [missing] (J0)
  • pprust::tests::test_variant_to_string: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_expects_features_24: pass -> [missing] (J0)
  • spec::tests::m68k_unknown_none_elf: pass -> [missing] (J0)
  • spec::tests::riscv32im_risc0_zkvm_elf: pass -> [missing] (J0)
  • ascii::medium::case03_branch_and_subtract: pass -> [missing] (J1)
  • btree::set::difference_random_100_vs_100: pass -> [missing] (J1)
  • num::bench_i32_from_str_radix_16: pass -> [missing] (J1)
  • num::bench_i8_from_str_radix_2: pass -> [missing] (J1)
  • num::int_log::u64_log_random: pass -> [missing] (J1)
  • slice::rotate_huge_by1: pass -> [missing] (J1)
  • sort::tests::unstable::correct_1k_random: pass -> [missing] (J1)
  • str::char_count::ru_large::case02_iter_increment: pass -> [missing] (J1)
  • str::find_zzz_str::long_lorem_ipsum: pass -> [missing] (J1)
  • str::rfind_underscore_char::short_ascii: pass -> [missing] (J1)
  • vec::test_try_reserve_exact: pass -> [missing] (J1)
  • collections::binary_heap::test_drain_forget: pass -> [missing] (J2)
  • collections::hash::set::tests::test_difference: pass -> [missing] (J2)
  • fmt::builders::debug_map::test_multiple_and_non_exhaustive: pass -> [missing] (J2)
  • iter::adapters::filter_map::test_filter_map: pass -> [missing] (J2)
  • join_paths_unix: pass -> [missing] (J2)
  • mem::test_transmute_copy_unaligned: pass -> [missing] (J2)
  • mpsc::try_recv_states: pass -> [missing] (J2)
  • mutex::test_arc_condvar_poison: pass -> [missing] (J2)
  • nonzero::test_create_nonzero_instance: pass -> [missing] (J2)
  • num::bignum::test_fmt: pass -> [missing] (J2)
  • num::dec2flt::zero: pass -> [missing] (J2)
  • num::i16::test_unbounded_shr: pass -> [missing] (J2)
  • num::test_i16i64: pass -> [missing] (J2)
  • num::test_try_i32i128: pass -> [missing] (J2)
  • num::u128::test_div_floor: pass -> [missing] (J2)
  • num::u32::test_overflows: pass -> [missing] (J2)
  • num::u8::test_pow: pass -> [missing] (J2)
  • ops::range_structural_match: pass -> [missing] (J2)
  • simd::testing: pass -> [missing] (J2)
  • slice::slice_index::rangefrom_len::index_fail: pass -> [missing] (J2)
  • slice::test_splitn_iterator_mut: pass -> [missing] (J2)
  • str::slice_index::boundary::rangeinclusive_1::index_fail: pass -> [missing] (J2)
  • str::slice_index::test_slice_fail_truncated_2: pass -> [missing] (J2)
  • sys_common::wtf8::tests::wtf8_clone_into: pass -> [missing] (J2)
  • sys_common::wtf8::tests::wtf8_to_ascii_uppercase: pass -> [missing] (J2)
  • vec::extract_if_complex: pass -> [missing] (J2)
  • vec::test_pop_if_empty: pass -> [missing] (J2)
  • sort::tests::unstable::deterministic_i32_random_d2: ignore -> [missing] (J3)
  • sort::tests::unstable::deterministic_string_saw_mixed: ignore -> [missing] (J3)
  • sort::tests::unstable::violate_ord_retain_orig_set_i32_random_s95: ignore -> [missing] (J3)
  • backtrace_rs::symbolize::gimli::parse_running_mmaps::check_maps_entry_parsing_32bit: pass -> [missing] (J4)

(and 16556 additional test diffs)

Additionally, 16606 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 5af801b687e6e8b860ae970e725c8b9a3820d0ce --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: 1395.0s -> 4366.8s (213.0%)
  2. test-various: 2313.7s -> 4207.8s (81.9%)
  3. x86_64-gnu-aux: 4282.1s -> 6103.3s (42.5%)
  4. dist-apple-various: 8706.1s -> 6059.4s (-30.4%)
  5. aarch64-apple: 3171.5s -> 3975.6s (25.4%)
  6. x86_64-apple-1: 7847.0s -> 6502.1s (-17.1%)
  7. dist-armv7-linux: 6092.2s -> 5327.8s (-12.5%)
  8. dist-s390x-linux: 5154.9s -> 5485.9s (6.4%)
  9. dist-ohos-aarch64: 4510.9s -> 4774.2s (5.8%)
  10. x86_64-rust-for-linux: 2557.4s -> 2692.8s (5.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

Finished benchmarking commit (5af801b): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

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

Max RSS (memory usage)

Results (primary 4.2%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

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

Cycles

Results (secondary 7.5%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
7.5% [7.2%, 7.9%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Binary size

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

Bootstrap: 777.008s -> 776.203s (-0.10%)
Artifact size: 366.29 MiB -> 366.33 MiB (0.01%)

github-actions bot pushed a commit to model-checking/verify-rust-std that referenced this pull request May 26, 2025
Remove #![feature(let_chains)] from libcore

PR rust-lang#132833 has stabilized the let_chains feature. This PR removes the last occurrence from the library.

Split out of rust-lang#140966 as it caused breakage. Now we have a patch to the linux tree that fixes the build, so we update the linux tree to it.

cc Rust-for-Linux/linux#1163
cc rust-lang#140722
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants