Conversation
…, r=oli-obk Remove `WithCachedTypeInfo::stable_hash`. We store a stable hash value in the most common interned values (e.g. types, predicates, regions). This is 16 bytes of data. - In non-incremental builds it's a straightforward performance loss: the stable hash isn't computed or used, and the 16 bytes of space goes to waste (but it still gets hashed when interning). - In incremental builds it avoids some hashing but doesn't seem to actually be a genuine performance win, and the complexity doesn't seem worth it. r? @oli-obk
Add infrastructure to query LLVM backend for specific assembly mnemonics and use it in compiletest to conditionally run tests based on instruction availability. This fixes test failures with naked-dead-code-elimination which requires the `RET` mnemonic. Co-authored-by: Folkert de Vries <flokkievids@gmail.com>
switch to v0 mangling by default on stable Following rust-lang/rust#89117, rustc has defaulted to the v0 mangling scheme by default (since Nov 20th 2025). This surfaced two bugs: - rust-lang/rust#138261 was a small ICE (found via fuzzing) where an implementation-internal namespace was missing for global assembly - this occurs with names instantiated within global assembly (that can happen inside constants) - rust-lang/rust#134479 only occurs with unstable `generic_const_exprs` Since there have been three-to-four months for users to find bugs with this mangling scheme on nightly, that the scheme has been waiting many years to be stabilised, and has been used successfully internally at Microsoft, Meta and Google for many years, this patch proposes stabilising the v0 mangling scheme on stable. This patch does not propose removing the legacy mangling, it will remain usable on nightly as an escape-hatch if there are remaining bugs (though admittedly it would require switching to nightly for those on stable) - it is anticipated that this would be unlikely given current testing undergone by v0. Legacy mangling can be removed in another follow-up. r? @wesleywiser
…dtwco Tweak irrefutable let else warning output Fixes rust-lang/rust#153454 Greeting! This PR tweak diagnostic output for `irrefutable-let-else` patterns and adds a check for `let a = Some(b) else {...}` Thanks for the review! ``` help: consider using `let Some(name) = case` to match on a specific variant | LL - let name = Some(case) else { LL + let Some(name) = case else { | ```
…elmann Lock stable_crate_ids once in create_crate_num This is a small refactor PR removing redundant locks of `stable_crate_ids` from `create_crate_num`.
Document that CFI diverges from Rust wrt. ABI-compatibility rules The CFI sanitizer is a sanitizer that checks that no ABI-incompatible function calls are made at runtime, but there is currently an unfortunate divergence between the Rust ABI-compatibility rules and what the CFI sanitizer checks. Thus, document that this divergence exists. There are proposals for how we can align the ABI rules to eliminate this discrepancy, and I would like to follow through with those, but for now I think we can at least document that the discrepancy exists. For further discussion please see [Re-evaluate ABI compatibility rules in light of CFI](rust-lang/unsafe-code-guidelines#489) and [Can CFI be made compatible with type erasure schemes?](rust-lang/rust#128728) and [`fn_cast!` macro](rust-lang/rust#140803). cc @rcvalle @samitolvanen @maurer @bjorn3 @RalfJung Rendered: <img width="956" height="391" alt="image" src="https://github.com/user-attachments/assets/410d3eaa-9476-4800-9ef8-bbb100a100c5" />
…olkertdev disable naked-dead-code-elimination test if no RET mnemonic is available this test emit x86_64 specific ret asm instruction and should not be compiled on any other arch.
Update documentation for `wasm32-wali-linux-musl` after integrating n… Additional documentation updates, along with rust-lang/rust#155654
compiletest: Overhaul the code for running an incremental test revision The main goals of this overhaul are: - Introduce a dedicated `IncrRevKind` enum for exhaustive matching. - Eliminate any dependency on `PassMode` and `FailMode`. - Use a single code path for all incremental revision kinds. Separating incremental tests from the existing pass/fail enums should make it easier to overhaul the implementation of pass/fail expectations in UI tests. --- Later on we might want to reintroduce more shared code paths for the different test modes, but for now the extra isolation makes it easier to clean up the individual modes. r? jieyouxu
Handle hkl const closures I severely overthought this in rust-lang/rust#153818 😆 The const closure trait solver impl is now in sync with the non-const closure trait solver impl.
misc stuff from reading borrowck again :) r? lcnr
Delete the 12 year old fixme I think Option is documented well enough at this point.
…jieyouxu remove review queue triagebot mentions t-compiler's review queue isn't in the `triagebot.toml` anymore so these pings don't make sense.
…uwer,Urgau Rename `SharedContext::emit_dyn_lint*` into `emit_lint*` Part of rust-lang/rust#153099. Very small cleanup while I figure out how to have a `Diagnostic` argument instead of the current closures. r? @JonathanBrouwer
…uwer Rollup of 15 pull requests Successful merges: - rust-lang/rust#155923 (Subtree sync for rustc_codegen_cranelift) - rust-lang/rust#155930 (Sync from portable simd 2026 04 28) - rust-lang/rust#155850 (Only exclude the rust-lang/rust#155473 change for 1-byte bool-likes) - rust-lang/rust#151994 (switch to v0 mangling by default on stable) - rust-lang/rust#154325 (Tweak irrefutable let else warning output) - rust-lang/rust#155273 (Lock stable_crate_ids once in create_crate_num) - rust-lang/rust#155361 (Document that CFI diverges from Rust wrt. ABI-compatibility rules) - rust-lang/rust#155692 (disable naked-dead-code-elimination test if no RET mnemonic is available) - rust-lang/rust#155747 (Update documentation for `wasm32-wali-linux-musl` after integrating n…) - rust-lang/rust#155768 (compiletest: Overhaul the code for running an incremental test revision) - rust-lang/rust#155907 (Handle hkl const closures) - rust-lang/rust#155910 (misc stuff from reading borrowck again :)) - rust-lang/rust#155913 (Delete the 12 year old fixme) - rust-lang/rust#155920 (remove review queue triagebot mentions) - rust-lang/rust#155936 (Rename `SharedContext::emit_dyn_lint*` into `emit_lint*`)
This updates the rust-version file to f53b654a8882fd5fc036c4ca7a4ff41ce32497a6.
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: rust-lang/rust@f53b654 Filtered ref: 854e053 Upstream diff: rust-lang/rust@ca9a134...f53b654 This merge was created using https://github.com/rust-lang/josh-sync.
Collaborator
|
Thanks for the PR. If you have write access, feel free to merge this PR if it does not need reviews. You can request a review using |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Latest update from rustc.