Skip to content

Conversation

@lnicola
Copy link
Member

@lnicola lnicola commented May 5, 2025

r? @ghost

alibektas and others added 30 commits March 19, 2025 01:45
Enable PGO optimizations when installing rust-analyzer with the
--pgo flag. This mirrors functionality already available in dist
command, allowing developers to create optimized local builds.

Example:
cargo xtask install --server --pgo clap-rs/clap

PGO code has been extracted to a dedicated module for reuse.
As it is a valid lifetime without escaping.

It does need to be escaped as a label, but we have no way to distinguish that.
Add expression fill mode variant for filling with underscore expressions
Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
Also ensures that attributes on the use item are applied to the new use
item when unmerging.

Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
Co-authored-by: Tarek <tareknaser360@gmail.com>
Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
refactor: `merge_imports` and `unmerge_imports` to editor
refactor: migrate `let_else_to_match` to editor
…itional-details-to-panic

base-db: add more details to panic
refactor: Clean up cache priming cancellation handling
refactor: Cleanup cfg check handling in expression store lowering
refactor: Remove unnecessary extension trait
Does not do much yet due to tracing pulling syn but oh well
@rustbot
Copy link
Collaborator

rustbot commented May 5, 2025

rust-analyzer is developed in its own repository. If possible, consider making this change to rust-lang/rust-analyzer instead.

cc @rust-lang/rust-analyzer

@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label May 5, 2025
@lnicola
Copy link
Member Author

lnicola commented May 5, 2025

@bors r+ p=1 subtree sync

@bors
Copy link
Collaborator

bors commented May 5, 2025

📌 Commit 8f3bb8b has been approved by lnicola

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

bors commented May 5, 2025

⌛ Testing commit 8f3bb8b with merge 0f73f0f...

@bors
Copy link
Collaborator

bors commented May 5, 2025

☀️ Test successful - checks-actions
Approved by: lnicola
Pushing 0f73f0f to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label May 5, 2025
@bors bors merged commit 0f73f0f into rust-lang:master May 5, 2025
7 checks passed
@rustbot rustbot added this to the 1.88.0 milestone May 5, 2025
@github-actions
Copy link
Contributor

github-actions bot commented May 5, 2025

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 243c5a3 (parent) -> 0f73f0f (this PR)

Test differences

Show 33108 test diffs

