Skip to content
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

Rollup of 10 pull requests #139012

Merged
merged 25 commits into from
Mar 27, 2025
Merged

Rollup of 10 pull requests #139012

merged 25 commits into from
Mar 27, 2025

Conversation

Zalathar
Copy link
Contributor

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

LukasWoodtli and others added 25 commits March 19, 2025 21:38
The collection is limited to full debuginfo builds to match behavior of
FunctionCx::compute_per_local_var_debug_info.
This currently works because it's part of expansion, and that isn't yet
tracked by the query system. But we want to ensure it continues working,
even if that is changed.
Along with `TyCtx::env_var` helper. These can be used to track
environment variable accesses in the query system.

Since `TyCtx::env_var_os` uses `OsStr`, this commit also adds the
necessary trait implementations for that to work.
This won't work with Cargo's change tracking, but it should work with incremental.
Add environment variable query

Generally, `rustc` prefers command-line arguments, but in some cases, an environment variable really is the most sensible option. We should make sure that this works properly with the compiler's change-tracking mechanisms, such that changing the relevant environment variable causes a rebuild.

This PR is a first step forwards in doing that.

Part of the work needed to do rust-lang#118204, see rust-lang#129342 for some discussion.

r? ``@petrochenkov``
…ntainer, r=jieyouxu

Add mipsel maintainer
…handler, r=oli-obk

Avoiding calling queries when collecting active queries

This PR changes active query collection to no longer call queries. Instead the fields needing queries have their computation delayed to when an cycle error is emitted or when printing the query backtrace in a panic.

This is done by splitting the fields in `QueryStackFrame` needing queries into a new `QueryStackFrameExtra` type. When collecting queries `QueryStackFrame` will contain a closure that can create `QueryStackFrameExtra`, which does make use of queries. Calling `lift` on a `QueryStackFrame` or `CycleError` will convert it to a variant containing `QueryStackFrameExtra` using those closures.

This also only calls queries needed to collect information on a cycle errors, instead of information on all active queries.

Calling queries when collecting active queries is a bit odd. Calling queries should not be done in the deadlock handler at all.

This avoids the out of memory scenario in rust-lang#124901.
…config, r=lqd

Update wg-prio triagebot config

This completes the Zulip channel renaming after rust-lang/compiler-team#848

Just nits: fixed a documentation link and the name of the Zulip channel for prioritization alerts.

r? ````@davidtwco````
…ieyouxu

Un-bury chapters from the chapter list in rustc book

This PR moves the "Platform Support" section to the bottom of rustc chapter book, as to un-burry chapters from the chapter list, which where hidden by the wall of targets.

