-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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 9 pull requests #130534
Rollup of 9 pull requests #130534
Conversation
In the implementation of `force_mut`, I chose performance over safety. For `LazyLock` this isn't really a choice; the code has to be unsafe. But for `LazyCell`, we can have a full-safe implementation, but it will be a bit less performant, so I went with the unsafe approach.
When we have two types with the same name, one without type parameters and the other with type parameters and a derive macro, we were before incorrectly suggesting to remove type parameters from the former, which ICEd because we were suggesting to remove nothing. We now gate against this. The output is still not perfect. E0107 should explicitly detect this case and provide better context, but for now let's avoid the ICE.
This is ignored by LLVM, but is still incorrect.
The previous name is just an LLVMism, which conveys almost nothing about what is actually meant by the function relative to the ABI. In doing so, remove an already-addressed FIXME.
This reverts commit da8ac73.
Add `Thread::{into_raw, from_raw}` Public API: ```rust #![unstable(feature = "thread_raw", issue = "97523")] impl Thread { pub fn into_raw(self) -> *const (); pub unsafe fn from_raw(ptr: *const ()) -> Thread; } ``` ACP: rust-lang/libs-team#200
Do not ICE with incorrect empty suggestion When we have two types with the same name, one without type parameters and the other with type parameters and a derive macro, we were before incorrectly suggesting to remove type parameters from the former, which ICEd because we were suggesting to remove nothing. We now gate against this. The output is still not perfect. E0107 should explicitly detect this case and provide better context, but for now let's avoid the ICE. Fix rust-lang#108748.
Gate `repr(Rust)` correctly on non-ADT items rust-lang#114201 added `repr(Rust)` but didn't add any attribute validation to it like `repr(C)` has, to only allow it on ADT items. I consider this code to be nonsense, for example: ``` #[repr(Rust)] fn foo() {} ``` Reminder that it's different from `extern "Rust"`, which *is* valid on function items. But also this now disallows `repr(Rust)` on modules, impls, traits, etc. I'll crater it, if it looks bad then I'll add an FCW. --- https://github.com/rust-lang/rust/labels/relnotes: Compatibility (minor breaking change).
…nieu Win: Open dir for sync access in remove_dir_all A small follow up to rust-lang#129800. We should explicitly open directories for synchronous access. We ultimately use `GetFileInformationByHandleEx` to read directories which should paper over any issues caused by using async directory reads (or else return an error) but it's better to do the right thing in the first place. Note though that `delete` does not read or write any data so it's not necessary there.
…irect, r=bjorn3 Reduce confusion about `make_indirect_byval` by renaming it As part of doing so, remove the incorrect handling of the wasm target's `make_indirect_byval` (i.e. using it at all).
…ake-2, r=Amanieu Implement ACP 429: add `Lazy{Cell,Lock}::get[_mut]` and `force_mut` Tracking issue for `lazy_get`: rust-lang#129333
Update the minimum external LLVM to 18 With this change, we'll have stable support for LLVM 18 and 19. For reference, the previous increase to LLVM 17 was rust-lang#122649. cc `@rust-lang/wg-llvm` r? nikic
…cuviper Clarify docs for std::fs::File::write This PR fixes the doc comment for `std::fs::File::write` method.
…hs, r=compiler-errors [Clippy] Swap `manual_retain` to use diagnostic items instead of paths Part of rust-lang/rust-clippy#5393, just a chore.
@bors r+ rollup=never p=9 |
☀️ Test successful - checks-actions |
📌 Perf builds for each rolled up PR:
previous master: f79a912d9e In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
Finished benchmarking commit (a5cf8bb): comparison URL. Overall result: ❌✅ regressions and improvements - ACTION NEEDEDNext Steps: If you can justify the regressions found in this perf run, please indicate this with @rustbot label: +perf-regression Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)Results (secondary 0.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.
CyclesResults (secondary 2.9%)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.
Binary sizeResults (primary -0.3%, 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.
Bootstrap: 769.338s -> 766.835s (-0.33%) |
@rustbot label: +perf-regression-triaged |
Successful merges:
Thread::{into_raw, from_raw}
#97524 (AddThread::{into_raw, from_raw}
)repr(Rust)
correctly on non-ADT items #129422 (Gaterepr(Rust)
correctly on non-ADT items)make_indirect_byval
by renaming it #130450 (Reduce confusion aboutmake_indirect_byval
by renaming it)Lazy{Cell,Lock}::get[_mut]
andforce_mut
#130476 (Implement ACP 429: addLazy{Cell,Lock}::get[_mut]
andforce_mut
)manual_retain
to use diagnostic items instead of paths #130522 ([Clippy] Swapmanual_retain
to use diagnostic items instead of paths)r? @ghost
@rustbot modify labels: rollup
Create a similar rollup