Stage 1

  • ascii::is_ascii::unaligned_both_long::case02_align_to: pass -> [missing] (J0)
  • ascii::is_ascii::unaligned_tail_medium::case00_libcore: pass -> [missing] (J0)
  • fs::tests::read_link: pass -> [missing] (J0)
  • iter::bench_cycle_take_skip_ref_sum: pass -> [missing] (J0)
  • iter::bench_zip_add: pass -> [missing] (J0)
  • num::int_sqrt::i16::isqrt_extended: pass -> [missing] (J0)
  • os::unix::fs::tests::test_mkfifo: pass -> [missing] (J0)
  • process::tests::test_interior_nul_in_env_key_is_error: pass -> [missing] (J0)
  • process::tests::test_process_output_error: pass -> [missing] (J0)
  • slice::sort_large_expensive: pass -> [missing] (J0)
  • sort::tests::stable::correct_u128_random_d2: pass -> [missing] (J0)
  • sort::tests::stable::self_cmp_string_random: pass -> [missing] (J0)
  • str::chars_count::short_pile_of_poo: pass -> [missing] (J0)
  • str::splitn_space_char::short_mixed: pass -> [missing] (J0)
  • arc::float_nan_ne: pass -> [missing] (J1)
  • c_str2::simple: pass -> [missing] (J1)
  • collections::binary_heap::test_peek_mut_pop: pass -> [missing] (J1)
  • collections::btree::map::tests::test_range_backwards_2: pass -> [missing] (J1)
  • collections::btree::map::tests::test_retain: pass -> [missing] (J1)
  • collections::hash::map::tests::test_insert_overwrite: pass -> [missing] (J1)
  • collections::vec_deque::tests::bench_pop_back_100: pass -> [missing] (J1)
  • f32::test_floor: pass -> [missing] (J1)
  • f64::test_ln: pass -> [missing] (J1)
  • f64::test_neg_zero: pass -> [missing] (J1)
  • io::buffered::tests::erroneous_flush_retried: pass -> [missing] (J1)
  • iter::adapters::zip::test_zip_nth_back_side_effects_exhausted: pass -> [missing] (J1)
  • num::i16::test_unbounded_shl: pass -> [missing] (J1)
  • num::nan::test_nan: pass -> [missing] (J1)
  • num::u8::test_swap_bytes: pass -> [missing] (J1)
  • str::double_ended_split: pass -> [missing] (J1)
  • thin_box::align1_size_not_pow2: pass -> [missing] (J1)
  • time::div_duration_f32: pass -> [missing] (J1)
  • type_name_unsized: pass -> [missing] (J1)
  • errors::autodiff::verify_builtin_macros_autodiff_missing_config_26: pass -> [missing] (J2)
  • errors::verify_mir_transform_const_modify_2: pass -> [missing] (J2)
  • errors::verify_parse_expect_label_found_ident_139: pass -> [missing] (J2)
  • errors::verify_passes_confusables_88: pass -> [missing] (J2)
  • errors::verify_session_unsupported_regparm_46: pass -> [missing] (J2)
  • html::length_limit::tests::close_too_many: pass -> [missing] (J2)
  • lints::verify_lint_builtin_ellipsis_inclusive_range_patterns_34: pass -> [missing] (J2)
  • parser::tests::single_label_with_message: pass -> [missing] (J2)
  • parser::tests::triple_exact_overlap: pass -> [missing] (J2)
  • spec::tests::mips64_unknown_linux_gnuabi64: pass -> [missing] (J2)
  • spec::tests::x86_64_pc_cygwin: pass -> [missing] (J2)
  • sort::tests::unstable::correct_u128_ascending: ignore -> [missing] (J3)
  • sys::pal::unix::kernel_copy::tests::bench_socket_pipe_socket_copy: pass -> [missing] (J4)

