Add a jobserver proxy to ensure at least one token is always held
This adds a jobserver proxy to ensure at least one token is always held by `rustc`. Currently with `-Z threads` `rustc` can temporarily give up all its tokens, causing `cargo` to spawn additional `rustc` instances beyond the job limit.
The current behavior causes an issue with `cargo fix` which has a global lock preventing concurrent `rustc` instances, but it also holds a jobserver token, causing a deadlock when `rustc` gives up its token. That is fixed by this PR.
Fixes https://github.com/rust-lang/rust/issues/67385.
Fixes https://github.com/rust-lang/rust/issues/133873.
Fixes https://github.com/rust-lang/rust/issues/140093.
Drop AST on a separate thread and prefetch `hir_crate`
This drop AST on a separate thread and prefetches `hir_crate`.
A `spawn` function is added to the `parallel` module which spawn some work on the Rayon thread pool.
Rollup of 10 pull requests
Successful merges:
- #140385 (Subtree update of `rust-analyzer`)
- #140458 (Fix for async drop ice with partly dropped tuple)
- #140465 (chore: edit and move tests)
- #140467 (Don't FCW assoc consts in patterns)
- #140468 (Minor tweaks to make some normalization (adjacent) code less confusing)
- #140470 (CI: rfl: move job forward to Linux v6.15-rc4)
- #140476 (chore: delete unused ui/auxiliary crates)
- #140481 (Require sanitizers be enabled for asan_odr_windows.rs)
- #140486 (rustfmt: Also allow bool literals as first item of let chain)
- #140494 (Parser: Document restrictions)
r? `@ghost`
`@rustbot` modify labels: rollup
rustfmt: Also allow bool literals as first item of let chain
This is a functional cherry-pick of https://github.com/rust-lang/rustfmt/pull/6492
I'm bringing this change over directly as the subtree sync is taking more effort than anticipated (some unrelated r-l/rustfmt changes need to be reverted before we perform the full sync) and we need to ensure that rustfmt behavior accounts with the final style guide rules as part of let chain stabilization.
r? ````@ghost````
Require sanitizers be enabled for asan_odr_windows.rs
Issue Details:
The `asan_odr_windows.rs` test is failing on AArch64 Windows, as sanitizers aren't supported on that platform.
Fix Details:
Apply the correct "need sanitizer" requirements to the test.