| Before | After |
|--------|-------|
| ![image](https://github.com/user-attachments/assets/92769307-eadb-4d9d-bdbb-9e610207eb79) | ![image](https://github.com/user-attachments/assets/1834f5c5-a1e6-4674-9be2-1094d1376eda) |

r? ````@jieyouxu````
… r=lcnr

Implement lint against using Interner and InferCtxtLike in random compiler crates

Often `Interner` defines similar methods to `TyCtxt` (but often simplified due to the simpler API surface of the type system layer for the new solver), which people will either unintentionally or intentionally import and use. Let's discourage that.

r? lcnr
…ed, r=compiler-errors

Don't deaggregate InvocationParent just to reaggregate it again

Also makes it easier to add more things to it in the future (which I am doing in some local experiments, so not really a reason to do this just now, but I think this PR stands on its own).
…compiler-errors

Collect items referenced from var_debug_info

The collection is limited to full debuginfo builds to match behavior of FunctionCx::compute_per_local_var_debug_info.

Fixes rust-lang#138942.
…ler-errors

Use the correct binder scope for elided lifetimes in assoc consts

Beyond diagnostics this has no real effect, and it's also just about a future incompat lint. But it causes ICEs in some refactorings that I'm doing, so trying to get it out of the way
Always emit `native-static-libs` note, even if it is empty

Fixes rust-lang#108825.

Retry of rust-lang#121216, finally got around to fixing the test, the errors in that PR were because `libcore` uses the `#[link]` attribute on MSVC.

try-job: x86_64-msvc
r? wesleywiser
@rustbot rustbot added A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Mar 27, 2025
@rustbot rustbot added the rollup A PR which is a rollup label Mar 27, 2025
@Zalathar
Copy link
Contributor Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Mar 27, 2025

📌 Commit 8fa9816 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 Mar 27, 2025
@bors
Copy link
Collaborator

bors commented Mar 27, 2025

⌛ Testing commit 8fa9816 with merge ecb170a...

@bors
Copy link
Collaborator

bors commented Mar 27, 2025

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

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Mar 27, 2025
@bors bors merged commit ecb170a into rust-lang:master Mar 27, 2025
7 checks passed
@rustbot rustbot added this to the 1.87.0 milestone Mar 27, 2025
@Zalathar Zalathar deleted the rollup-qgt5yfo branch March 27, 2025 10:59
Copy link

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 ea1da92 (parent) -> ecb170a (this PR)

Test differences

Show 323 test diffs

Stage 1

  • lints::verify_lint_ambiguous_glob_reexport_140: pass -> [missing] (J0)
  • lints::verify_lint_ambiguous_glob_reexport_141: [missing] -> pass (J0)
  • lints::verify_lint_associated_const_elided_lifetime_143: pass -> [missing] (J0)
  • lints::verify_lint_associated_const_elided_lifetime_144: [missing] -> pass (J0)
  • lints::verify_lint_atomic_ordering_fence_89: [missing] -> pass (J0)
  • lints::verify_lint_atomic_ordering_invalid_89: pass -> [missing] (J0)
  • lints::verify_lint_atomic_ordering_load_86: pass -> [missing] (J0)
  • lints::verify_lint_atomic_ordering_store_87: pass -> [missing] (J0)
  • lints::verify_lint_confusable_identifier_pair_72: pass -> [missing] (J0)
  • lints::verify_lint_confusable_identifier_pair_73: [missing] -> pass (J0)
  • lints::verify_lint_custom_inner_attribute_unstable_124: [missing] -> pass (J0)
  • lints::verify_lint_dangling_pointers_from_temporaries_69: [missing] -> pass (J0)
  • lints::verify_lint_duplicate_macro_attribute_114: [missing] -> pass (J0)
  • lints::verify_lint_extern_crate_not_idiomatic_139: pass -> [missing] (J0)
  • lints::verify_lint_extern_crate_not_idiomatic_140: [missing] -> pass (J0)
  • lints::verify_lint_extern_without_abi_127: pass -> [missing] (J0)
  • lints::verify_lint_hidden_glob_reexport_141: pass -> [missing] (J0)
  • lints::verify_lint_hidden_glob_reexport_142: [missing] -> pass (J0)
  • lints::verify_lint_identifier_uncommon_codepoints_71: pass -> [missing] (J0)
  • lints::verify_lint_ignored_unless_crate_specified_67: pass -> [missing] (J0)
  • lints::verify_lint_ignored_unless_crate_specified_68: [missing] -> pass (J0)
  • lints::verify_lint_ill_formed_attribute_input_121: pass -> [missing] (J0)
  • lints::verify_lint_incomplete_include_112: [missing] -> pass (J0)
  • lints::verify_lint_inner_macro_attribute_unstable_122: pass -> [missing] (J0)
  • lints::verify_lint_inner_macro_attribute_unstable_123: [missing] -> pass (J0)
  • lints::verify_lint_invalid_asm_label_binary_101: [missing] -> pass (J0)
  • lints::verify_lint_legacy_derive_helpers_128: pass -> [missing] (J0)
  • lints::verify_lint_macro_expanded_macro_exports_accessed_by_absolute_paths_125: pass -> [missing] (J0)
  • lints::verify_lint_macro_expanded_macro_exports_accessed_by_absolute_paths_126: [missing] -> pass (J0)
  • lints::verify_lint_macro_is_private_106: pass -> [missing] (J0)
  • lints::verify_lint_macro_is_private_107: [missing] -> pass (J0)
  • lints::verify_lint_macro_rule_never_used_108: pass -> [missing] (J0)
  • lints::verify_lint_macro_rule_never_used_109: [missing] -> pass (J0)
  • lints::verify_lint_macro_use_deprecated_103: [missing] -> pass (J0)
  • lints::verify_lint_metavariable_still_repeating_117: [missing] -> pass (J0)
  • lints::verify_lint_missing_unsafe_on_extern_135: [missing] -> pass (J0)
  • lints::verify_lint_multiple_supertrait_upcastable_69: pass -> [missing] (J0)
  • lints::verify_lint_non_fmt_panic_braces_74: pass -> [missing] (J0)
  • lints::verify_lint_non_glob_import_type_ir_inherent_61: [missing] -> pass (J0)
  • lints::verify_lint_noop_method_call_75: pass -> [missing] (J0)
  • lints::verify_lint_only_cast_u8_to_char_81: [missing] -> pass (J0)
  • lints::verify_lint_or_patterns_back_compat_129: pass -> [missing] (J0)
  • lints::verify_lint_out_of_scope_macro_calls_146: [missing] -> pass (J0)
  • lints::verify_lint_overflowing_literal_82: pass -> [missing] (J0)
  • lints::verify_lint_overflowing_uint_81: pass -> [missing] (J0)
  • lints::verify_lint_path_statement_no_effect_93: pass -> [missing] (J0)
  • lints::verify_lint_path_statement_no_effect_94: [missing] -> pass (J0)
  • lints::verify_lint_private_extern_crate_reexport_105: [missing] -> pass (J0)
  • lints::verify_lint_proc_macro_derive_resolution_fallback_125: [missing] -> pass (J0)
  • lints::verify_lint_raw_prefix_131: pass -> [missing] (J0)
  • lints::verify_lint_raw_prefix_132: [missing] -> pass (J0)
  • lints::verify_lint_redundant_import_visibility_145: [missing] -> pass (J0)
  • lints::verify_lint_redundant_semicolons_80: [missing] -> pass (J0)
  • lints::verify_lint_removed_lint_66: pass -> [missing] (J0)
  • lints::verify_lint_removed_lint_67: [missing] -> pass (J0)
  • lints::verify_lint_reserved_multihash_148: pass -> [missing] (J0)
  • lints::verify_lint_reserved_multihash_149: [missing] -> pass (J0)
  • lints::verify_lint_reserved_prefix_130: pass -> [missing] (J0)
  • lints::verify_lint_reserved_prefix_131: [missing] -> pass (J0)
  • lints::verify_lint_reserved_string_148: [missing] -> pass (J0)
  • lints::verify_lint_suspicious_double_ref_clone_77: pass -> [missing] (J0)
  • lints::verify_lint_suspicious_double_ref_deref_76: pass -> [missing] (J0)
  • lints::verify_lint_suspicious_double_ref_deref_77: [missing] -> pass (J0)
  • lints::verify_lint_trailing_semi_macro_133: pass -> [missing] (J0)
  • lints::verify_lint_type_ir_trait_usage_60: [missing] -> pass (J0)
  • lints::verify_lint_unit_bindings_98: [missing] -> pass (J0)
  • lints::verify_lint_unknown_macro_variable_120: [missing] -> pass (J0)
  • lints::verify_lint_unnameable_test_items_112: pass -> [missing] (J0)
  • lints::verify_lint_unnameable_test_items_113: [missing] -> pass (J0)
  • lints::verify_lint_unnecessary_qualification_142: pass -> [missing] (J0)
  • lints::verify_lint_unqualified_local_imports_146: pass -> [missing] (J0)
  • lints::verify_lint_unqualified_local_imports_147: [missing] -> pass (J0)
  • lints::verify_lint_untranslatable_diag_63: pass -> [missing] (J0)
  • lints::verify_lint_unused_allocation_mut_96: pass -> [missing] (J0)
  • lints::verify_lint_unused_builtin_attribute_132: pass -> [missing] (J0)
  • lints::verify_lint_unused_builtin_attribute_133: [missing] -> pass (J0)
  • lints::verify_lint_unused_closure_92: [missing] -> pass (J0)
  • lints::verify_lint_unused_comparisons_85: [missing] -> pass (J0)
  • lints::verify_lint_unused_crate_dependency_120: pass -> [missing] (J0)
  • lints::verify_lint_unused_crate_dependency_121: [missing] -> pass (J0)
  • lints::verify_lint_unused_doc_comment_126: pass -> [missing] (J0)
  • lints::verify_lint_unused_doc_comment_127: [missing] -> pass (J0)
  • lints::verify_lint_unused_extern_crate_138: pass -> [missing] (J0)
  • lints::verify_lint_unused_lifetime_136: [missing] -> pass (J0)
  • lints::verify_lint_unused_macro_definition_107: pass -> [missing] (J0)
  • lints::verify_lint_unused_macro_definition_108: [missing] -> pass (J0)
  • lints::verify_lint_unused_macro_use_104: [missing] -> pass (J0)
  • lints::verify_lint_uses_power_alignment_83: pass -> [missing] (J0)
  • lints::verify_lint_variant_size_differences_85: pass -> [missing] (J0)
  • [incremental] tests/incremental/env/env_macro.rs: [missing] -> pass (J3)
  • [incremental] tests/incremental/env/option_env_macro.rs: [missing] -> pass (J3)
  • [ui] tests/ui/codegen/empty-static-libs-issue-108825.rs: [missing] -> pass (J3)
  • [ui] tests/ui/mir/var_debug_ref.rs#full: [missing] -> pass (J3)
  • [ui] tests/ui/mir/var_debug_ref.rs#limited: [missing] -> pass (J3)

Stage 2

  • [incremental] tests/incremental/env/env_macro.rs: [missing] -> pass (J1)
  • [incremental] tests/incremental/env/option_env_macro.rs: [missing] -> pass (J1)
  • [ui] tests/ui/codegen/empty-static-libs-issue-108825.rs: [missing] -> pass (J2)
  • [ui] tests/ui/mir/var_debug_ref.rs#full: [missing] -> pass (J2)
  • [ui] tests/ui/mir/var_debug_ref.rs#limited: [missing] -> pass (J2)
  • [ui] tests/ui-fulldeps/internal-lints/import-of-type-ir-traits.rs: [missing] -> pass (J4)

(and 91 additional test diffs)

Additionally, 132 doctest diffs were found. These are ignored, as they are noisy.

Job group index

  • J0: aarch64-apple, aarch64-gnu, i686-gnu-2, i686-gnu-nopt-2, i686-mingw-2, i686-mingw-3, i686-msvc-2, x86_64-apple-1, x86_64-gnu, x86_64-gnu-llvm-18-3, x86_64-gnu-llvm-19-3, x86_64-gnu-nopt, x86_64-gnu-stable, x86_64-mingw-2, x86_64-msvc-2
  • J1: aarch64-apple, aarch64-gnu, arm-android, armhf-gnu, dist-i586-gnu-i586-i686-musl, i686-gnu-1, i686-gnu-nopt-1, i686-msvc-1, test-various, x86_64-apple-1, x86_64-gnu, x86_64-gnu-llvm-18-1, x86_64-gnu-llvm-18-2, x86_64-gnu-llvm-19-1, x86_64-gnu-llvm-19-2, x86_64-gnu-nopt, x86_64-gnu-stable, x86_64-mingw-1, x86_64-msvc-1
  • J2: aarch64-apple, aarch64-gnu, arm-android, armhf-gnu, dist-i586-gnu-i586-i686-musl, i686-gnu-1, i686-gnu-nopt-1, i686-msvc-1, test-various, x86_64-apple-2, x86_64-gnu, x86_64-gnu-llvm-18-1, x86_64-gnu-llvm-18-2, x86_64-gnu-llvm-19-1, x86_64-gnu-llvm-19-2, x86_64-gnu-nopt, x86_64-gnu-stable, x86_64-mingw-1, x86_64-msvc-1
  • J3: x86_64-gnu-llvm-18-3, x86_64-gnu-llvm-19-3
  • J4: aarch64-apple, aarch64-gnu, i686-gnu-1, i686-gnu-nopt-1, i686-msvc-1, x86_64-apple-1, x86_64-gnu, x86_64-gnu-llvm-18-1, x86_64-gnu-llvm-18-2, x86_64-gnu-llvm-19-1, x86_64-gnu-llvm-19-2, x86_64-gnu-nopt, x86_64-gnu-stable, x86_64-mingw-1, x86_64-msvc-1

@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#130883 Add environment variable query f71c7e5302359ac3ae5693ae871da403d421ea9e (link)
#138624 Add mipsel maintainer b2b3fbacca7f84d4b060404dca98f90c4fd056f5 (link)
#138672 Avoiding calling queries when collecting active queries 2acd325f585b7eeed21741a8209edefdf0c21446 (link)
#138935 Update wg-prio triagebot config aa65cb9ac7733cd5e4c4a6912ae49f9ced601992 (link)
#138946 Un-bury chapters from the chapter list in rustc book 9e8ff0a6c327e3d4e0788823d759508600242855 (link)
#138964 Implement lint against using Interner and InferCtxtLike in … 2005cd32495dd9d5ec5f237fd95aa11ddd4ce4c2 (link)
#138977 Don't deaggregate InvocationParent just to reaggregate it a… 52b892039567d02ba6282d08a6a50192923edb2c (link)
#138980 Collect items referenced from var_debug_info 4f00d14c9104c65f0b05a5881043291571bbfa23 (link)
#138985 Use the correct binder scope for elided lifetimes in assoc … 30311f28d31f3d0b0959a5031a26031458559738 (link)
#138987 Always emit native-static-libs note, even if it is empty fce2a6424428336d6ed63d2258d7935e837e6158 (link)

previous master: ea1da921c8

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

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

Max RSS (memory usage)

Results (secondary -1.1%)

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

Cycles

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

Binary size

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

Bootstrap: 778.054s -> 779.46s (0.18%)
Artifact size: 365.80 MiB -> 365.95 MiB (0.04%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) merged-by-bors This PR was explicitly merged by bors. 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-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)
Projects
None yet
Development

Successfully merging this pull request may close these issues.