Stage 2

  • iter::bench_max_by_key2: [missing] -> pass (J0)
  • net::addr_parser::bench_parse_ipv6_full: [missing] -> pass (J0)
  • os::unix::net::tests::test_unix_datagram: [missing] -> pass (J0)
  • sort::tests::stable::self_cmp_string_random: [missing] -> pass (J0)
  • str::char_count::ru_tiny::case01_filter_count_cont_bytes: [missing] -> pass (J0)
  • str::iter::chars_advance_by_0001: [missing] -> pass (J0)
  • time::instant_contention_01_threads: [missing] -> pass (J0)
  • vec::bench_dedup_slice_truncate_10000: [missing] -> pass (J0)
  • any::dyn_type_name: [missing] -> pass (J1)
  • cmp::test_ordering_then: [missing] -> pass (J1)
  • collections::linked_list::tests::test_show: [missing] -> pass (J1)
  • f64::test_min_nan: [missing] -> pass (J1)
  • hash::test_custom_state: [missing] -> pass (J1)
  • io::buffered::tests::line_write_all_error: [missing] -> pass (J1)
  • iter::adapters::step_by::test_iterator_step_by_zero: [missing] -> pass (J1)
  • misc_tests::i64_slice: [missing] -> pass (J1)
  • num::dec2flt::whitespace: [missing] -> pass (J1)
  • num::i16::test_is_negative: [missing] -> pass (J1)
  • num::i32::test_rem_euclid: [missing] -> pass (J1)
  • num::int_sqrt::u32::isqrt: [missing] -> pass (J1)
  • num::test_try_u32i32: [missing] -> pass (J1)
  • num::u128::test_bitwise_operators: [missing] -> pass (J1)
  • option::test_option_as_deref_mut: [missing] -> pass (J1)
  • raw_vec::tests::zst: [missing] -> pass (J1)
  • sort::tests::unstable::deterministic_string_random_z1: [missing] -> pass (J1)
  • str::pattern::str_searcher_empty_needle_after_done: [missing] -> pass (J1)
  • str::slice_index::rangeinclusive_len::index_fail: [missing] -> pass (J1)
  • str::slice_index::rangetoinclusive_len::index_fail: [missing] -> pass (J1)
  • str::slice_index::simple_unicode: [missing] -> pass (J1)
  • str::test_replacen: [missing] -> pass (J1)
  • string::test_add_assign: [missing] -> pass (J1)
  • sync::test_clone_from_slice: [missing] -> pass (J1)
  • sys_common::wtf8::tests::wtf8_valid_utf8_boundaries: [missing] -> pass (J1)
  • test_iter_debug: [missing] -> pass (J1)
  • thin_box::align2small: [missing] -> pass (J1)
  • vec::test_extend_from_within_panicking_clone: [missing] -> pass (J1)
  • vec::test_vec_cycle: [missing] -> pass (J1)
  • errors::verify_ast_passes_nomangle_ascii_27: [missing] -> pass (J2)
  • errors::verify_metadata_extern_location_not_file_60: [missing] -> pass (J2)
  • errors::verify_metadata_global_alloc_required_50: [missing] -> pass (J2)
  • errors::verify_mir_build_leading_irrefutable_let_patterns_8: [missing] -> pass (J2)
  • errors::verify_parse_bad_return_type_notation_output_130: [missing] -> pass (J2)
  • errors::verify_parse_float_literal_unsupported_base_102: [missing] -> pass (J2)
  • errors::verify_resolve_cannot_determine_macro_resolution_29: [missing] -> pass (J2)
  • html::render::ordered_json::tests::escape_json_array: [missing] -> pass (J2)
  • maybe_transmutable::tests::nonzero::should_permit_valid_transmutation: [missing] -> pass (J2)
  • small_c_str::tests::internal_nul: [missing] -> pass (J2)
  • spec::tests::aarch64_unknown_linux_ohos: [missing] -> pass (J2)
  • spec::tests::powerpc_unknown_netbsd: [missing] -> pass (J2)
  • tests::list_test_macros: [missing] -> pass (J2)
  • tests::single_edge: [missing] -> pass (J2)
  • sort::tests::unstable::correct_1k_random_d20: [missing] -> ignore (J3)
  • sort::tests::unstable::self_cmp_string_ascending: [missing] -> ignore (J3)
  • vec::test_try_reserve_exact: [missing] -> ignore (J3)

(and 16464 additional test diffs)

Additionally, 16544 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 0f73f0f3941e6be6b19721548fab4e2bf919a525 --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: 5147.1s -> 1265.8s (-75.4%)
  2. test-various: 4235.2s -> 2391.7s (-43.5%)
  3. x86_64-apple-1: 9397.1s -> 5803.6s (-38.2%)
  4. x86_64-gnu-aux: 6033.4s -> 4238.1s (-29.8%)
  5. dist-apple-various: 7696.3s -> 5546.5s (-27.9%)
  6. dist-arm-linux: 4577.4s -> 5696.9s (24.5%)
  7. aarch64-apple: 4591.7s -> 3488.1s (-24.0%)
  8. dist-powerpc64-linux: 5378.8s -> 6595.4s (22.6%)
  9. aarch64-gnu-debug: 3987.2s -> 4330.2s (8.6%)
  10. x86_64-msvc-ext1: 7759.9s -> 7094.9s (-8.6%)
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.

@lnicola lnicola deleted the sync-from-ra branch May 5, 2025 18:17
@rust-timer
Copy link
Collaborator

Finished benchmarking commit (0f73f0f): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

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

Max RSS (memory usage)

Results (primary -0.6%)

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.6% [0.6%, 0.6%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.8% [-2.6%, -0.4%] 10
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.6% [-2.6%, 0.6%] 11

Cycles

Results (primary -0.1%, secondary -3.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.9% [0.5%, 2.4%] 5
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.6% [-0.8%, -0.4%] 10
Improvements ✅
(secondary)
-3.5% [-3.6%, -3.5%] 2
All ❌✅ (primary) -0.1% [-0.8%, 2.4%] 15

Binary size

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

Bootstrap: 770.492s -> 770.361s (-0.02%)
Artifact size: 365.47 MiB -> 365.46 MiB (-0.00%)

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

Labels

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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.