-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
PinCoerceUnsized trait into core #125048
PinCoerceUnsized trait into core #125048
Conversation
This comment has been minimized.
This comment has been minimized.
library/core/src/ops/deref.rs
Outdated
#[unstable(feature = "stable_deref_trait", issue = "123430")] | ||
/// # Safety | ||
/// | ||
/// Any two calls to `deref` must return the same value at the same address unless |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"same value at the same address" here is pretty vague, and it's unclear to me without reading the RFC thread what exactly that entails and how it compares to the stable deref trait crate. notably, the preconditions on the crate are currently not satisfied by Box because of the special strict aliasing rules imposed by it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The meaning of "same value" is that the concrete type must not change. I copied the explanation in below. Was it unclear?
Here, "same value" means that if
deref
returns a trait object, then the actual type behind that trait object must not change. Additionally, when you unsize coerce fromSelf
toUnsized
, then if you callderef
onUnsized
and get a trait object, then the underlying type of that trait object must be<Self as Deref>::Target
.Analogous requirements apply to other unsized types. E.g., if
deref
returns[T]
, then the length must not change. In other words, the underlying type must not change from[T; N]
to[T; M]
.
The motivation for this requirement is that with trait objects, you could otherwise first return one struct, and then later return some wrapper struct that wraps the original struct using #[repr(transparent)]
.
library/core/src/ops/deref.rs
Outdated
@@ -309,3 +309,25 @@ impl<T: ?Sized> Receiver for &T {} | |||
|
|||
#[unstable(feature = "receiver_trait", issue = "none")] | |||
impl<T: ?Sized> Receiver for &mut T {} | |||
|
|||
#[lang = "stable_deref"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This shouldn't be made into a lang item until it's actually used by the compiler. I feel like having unused lang items is not desirable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is there any chance of us somehow managing to check and error in that case?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thinks okay the moment this left my hands the answer came to me as "probably not usefully" (it would only be one more formality-tier listing somewhere and someone will just add it to that).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the use of it is rather imminent. Ideally with #123472 this would go into the trait bounds that #[derive(SmartPointer)]
generates.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I came to my right sense! I have dropped the lang term here.
711777b
to
269eff8
Compare
This comment has been minimized.
This comment has been minimized.
1795d68
to
77f8779
Compare
77f8779
to
5b034e4
Compare
This comment has been minimized.
This comment has been minimized.
5b034e4
to
072c114
Compare
072c114
to
d5e4fcb
Compare
It would make sense to add the following as a test: use core::cell::{Cell, RefCell, UnsafeCell};
use core::pin::Pin;
pub trait MyTrait {}
impl MyTrait for String {}
pub fn cell(arg: Pin<Cell<Box<String>>>) -> Pin<Cell<Box<dyn MyTrait>>> {
arg
}
pub fn refcell(arg: Pin<RefCell<Box<String>>>) -> Pin<RefCell<Box<dyn MyTrait>>> {
arg
}
pub fn ucell(arg: Pin<UnsafeCell<Box<String>>>) -> Pin<UnsafeCell<Box<dyn MyTrait>>> {
arg
} This compiles today, so we shouldn't break it. |
d5e4fcb
to
ea678b7
Compare
@Darksonn test cases have been added. |
@rustbot labels +I-lang-nominated +T-lang Nominating as @dingxiangfei2009 requested lang review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit
library/core/src/pin.rs
Outdated
/// `[T]`, then the length must not change. In other words, the underlying type | ||
/// must not change from `[T; N]` to `[T; M]` with an `N` different from `M`. | ||
/// | ||
/// If this type alos implements `DerefMut`, then the same guarantee must be upheld by |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/// If this type alos implements `DerefMut`, then the same guarantee must be upheld by | |
/// If this type also implements `DerefMut`, then the same guarantee must be upheld by |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Applied
r? @scottmcm |
Rollup of 8 pull requests Successful merges: - rust-lang#125048 (PinCoerceUnsized trait into core) - rust-lang#127681 (derive(SmartPointer): rewrite bounds in where and generic bounds) - rust-lang#127830 (When an archive fails to build, print the path) - rust-lang#128147 (migrate fmt-write-bloat to rmake) - rust-lang#128356 (Migrate `cross-lang-lto-clang` and `cross-lang-lto-pgo-smoketest` `run-make` tests to rmake) - rust-lang#128387 (More detailed note to deprecate ONCE_INIT) - rust-lang#128388 (Match LLVM ABI in `extern "C"` functions for `f128` on Windows) - rust-lang#128412 (Remove `crate_level_only` from `ELIDED_LIFETIMES_IN_PATHS`) r? `@ghost` `@rustbot` modify labels: rollup
@bors r- Rollup failed, looks like |
449deaf
to
d495b84
Compare
@tgross35 I tested |
@rustbot label F-derive_smart_pointer |
@bors try |
PinCoerceUnsized trait into core cc `@Darksonn` `@wedsonaf` `@ojeda` This is a PR to introduce a `PinCoerceUnsized` trait in order to make trait impls generated by the proc-macro `#[derive(SmartPointer)]`, proposed by [RFC](https://github.com/rust-lang/rfcs/blob/e17e19ac7ad1c8ccad55d4babfaee1aa107d1da5/text/3621-derive-smart-pointer.md#pincoerceunsized-1), sound. There you may find explanation, justification and discussion about the alternatives. Note that we do not seek stabilization of this `PinCoerceUnsized` trait in the near future. The stabilisation of this trait does not block the eventual stabilization process of the `#[derive(SmartPointer)]` macro. Ideally, use of `DerefPure` is more preferrable except this will actually constitute a breaking change. `PinCoerceUnsized` emerges as a solution to the said soundness hole while avoiding the breaking change. More details on the `DerefPure` option have been described in this [section](https://github.com/rust-lang/rfcs/blob/e17e19ac7ad1c8ccad55d4babfaee1aa107d1da5/text/3621-derive-smart-pointer.md#derefpure) of the RFC linked above. Earlier discussion can be found in this [Zulip stream](https://rust-lang.zulipchat.com/#narrow/stream/136281-t-opsem/topic/Pin.20and.20soundness.20of.20unsizing.20coercions) and [rust-for-linux thread](https://rust-lang.zulipchat.com/#narrow/stream/425075-rust-for-linux/topic/.23.5Bderive.28SmartPointer.29.5D.20and.20pin.20unsoundness.20rfc.233621). try-job: dist-various-2
☀️ Try build successful - checks-actions |
@bors r=amanieu |
…manieu PinCoerceUnsized trait into core cc `@Darksonn` `@wedsonaf` `@ojeda` This is a PR to introduce a `PinCoerceUnsized` trait in order to make trait impls generated by the proc-macro `#[derive(SmartPointer)]`, proposed by [RFC](https://github.com/rust-lang/rfcs/blob/e17e19ac7ad1c8ccad55d4babfaee1aa107d1da5/text/3621-derive-smart-pointer.md#pincoerceunsized-1), sound. There you may find explanation, justification and discussion about the alternatives. Note that we do not seek stabilization of this `PinCoerceUnsized` trait in the near future. The stabilisation of this trait does not block the eventual stabilization process of the `#[derive(SmartPointer)]` macro. Ideally, use of `DerefPure` is more preferrable except this will actually constitute a breaking change. `PinCoerceUnsized` emerges as a solution to the said soundness hole while avoiding the breaking change. More details on the `DerefPure` option have been described in this [section](https://github.com/rust-lang/rfcs/blob/e17e19ac7ad1c8ccad55d4babfaee1aa107d1da5/text/3621-derive-smart-pointer.md#derefpure) of the RFC linked above. Earlier discussion can be found in this [Zulip stream](https://rust-lang.zulipchat.com/#narrow/stream/136281-t-opsem/topic/Pin.20and.20soundness.20of.20unsizing.20coercions) and [rust-for-linux thread](https://rust-lang.zulipchat.com/#narrow/stream/425075-rust-for-linux/topic/.23.5Bderive.28SmartPointer.29.5D.20and.20pin.20unsoundness.20rfc.233621). try-job: dist-various-2
…iaskrgr Rollup of 8 pull requests Successful merges: - rust-lang#125048 (PinCoerceUnsized trait into core) - rust-lang#128273 (Improve `Ord` violation help) - rust-lang#128406 (implement BufReader::peek) - rust-lang#128539 (Forbid unused unsafe in vxworks-specific std modules) - rust-lang#128687 (interpret: refactor function call handling to be better-abstracted) - rust-lang#128692 (Add a triagebot mention for `library/Cargo.lock`) - rust-lang#128710 (Don't ICE when getting an input file name's stem fails) - rust-lang#128718 (Consider `cfg_attr` checked by `CheckAttrVisitor`) r? `@ghost` `@rustbot` modify labels: rollup
…iaskrgr Rollup of 8 pull requests Successful merges: - rust-lang#125048 (PinCoerceUnsized trait into core) - rust-lang#128273 (Improve `Ord` violation help) - rust-lang#128406 (implement BufReader::peek) - rust-lang#128539 (Forbid unused unsafe in vxworks-specific std modules) - rust-lang#128687 (interpret: refactor function call handling to be better-abstracted) - rust-lang#128692 (Add a triagebot mention for `library/Cargo.lock`) - rust-lang#128710 (Don't ICE when getting an input file name's stem fails) - rust-lang#128718 (Consider `cfg_attr` checked by `CheckAttrVisitor`) r? `@ghost` `@rustbot` modify labels: rollup
…iaskrgr Rollup of 9 pull requests Successful merges: - rust-lang#124944 (On trait bound mismatch, detect multiple crate versions in dep tree) - rust-lang#125048 (PinCoerceUnsized trait into core) - rust-lang#128406 (implement BufReader::peek) - rust-lang#128539 (Forbid unused unsafe in vxworks-specific std modules) - rust-lang#128687 (interpret: refactor function call handling to be better-abstracted) - rust-lang#128692 (Add a triagebot mention for `library/Cargo.lock`) - rust-lang#128710 (Don't ICE when getting an input file name's stem fails) - rust-lang#128718 (Consider `cfg_attr` checked by `CheckAttrVisitor`) - rust-lang#128751 (std::thread: set_name implementation proposal for vxWorks.) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#125048 - dingxiangfei2009:stable-deref, r=amanieu PinCoerceUnsized trait into core cc ``@Darksonn`` ``@wedsonaf`` ``@ojeda`` This is a PR to introduce a `PinCoerceUnsized` trait in order to make trait impls generated by the proc-macro `#[derive(SmartPointer)]`, proposed by [RFC](https://github.com/rust-lang/rfcs/blob/e17e19ac7ad1c8ccad55d4babfaee1aa107d1da5/text/3621-derive-smart-pointer.md#pincoerceunsized-1), sound. There you may find explanation, justification and discussion about the alternatives. Note that we do not seek stabilization of this `PinCoerceUnsized` trait in the near future. The stabilisation of this trait does not block the eventual stabilization process of the `#[derive(SmartPointer)]` macro. Ideally, use of `DerefPure` is more preferrable except this will actually constitute a breaking change. `PinCoerceUnsized` emerges as a solution to the said soundness hole while avoiding the breaking change. More details on the `DerefPure` option have been described in this [section](https://github.com/rust-lang/rfcs/blob/e17e19ac7ad1c8ccad55d4babfaee1aa107d1da5/text/3621-derive-smart-pointer.md#derefpure) of the RFC linked above. Earlier discussion can be found in this [Zulip stream](https://rust-lang.zulipchat.com/#narrow/stream/136281-t-opsem/topic/Pin.20and.20soundness.20of.20unsizing.20coercions) and [rust-for-linux thread](https://rust-lang.zulipchat.com/#narrow/stream/425075-rust-for-linux/topic/.23.5Bderive.28SmartPointer.29.5D.20and.20pin.20unsoundness.20rfc.233621). try-job: dist-various-2
febaf22f00e Rollup merge of rust-lang#129592 - saethlin:core-cfg-test, r=tgross35 77a1318f7f7 Rollup merge of rust-lang#129588 - hermit-os:sleep-micros, r=workingjubilee 12fe23bd5dc Rollup merge of rust-lang#129539 - oconnor663:poll_link, r=tgross35 864e465be7b Rollup merge of rust-lang#129377 - chorman0773:unbounded-shifts-impl, r=scottmcm d958260763a Auto merge of rust-lang#129595 - matthiaskrgr:rollup-4udn7nn, r=matthiaskrgr 8dd3363de6a Remove cfg(test) from library/core cd554e2b4ea Rollup merge of rust-lang#129544 - mu001999-contrib:dead-code/clean, r=compiler-errors ff769eef88a Rollup merge of rust-lang#129525 - notriddle:notriddle/fake-variadic-tuple-array, r=GuillaumeGomez 4d22c1c6b37 Auto merge of rust-lang#129488 - saethlin:alignment-precondition, r=workingjubilee c688deff96a pal/hermit: saturate `usleep` microseconds at `u64::MAX` 8ea71ae5647 Auto merge of rust-lang#129563 - matthiaskrgr:rollup-t6bai2d, r=matthiaskrgr fdb5fc1fca6 pal/hermit: correctly round up microseconds in `Thread::sleep` 22ec8977a9a link to Future::poll from the Poll docs a994fbbca83 Rollup merge of rust-lang#129487 - GrigorenkoPV:repr_transparent_external_private_fields, r=compiler-errors 3a339226a95 Rollup merge of rust-lang#129416 - workingjubilee:partial-move-from-stabilization, r=dtolnay 3a8de952989 Rollup merge of rust-lang#129091 - RalfJung:box_as_ptr, r=Amanieu 4de4debd1eb Auto merge of rust-lang#129295 - Zalathar:profiler-builtins, r=Kobzol 8dafd337e12 Auto merge of rust-lang#129521 - matthiaskrgr:rollup-uigv77m, r=matthiaskrgr d9e489b48ce Removes dead code from the compiler c14cf57e404 Rollup merge of rust-lang#129481 - scottmcm:update-cb, r=tgross35 acf6f03b6fa Rollup merge of rust-lang#129449 - coolreader18:pin-as_deref_mut-signature, r=dtolnay 112ebc4d5a9 Rollup merge of rust-lang#128735 - jieyouxu:pr-120176-revive, r=cjgillot 49aa496c5bb rustdoc: clean up tuple <-> primitive conversion docs 0fe374666ac Rollup merge of rust-lang#129501 - RalfJung:miri-rust-backtrace, r=Noratrieb 7d5cf38931b Rollup merge of rust-lang#129500 - fee1-dead-contrib:fxrel, r=compiler-errors e91d825f826 Rollup merge of rust-lang#129323 - Urgau:ptr_fn_addr_eq, r=Mark-Simulacrum f6470795864 Rollup merge of rust-lang#128596 - RalfJung:const_fn_floating_point_arithmetic, r=nnethercote f965950f05e New `#[rustc_pub_transparent]` attribute a6ea125cb0e panicking: improve hint for Miri's RUST_BACKTRACE behavior a437005e6f3 Build `library/profiler_builtins` from `ci-llvm` if appropriate 693477a3f65 remove invalid `TyCompat` relation for effects 82fc74f6f1a library: Move unstable API of new_uninit to new features 3ee2e18c8dc Enable Alignment::new_unchecked precondition check 0803686e7fb Change `f16` doctests in core to run on x86-64 linux 9359a126d41 Update `compiler_builtins` to `0.1.121` da02e8b5609 Enable `f16` tests on x86 and x86-64 976fb4aeefc Move into_inner_unchecked back to the bottom of the impl block 2741e8dacb4 Put Pin::as_deref_mut in impl Pin<Ptr> f670207d0f4 Auto merge of rust-lang#129464 - GuillaumeGomez:rollup-ckfqd7h, r=GuillaumeGomez 5bf661cc64f Rollup merge of rust-lang#129276 - eduardosm:stabilize-char_indices_offset, r=Amanieu e2614f24b27 Rollup merge of rust-lang#129400 - Amjad50:update-compiler-builtins, r=tgross35 2c06146be10 Rollup merge of rust-lang#127623 - lolbinarycat:fix_remove_dir_all, r=Amanieu eb747e53dd0 Check that `library/profiler_builtins` actually found some source files fe33d2c256c fix: fs::remove_dir_all: treat ENOENT as success 3fd591ebdef feat(core): Make `unbounded_shl{l,r}` unstably const and remove `rustc_allow_const_fn_unstable` 2168ce32967 Auto merge of rust-lang#129398 - matthiaskrgr:rollup-50l01ry, r=matthiaskrgr 12944c76047 Update `compiler_builtins` to `0.1.120` 7496478b7a5 stabilize const_fn_floating_point_arithmetic 6f534f94217 Rollup merge of rust-lang#129382 - tgross35:once-cell-const-into-inner, r=Noratrieb 2535017098e Rollup merge of rust-lang#129376 - ChaiTRex:assert_unsafe_precondition_check_language_ub, r=workingjubilee,the8472 4ec19afe669 Rollup merge of rust-lang#129374 - ChaiTRex:digit_unchecked_assert_unsafe_precondition, r=scottmcm 024ec3c0f62 Rollup merge of rust-lang#128432 - g0djan:godjan/wasi_prohibit_implicit_unsafe, r=tgross35 f671c1129b9 Auto merge of rust-lang#129365 - matthiaskrgr:rollup-ebwx6ya, r=matthiaskrgr 5299ef149b1 fix(core): Use correct operations/values in `unbounded_shr` doctests 84230062104 chore: `x fmt` cbe7338e1f3 fix(core): Add `#![feature(unbounded_shifts)]` to doctests for `unbounded_shr`/`unbounded_shl` 863123bd7c4 Add `const_cell_into_inner` to `OnceCell` 6fd539327d2 chore: `x fmt` and hopefully fix the tidy issue 9d2bb976994 Change `assert_unsafe_precondition` docs to refer to `check_language_ub` 32bd5dfb369 chore: Also format the control flow 5f8cf71d7d6 Manually format functions and use `rhs` instead of `v` from my CE testing 700af565751 feat(core): Add implementations for `unbounded_shl`/`unbounded_shr` a9ad57eb6a1 Use `assert_unsafe_precondition!` in `AsciiChar::digit_unchecked` 77bd65fdedc Rollup merge of rust-lang#129321 - krtab:float_sum, r=workingjubilee cc219788b51 Rollup merge of rust-lang#129232 - ivmarkov:master, r=workingjubilee c9cf844ccd3 Rollup merge of rust-lang#127945 - tgross35:debug-more-non-exhaustive, r=Noratrieb d37ebfea900 Rollup merge of rust-lang#129332 - cuviper:cstr-cast, r=compiler-errors 6d01ed8b3bd Rollup merge of rust-lang#129312 - tbu-:pr_str_not_impl_error, r=Noratrieb 93319c80754 Fix stability attribute of `impl !Error for &str` 7f8bdd574b6 Auto merge of rust-lang#126556 - saethlin:layout-precondition, r=joboet 9e9141f54eb Auto merge of rust-lang#128866 - scottmcm:update-stdarch, r=tgross35 d47cfba89b7 Update stdarch submodule b507a8bfeb9 Try to golf down the amount of code in Layout 32b574e848f Avoid extra `cast()`s after `CStr::as_ptr()` 9d4113ff24d Rollup merge of rust-lang#129294 - scottmcm:stabilize-repeat-n, r=Noratrieb 62d240d9b6a Implement `ptr::fn_addr_eq` 529e33acb80 Change neutral element of <fNN as iter::Sum> to neg_zero 126935f7257 Stabilize `iter::repeat_n` 91439ce7b58 Auto merge of rust-lang#129226 - RalfJung:libc, r=Mark-Simulacrum bef7be0e71e Add a precondition check for Layout::from_size_align_unchecked a55ab85ad47 Stabilize feature `char_indices_offset` 7f45dcfa195 library: bump libc dependency ebe99f3b8b6 Rollup merge of rust-lang#128902 - evanj:evan.jones/env-var-doc, r=workingjubilee 8bdd95ba4da soft-deprecate the addr_of macros 23b0aadc2ce code review improvements 0b0dad4af6f Fix for issue rust-lang#129212 for the ESP-IDF bd7aa576572 Auto merge of rust-lang#126877 - GrigorenkoPV:clone_to_uninit, r=dtolnay d3c08f8f8ac Auto merge of rust-lang#128598 - RalfJung:float-comments, r=workingjubilee dc5fed53253 Auto merge of rust-lang#106943 - mina86:exact_size_take_repeat, r=dtolnay 88927ac26eb Auto merge of rust-lang#116528 - daxpedda:stabilize-ready-into-inner, r=dtolnay 9952947d86b Rollup merge of rust-lang#129161 - dtolnay:spawnunck, r=Noratrieb db3abec9727 Rollup merge of rust-lang#129086 - slanterns:is_none_or, r=dtolnay 44a558dc7dc Stabilize std::thread::Builder::spawn_unchecked 5c553c41134 float to/from bits and classify: update comments regarding non-conformant hardware 9704e2df60c Rollup merge of rust-lang#128064 - ijackson:noop-waker-doc, r=workingjubilee 0497f0c6c91 Add cautionary paragraph about noop wakers. 16dd42669a2 Rollup merge of rust-lang#128946 - orlp:faster-ip-hash, r=joboet 383c4db14b0 Rollup merge of rust-lang#128925 - dingxiangfei2009:smart-ptr-helper-attr, r=compiler-errors ba3a942d5de Rollup merge of rust-lang#125970 - RalfJung:before_exec, r=m-ou-se 0dbf8cff9de Rollup merge of rust-lang#128954 - zachs18:fromresidual-no-default, r=scottmcm 4f0959927f2 Rollup merge of rust-lang#128570 - folkertdev:stabilize-asm-const, r=Amanieu b6c9e44d2a6 add Box::as_ptr and Box::as_mut_ptr methods 23d1309b02e CommandExt::before_exec: deprecate safety in edition 2024 9858d49b168 stabilize `is_none_or` fd2b339c5a6 Auto merge of rust-lang#129060 - matthiaskrgr:rollup-s72gpif, r=matthiaskrgr 3b8aab7df81 Rollup merge of rust-lang#129001 - cblh:fix/128713, r=Noratrieb 16edf695130 Rollup merge of rust-lang#128873 - ChrisDenton:windows-targets, r=Mark-Simulacrum 0199b00c91f Rollup merge of rust-lang#128759 - notriddle:notriddle/spec-to-string, r=workingjubilee,compiler-errors c6dc243b917 stabilize `asm_const` b4bfc215048 Rollup merge of rust-lang#129034 - henryksloan:coroutine-must-use, r=joboet b56fdcb2730 Rollup merge of rust-lang#127857 - tbu-:pr_deprecated_safe_todo, r=petrochenkov 77f462da866 Rollup merge of rust-lang#122884 - mzabaluev:pow-remove-exit-branch, r=Amanieu 0a6a74bce1a Reduce merged doctest source code size a83dde61642 Mark location doctest as standalone since file information will not work in merged doctest file 7334c7178ce Auto merge of rust-lang#129046 - matthiaskrgr:rollup-9x4xgak, r=matthiaskrgr 9ed72103664 Rollup merge of rust-lang#128745 - dtolnay:spawnunchecked, r=workingjubilee c39d90e4d51 Rollup merge of rust-lang#128655 - joboet:play_with_the_dice, r=ChrisDenton f81c96a863e `#[deprecated_safe_2024]`: Also use the `// TODO:` hint in the compiler error 23a19685c9b Allow to customize `// TODO:` comment for deprecated safe autofix 37017c0f6f6 Auto merge of rust-lang#128962 - devnexen:fs_get_mode_haiku, r=workingjubilee 8a2671a2889 Revert to original loop for const pow exponents c5e81895dfb Auto merge of rust-lang#128742 - RalfJung:miri-vtable-uniqueness, r=saethlin ac682f19873 Add must_use attribute to Coroutine trait 658904d1a9a chore(lib): fmt core::fmt::Formatter's write_fmt method 7eb73762bb3 trying common codepath for every unixes 5fabf93c765 std::fs: get_mode implementation for haiku. e3da824e62c Rollup merge of rust-lang#129017 - its-the-shrimp:core_fmt_from_fn, r=Noratrieb b247d9a7a9a derive(SmartPointer): register helper attributes aa854485cea Explicitly specify type parameter on FromResidual impls in stdlib. 262a4f6b641 std::fmt::FormatterFn -> std::fmt::FromFn ceceae30ced Rollup merge of rust-lang#128632 - joboet:dont_overwrite_style, r=Amanieu e8f7afeb117 Rollup merge of rust-lang#128149 - RalfJung:nontemporal_store, r=jieyouxu,Amanieu,Jubilee 7dd208356e1 chore(lib): Enhance documentation for core::fmt::Formatter's write_fmt method 048efd0bcec ignore some vtable/fn ptr equality tests in Miri, their result is not fully predictable a367a12df0a std: use `/scheme/rand` on Redox 1ca6b42583f std: do not overwrite style in `get_backtrace_style` 91477777de1 Auto merge of rust-lang#128862 - cblh:fix/128855, r=scottmcm 56e1afe0810 Auto merge of rust-lang#126793 - saethlin:mono-rawvec, r=scottmcm ec7a585087c Do not use unnecessary endian conversion. f48facfed72 Rollup merge of rust-lang#128882 - RalfJung:local-waker-will-wake, r=cuviper b581949746c Rollup merge of rust-lang#120314 - mina86:i, r=Mark-Simulacrum 451feca66ac Fix stability annotation and expand comment 2e34ac388e0 Hash Ipv*Addr as an integer b8b61e1e931 Auto merge of rust-lang#128927 - GuillaumeGomez:rollup-ei2lr0f, r=GuillaumeGomez 44f5b4fe515 Rollup merge of rust-lang#128273 - Voultapher:improve-ord-violation-help, r=workingjubilee 3d7afa0e721 Update std and compiler 971df1c2948 Stabilize `min_exhaustive_patterns` c37c6665b9b Add an optimizer hint for the capacity that with_capacity_in returns c8cbd5c499c Hoist IS_ZST check out of RawVecInner::from_*_in e843f7103a0 Polymorphize RawVec dc39cbf9234 core: optimise Debug impl for ascii::Char 9668691af5d doc: std::env::var: Returns None for names with '=' or NUL byte 5d5d8bc73a9 Rollup merge of rust-lang#128859 - MinxuanZ:mips-sig, r=Amanieu 825def017bc Rollup merge of rust-lang#128817 - biabbas:vxworks_update, r=tgross35 6e933a82c90 make LocalWaker::will_wake consistent with Waker::will_wake 118c71296c8 Fix linkchecker issue b1460b93704 Exclude windows-targets from the workspace a3a6a9856c2 Add windows-targets crate to std's sysroot f74940d94c2 Rollup merge of rust-lang#128824 - GuillaumeGomez:update-compiler-builtins, r=Amanieu 39b1eafc08c VxWorks: Add safety comment for vxCpuEnabledGet 8b0a25df983 fix: Ensure `Guard`'s `drop` method is removed at `opt-level=s` for `Copy` types c54958c5dad delete space dadbd585cb3 fix format 7c34ebf93de [SPARC] fix the name of signal 19 in sparc arch b75648a7515 [MIPS] fix the name of signal 19 in mips 3840b09aae3 Rollup merge of rust-lang#128818 - RalfJung:std-miri-floats, r=tgross35 d03bb5e33a9 Rollup merge of rust-lang#128640 - RalfJung:rwlock-macos-miri, r=joboet 7680a3c7598 Rollup merge of rust-lang#128749 - tgross35:float-inline, r=scottmcm 9df61adfaa1 Rollup merge of rust-lang#128306 - WiktorPrzetacznik:WiktorPrzetacznik-nonnull-alignoffset-update, r=Amanieu 39860ad52d1 Update compiler-builtins version to 0.1.118 42811859e46 std float tests: special-case Miri in feature detection 4d6b36adfe6 Vxworks: Extern taskNameSet and fix build errors e24a6ca11fa rwlock: disable 'frob' test in Miri on macOS c21ba971a8a Fix VxWorks available parallelism: Move nonzero::uncheked into unsafe block 249541802ec Rollup merge of rust-lang#128800 - clarfonthey:core-pattern-type, r=compiler-errors 79cd72af482 Rollup merge of rust-lang#128691 - tgross35:update-builtins, r=Amanieu 8f840157d66 Add tracking issue to core-pattern-type b8f7f384f75 Stabilize `Ready::into_inner()` 62ccdeb315d Rollup merge of rust-lang#128261 - clarfonthey:iter-default, r=dtolnay b4e53303f07 alloc: make `to_string_str!` a bit less complex ec74467d64c Mark `{f32,f64}::{next_up,next_down,midpoint}` inline b90a026d6f8 Rollup merge of rust-lang#128766 - Monadic-Cat:patch-1, r=tgross35 5d7906c0270 Rollup merge of rust-lang#128417 - tgross35:f16-f128-math, r=dtolnay 83d1d167737 Trivial grammar fix in const keyword docs 97384fa701b Update `compiler-builtins` to 0.1.117 6dc79bb6235 Rollup merge of rust-lang#128751 - devnexen:vxworks_set_thread_name, r=tgross35 432425d28f7 Rollup merge of rust-lang#128539 - biabbas:deny_unsafe, r=workingjubilee 1bd5338eadf Rollup merge of rust-lang#128406 - lolbinarycat:bufreader_peek, r=Mark-Simulacrum e20aa6430f1 Rollup merge of rust-lang#125048 - dingxiangfei2009:stable-deref, r=amanieu bc13c6ca57a alloc: add ToString specialization for `&&str` 14fe723f6b9 std::thread: set_name implementation proposal for vxWorks. 67fa603356d Remove unused lifetime parameter from spawn_unchecked 4a3da122172 Add a special case for CStr/CString in the improper_ctypes lint 51ec2bb7ea2 implement BufReader::peek e6aede2233f nontemporal_store: make sure that the intrinsic is truly just a hint a300df74d13 WASI fixing unsafe_op_in_unsafe_fn for std::{os, sys} 59436fcc0b1 std: refactor UNIX random data generation 6fafc6b5d92 Apply review comments to PartialOrd section 7850a64f5bb Forbid unsafe_op_in_unsafe_fn in vxworks specific os and sys files e844efffe8f Add a disclaimer about x86 `f128` math functions 21d297b29ad Update comments for `{f16, f32, f64, f128}::midpoint` ad27d08e73e Add `core` functions for `f16` and `f128` that require math routines c6407b0bfa7 Add math functions for `f16` and `f128` d9b1de5180d Add math intrinsics for `f16` and `f128` 3c1586b3ce8 Hide internal sort module 21887129721 Apply review comments 2ebe00aa0ba PinCoerceUnsized trait into core 569ab6a3a03 CloneToUninit: use a private specialization trait 26874cc98cc Sparkle some attributes over `CloneToUninit` stuff e8c37187b60 impl CloneToUninit for Path and OsStr ef8c591ec02 impl CloneToUninit for str and CStr 65c6173bfe1 Update NonNull::align_offset quarantees b014b0d7b74 Improve panic sections for sort*, sort_unstable* and select_nth_unstable* 9bcfe84e72b Improve panic message and surrounding documentation for Ord violations 7e55abb1837 Okay, I guess I have to give these a different feature name bdc18e2ea2b impl Default for collection iterators that don't already have it 971aa37f27b LocalWaker docs: Make long-ago omitted but probably intended changes c4fdac9fe60 Docs for Waker and LocalWaker: Add cross-refs in comment 9c299bc6b10 Implement `debug_more_non_exhaustive` b405024dc09 Make use of raw strings in `core::fmt::builders` 20e64bd6cd3 Use is_val_statically_known to optimize pow 05ee32298cb Explicitly unroll integer pow for small exponents 4cfe24a3555 Optimize integer pow by removing exit branch 7c219da2111 Implement DoubleEnded and ExactSize for Take<Repeat> and Take<RepeatWith> git-subtree-dir: library git-subtree-split: febaf22f00e7290f42d3f6f50c4a9dbe8b4cbe5f
4f47132d7d3 Auto merge of rust-lang#129941 - BoxyUwU:bump-boostrap, r=albertlarsan68 fd0bc94d539 Adjust doc comment of Condvar::wait_while 2699de648cc Rollup merge of rust-lang#129963 - rjooske:fix/inaccurate_to_string_lossy_doc, r=workingjubilee cde81452601 Auto merge of rust-lang#129999 - matthiaskrgr:rollup-pzr9c8p, r=matthiaskrgr ab4b4f8c12e Rollup merge of rust-lang#129947 - LiterallyVoid:duration-docs-digit-separators, r=tgross35 3e7e6cdbd64 Rollup merge of rust-lang#129653 - RalfJung:addr-of-read-only, r=scottmcm e51a0bc9ea0 Rollup merge of rust-lang#129938 - chancancode:patch-1, r=thomcc 349f8d57256 update cfgs 181dc2674a5 Rollup merge of rust-lang#129919 - kevinmehall:waker-getters, r=dtolnay 3d2a91f59a9 Rollup merge of rust-lang#127021 - thesummer:1-add-target-support-for-rtems-arm-xilinx-zedboard, r=tgross35 25891c8560a Rollup merge of rust-lang#101339 - the8472:ci-randomize-debug, r=Mark-Simulacrum eb4746892bf fix: correct {Path,OsStr}::to_string_lossy() docs 76972316fb6 docs: add digit separators in `Duration` examples 9ed92df9886 replace placeholder version 00e12f791e4 Update marker.rs 5de059ff2d0 Update marker.rs 72e79f0c1de Update marker.rs 870dfeddde9 Update marker.rs de72cd33be9 Elaborate on deriving vs implementing `Copy` fee63007a49 More robust extension checking ae90e450fd9 Port std library to RTEMS c313c072ba2 Rollup merge of rust-lang#129916 - tshepang:basic-usage, r=ChrisDenton c501959a497 Rollup merge of rust-lang#129913 - saethlin:l4re-read-buf, r=Noratrieb 83524b98e8b Rollup merge of rust-lang#129885 - cuishuang:master, r=scottmcm e41afdc2cc8 Rollup merge of rust-lang#129800 - ChrisDenton:remove-dir-all2, r=Amanieu 851f5b63258 Add `Waker::new` and `LocalWaker::new` a2b8bb8baae Stabilize waker_getters 2ec266b2cd4 Move the `data` and `vtable` methods from `RawWaker` to `Waker` 562fdcec802 process.rs: remove "Basic usage" text where not useful 9b3c3fecc0d Rollup merge of rust-lang#129907 - saethlin:solid-io-error, r=WaffleLapkin 02cecebd3a9 Rollup merge of rust-lang#129892 - oskgo:clarify-slice-from-raw, r=RalfJung ccc294c2a53 Rollup merge of rust-lang#129890 - alex:patch-1, r=workingjubilee 6d0e687304b Rollup merge of rust-lang#129856 - RalfJung:compiler_fence, r=thomcc 0ccc851a07e Rollup merge of rust-lang#129748 - RalfJung:box-validity, r=workingjubilee 37618495ad7 Add missing read_buf stub for x86_64-unknown-l5re-uclibc 3b8ab5a6439 Fix compile error in solid's remove_dir_all e14b9f387e8 clarify language around non-null ptrs in slice::raw 9a76abd8364 Remove stray word in a comment 1dd630f2324 Auto merge of rust-lang#129873 - matthiaskrgr:rollup-bv849ud, r=matthiaskrgr 26498824037 chore: remove repetitive words 7fd784ec2ba Rollup merge of rust-lang#129804 - ranger-ross:fixed-documentation-typos, r=Noratrieb e4e9f6b9248 Rollup merge of rust-lang#129793 - lolbinarycat:doc-missing-newlines, r=workingjubilee c4aa66aca88 Auto merge of rust-lang#129063 - the8472:cold-opt-size, r=Amanieu 4e3dbeedf82 add extra linebreaks so rustdoc can identify the first sentence e00784f5e85 compiler_fence documentation: emphasize synchronization, not reordering 8d8dbe91b02 tweak wording regarding Box validity 065844bb5f0 Auto merge of rust-lang#127897 - nyurik:add-qnx-70-target, r=saethlin 759399be7a3 Rollup merge of rust-lang#129832 - eduardosm:stray-dot, r=jhpratt 60f37e4ad71 Rollup merge of rust-lang#129207 - GrigorenkoPV:elided-is-named, r=cjgillot 68e6537ba28 Rollup merge of rust-lang#128641 - Konippi:standardize-duplicate-processes-in-parser, r=scottmcm b93e3abbf07 Rollup merge of rust-lang#128495 - joboet:more_memcmp, r=scottmcm 64c1db22d08 when -Zrandomize-layout is enabled disable alloc test testing internal struct sizes d432698157c Auto merge of rust-lang#129831 - matthiaskrgr:rollup-befq6zx, r=matthiaskrgr 77cf0ba112b Remove stray dot in `std::char::from_u32_unchecked` documentation ef033b028ed Rollup merge of rust-lang#129826 - Alcaro:patch-1, r=workingjubilee 2ad03e02998 Rollup merge of rust-lang#129650 - Zalathar:profiler-builtins, r=Mark-Simulacrum c33b3dfa8ec Update mod.rs 24ed1c124d6 Rollup merge of rust-lang#129785 - RalfJung:miri-sync, r=RalfJung 50681ab44e8 Rollup merge of rust-lang#129730 - RalfJung:float-arithmetic, r=workingjubilee 0402bb10c5a Fix `elided_named_lifetimes` in code 667d060bfd6 Move remove_dir_all impl into a module ae18edf95f4 Rollup merge of rust-lang#129754 - alexcrichton:fix-wasi-long-sleep, r=workingjubilee 9138bd188f5 Rollup merge of rust-lang#129675 - lolbinarycat:bufreader_peek_unsized, r=workingjubilee 83cadd0fe20 Rollup merge of rust-lang#129642 - workingjubilee:bump-backtrace-fc37b22, r=workingjubilee d9af971403a Rollup merge of rust-lang#129640 - saethlin:unignore-android-in-alloc, r=tgross35 6b12a632e1d Fixed more typos in library/core 40f9251a0cd Fixed typos in btree map docs 628be3dae28 Fixed some typos in the standard library documentation/comments 21e893e6b6d enumerate the two parts of the NaN rules 081353cd333 add hyphen in floating-point c664843f3b7 Squashed `aarch64_unknown_nto_qnx700` support 5c4c81a7c61 Merge from rustc a37464739a6 Try latest backtrace 2c75dd81561 wasi: Fix sleeping for `Duration::MAX` 374229a0231 Rollup merge of rust-lang#128166 - ChaiTRex:isqrt, r=tgross35 f0dce767de0 Rollup merge of rust-lang#123940 - kornelski:remove-derived-debug, r=Urgau 228ec9e62ac Box validity: update for new zero-sized rules 93a72daf8ad f32 docs: define 'arithmetic' operations 1bc188fd531 Merge from rustc c44af617f84 Speed up `checked_isqrt` and `isqrt` methods 21396512b94 Improve `isqrt` tests and add benchmarks 7c1560f9833 Rollup merge of rust-lang#129715 - Amjad50:update-compiler-builtins, r=tgross35 d2a001df590 Rollup merge of rust-lang#129683 - RalfJung:copysign, r=thomcc 8753a357ece Rollup merge of rust-lang#129673 - matthewpipie:arc-weak-debug-trait, r=dtolnay 3e1f63a7ab6 Rollup merge of rust-lang#129401 - workingjubilee:partial-initialization-of-stabilization, r=dtolnay,joboet cd59153e222 Rollup merge of rust-lang#129378 - goffrie:patch-3, r=ChrisDenton 6d31b6de716 Rollup merge of rust-lang#128192 - mrkajetanp:feature-detect, r=Amanieu 60fd9c980c3 Update `compiler_builtins` to `0.1.123` 86c924ff3e5 fmt-debug option 8623fa49bac allow BufReader::peek to be called on unsized types b1a56b508b6 Auto merge of rust-lang#129691 - matthiaskrgr:rollup-owlcr3m, r=matthiaskrgr 39ad6a926e3 Rollup merge of rust-lang#129668 - coolreader18:fix-pin-set-regr, r=dtolnay 5a4fe4044d8 Rollup merge of rust-lang#129657 - jswrenn:transmute-name, r=compiler-errors 1d44fabf570 Rollup merge of rust-lang#129551 - RalfJung:ub-checks-fallback, r=saethlin b0fee9815c8 Rollup merge of rust-lang#129480 - lolbinarycat:euclid-docs, r=joboet c8d3265d52d Enable some ilog2 tests as well da08ef4ef5a Re-enable android tests/benches in alloc bfbe13e1767 Auto merge of rust-lang#129589 - saethlin:improve-panic-immediate-abort, r=tgross35 89021c809f8 copysign with sign being a NaN is non-portable ed66a11c68e addr_of on places derived from raw pointers should preserve permissions 17298981159 Add fmt::Debug to sync::Weak<T, A> 927a6da67ab Fix Pin::set bounds regression 9876bd1014d library: Stabilize new_uninit for Box, Rc, and Arc a0ea69f6e4e Rollup merge of rust-lang#129652 - RalfJung:ptr-to-ref, r=traviscross c7cbb41d48c Rollup merge of rust-lang#129645 - beetrees:fix-float-docs, r=tgross35 04eabb59f6a Rollup merge of rust-lang#129581 - RalfJung:exit, r=joshtriplett 33e2d7e8de6 safe transmute: Rename `BikeshedIntrinsicFrom` to `TransmuteFrom` 72c676f1fdb Auto merge of rust-lang#128134 - joboet:move_pal_alloc, r=cupiver c108af0dbf3 fix Pointer to reference conversion docs 193310350fc clarify that addr_of creates read-only pointers 4f6b8149292 rustc_target: Add SME aarch64 features 012bb44c6c5 rustc_target: Add various aarch64 features 4dc5b675267 std: move allocators to `sys` 264fa88ed6a Don't skip nonexistent source files 5298b521b75 Add `cargo::rerun-if-changed` directives for source directories 5defa797459 Always include `WindowsMMap.c` in the list of source files 91d2ecf1eca Sort the list of source files cb468d737ba Remove `InstrProfilingBiasVar.c` from the list of source files 0e0134f5d4b Use helper functions to read environment variables a628540ba41 Rollup merge of rust-lang#129559 - RalfJung:float-nan-semantics, r=thomcc 00c8f98e15e Rollup merge of rust-lang#128731 - RalfJung:simd-shuffle-vector, r=workingjubilee 6d3344f0919 Update old comment referring to `libcompiler_builtins` 6d8a1f6903e Reflow a couple of paragraphs in floating-point primitive docs 8834d35fa4b Fix typos in floating-point primitive type docs 54c986a8287 Bump backtrace to rust-lang/backtrace@fc37b22 932cbd42f14 Rollup merge of rust-lang#129032 - jswrenn:transmute-method, r=compiler-errors 28a983de9a8 Rollup merge of rust-lang#128157 - lolbinarycat:unify-ptr-ref-docs, r=cuviper d1e21bdba8d Apply suggestions from code review febaf22f00e Rollup merge of rust-lang#129592 - saethlin:core-cfg-test, r=tgross35 77a1318f7f7 Rollup merge of rust-lang#129588 - hermit-os:sleep-micros, r=workingjubilee 12fe23bd5dc Rollup merge of rust-lang#129539 - oconnor663:poll_link, r=tgross35 864e465be7b Rollup merge of rust-lang#129377 - chorman0773:unbounded-shifts-impl, r=scottmcm 07cfc6ae040 also update copysign docs acaef605e72 move per-target NaN info into a table 854ba7e4cef float types: document NaN bit pattern guarantees d958260763a Auto merge of rust-lang#129595 - matthiaskrgr:rollup-4udn7nn, r=matthiaskrgr 8dd3363de6a Remove cfg(test) from library/core cd554e2b4ea Rollup merge of rust-lang#129544 - mu001999-contrib:dead-code/clean, r=compiler-errors ff769eef88a Rollup merge of rust-lang#129525 - notriddle:notriddle/fake-variadic-tuple-array, r=GuillaumeGomez 4d22c1c6b37 Auto merge of rust-lang#129488 - saethlin:alignment-precondition, r=workingjubilee c688deff96a pal/hermit: saturate `usleep` microseconds at `u64::MAX` 8ea71ae5647 Auto merge of rust-lang#129563 - matthiaskrgr:rollup-t6bai2d, r=matthiaskrgr 46eff207f56 Tweak some attributes to improve panic_immediate_abort fdb5fc1fca6 pal/hermit: correctly round up microseconds in `Thread::sleep` b392703506b exit: explain our expectations for the exit handlers registered in a Rust program 22ec8977a9a link to Future::poll from the Poll docs a994fbbca83 Rollup merge of rust-lang#129487 - GrigorenkoPV:repr_transparent_external_private_fields, r=compiler-errors 3a339226a95 Rollup merge of rust-lang#129416 - workingjubilee:partial-move-from-stabilization, r=dtolnay 3a8de952989 Rollup merge of rust-lang#129091 - RalfJung:box_as_ptr, r=Amanieu 4de4debd1eb Auto merge of rust-lang#129295 - Zalathar:profiler-builtins, r=Kobzol 0872cf30408 ub_checks intrinsics: fall back to cfg(ub_checks) 8dafd337e12 Auto merge of rust-lang#129521 - matthiaskrgr:rollup-uigv77m, r=matthiaskrgr d9e489b48ce Removes dead code from the compiler c14cf57e404 Rollup merge of rust-lang#129481 - scottmcm:update-cb, r=tgross35 acf6f03b6fa Rollup merge of rust-lang#129449 - coolreader18:pin-as_deref_mut-signature, r=dtolnay 112ebc4d5a9 Rollup merge of rust-lang#128735 - jieyouxu:pr-120176-revive, r=cjgillot 49aa496c5bb rustdoc: clean up tuple <-> primitive conversion docs 0fe374666ac Rollup merge of rust-lang#129501 - RalfJung:miri-rust-backtrace, r=Noratrieb 7d5cf38931b Rollup merge of rust-lang#129500 - fee1-dead-contrib:fxrel, r=compiler-errors e91d825f826 Rollup merge of rust-lang#129323 - Urgau:ptr_fn_addr_eq, r=Mark-Simulacrum f6470795864 Rollup merge of rust-lang#128596 - RalfJung:const_fn_floating_point_arithmetic, r=nnethercote f965950f05e New `#[rustc_pub_transparent]` attribute a6ea125cb0e panicking: improve hint for Miri's RUST_BACKTRACE behavior a437005e6f3 Build `library/profiler_builtins` from `ci-llvm` if appropriate 693477a3f65 remove invalid `TyCompat` relation for effects 82fc74f6f1a library: Move unstable API of new_uninit to new features 3ee2e18c8dc Enable Alignment::new_unchecked precondition check 0803686e7fb Change `f16` doctests in core to run on x86-64 linux 9359a126d41 Update `compiler_builtins` to `0.1.121` da02e8b5609 Enable `f16` tests on x86 and x86-64 f3a198e85be docs: correct panic conditions for rem_euclid and similar functions 976fb4aeefc Move into_inner_unchecked back to the bottom of the impl block 2741e8dacb4 Put Pin::as_deref_mut in impl Pin<Ptr> 88790f80130 document & impl the transmutation modeled by `BikeshedIntrinsicFrom` f670207d0f4 Auto merge of rust-lang#129464 - GuillaumeGomez:rollup-ckfqd7h, r=GuillaumeGomez 5bf661cc64f Rollup merge of rust-lang#129276 - eduardosm:stabilize-char_indices_offset, r=Amanieu e2614f24b27 Rollup merge of rust-lang#129400 - Amjad50:update-compiler-builtins, r=tgross35 2c06146be10 Rollup merge of rust-lang#127623 - lolbinarycat:fix_remove_dir_all, r=Amanieu eb747e53dd0 Check that `library/profiler_builtins` actually found some source files eae79872269 fix typos in new pointer conversion docs fe33d2c256c fix: fs::remove_dir_all: treat ENOENT as success 3fd591ebdef feat(core): Make `unbounded_shl{l,r}` unstably const and remove `rustc_allow_const_fn_unstable` 2168ce32967 Auto merge of rust-lang#129398 - matthiaskrgr:rollup-50l01ry, r=matthiaskrgr 12944c76047 Update `compiler_builtins` to `0.1.120` 7496478b7a5 stabilize const_fn_floating_point_arithmetic 6f534f94217 Rollup merge of rust-lang#129382 - tgross35:once-cell-const-into-inner, r=Noratrieb 2535017098e Rollup merge of rust-lang#129376 - ChaiTRex:assert_unsafe_precondition_check_language_ub, r=workingjubilee,the8472 4ec19afe669 Rollup merge of rust-lang#129374 - ChaiTRex:digit_unchecked_assert_unsafe_precondition, r=scottmcm 024ec3c0f62 Rollup merge of rust-lang#128432 - g0djan:godjan/wasi_prohibit_implicit_unsafe, r=tgross35 f671c1129b9 Auto merge of rust-lang#129365 - matthiaskrgr:rollup-ebwx6ya, r=matthiaskrgr 5299ef149b1 fix(core): Use correct operations/values in `unbounded_shr` doctests 84230062104 chore: `x fmt` cbe7338e1f3 fix(core): Add `#![feature(unbounded_shifts)]` to doctests for `unbounded_shr`/`unbounded_shl` 863123bd7c4 Add `const_cell_into_inner` to `OnceCell` b51f35e9d47 format 6fd539327d2 chore: `x fmt` and hopefully fix the tidy issue e99c681c95b Clean up cfg-gating of ProcessPrng extern 9d2bb976994 Change `assert_unsafe_precondition` docs to refer to `check_language_ub` 32bd5dfb369 chore: Also format the control flow 5f8cf71d7d6 Manually format functions and use `rhs` instead of `v` from my CE testing 700af565751 feat(core): Add implementations for `unbounded_shl`/`unbounded_shr` a9ad57eb6a1 Use `assert_unsafe_precondition!` in `AsciiChar::digit_unchecked` 77bd65fdedc Rollup merge of rust-lang#129321 - krtab:float_sum, r=workingjubilee cc219788b51 Rollup merge of rust-lang#129232 - ivmarkov:master, r=workingjubilee c9cf844ccd3 Rollup merge of rust-lang#127945 - tgross35:debug-more-non-exhaustive, r=Noratrieb d37ebfea900 Rollup merge of rust-lang#129332 - cuviper:cstr-cast, r=compiler-errors 6d01ed8b3bd Rollup merge of rust-lang#129312 - tbu-:pr_str_not_impl_error, r=Noratrieb 93319c80754 Fix stability attribute of `impl !Error for &str` 7f8bdd574b6 Auto merge of rust-lang#126556 - saethlin:layout-precondition, r=joboet 9e9141f54eb Auto merge of rust-lang#128866 - scottmcm:update-stdarch, r=tgross35 d47cfba89b7 Update stdarch submodule b507a8bfeb9 Try to golf down the amount of code in Layout 32b574e848f Avoid extra `cast()`s after `CStr::as_ptr()` 9d4113ff24d Rollup merge of rust-lang#129294 - scottmcm:stabilize-repeat-n, r=Noratrieb 62d240d9b6a Implement `ptr::fn_addr_eq` 529e33acb80 Change neutral element of <fNN as iter::Sum> to neg_zero 126935f7257 Stabilize `iter::repeat_n` 91439ce7b58 Auto merge of rust-lang#129226 - RalfJung:libc, r=Mark-Simulacrum bef7be0e71e Add a precondition check for Layout::from_size_align_unchecked a55ab85ad47 Stabilize feature `char_indices_offset` 7f45dcfa195 library: bump libc dependency ebe99f3b8b6 Rollup merge of rust-lang#128902 - evanj:evan.jones/env-var-doc, r=workingjubilee 8bdd95ba4da soft-deprecate the addr_of macros 23b0aadc2ce code review improvements 0b0dad4af6f Fix for issue rust-lang#129212 for the ESP-IDF bd7aa576572 Auto merge of rust-lang#126877 - GrigorenkoPV:clone_to_uninit, r=dtolnay d3c08f8f8ac Auto merge of rust-lang#128598 - RalfJung:float-comments, r=workingjubilee dc5fed53253 Auto merge of rust-lang#106943 - mina86:exact_size_take_repeat, r=dtolnay 88927ac26eb Auto merge of rust-lang#116528 - daxpedda:stabilize-ready-into-inner, r=dtolnay 9952947d86b Rollup merge of rust-lang#129161 - dtolnay:spawnunck, r=Noratrieb db3abec9727 Rollup merge of rust-lang#129086 - slanterns:is_none_or, r=dtolnay 44a558dc7dc Stabilize std::thread::Builder::spawn_unchecked 5c553c41134 float to/from bits and classify: update comments regarding non-conformant hardware 9704e2df60c Rollup merge of rust-lang#128064 - ijackson:noop-waker-doc, r=workingjubilee 0497f0c6c91 Add cautionary paragraph about noop wakers. 16dd42669a2 Rollup merge of rust-lang#128946 - orlp:faster-ip-hash, r=joboet 383c4db14b0 Rollup merge of rust-lang#128925 - dingxiangfei2009:smart-ptr-helper-attr, r=compiler-errors ba3a942d5de Rollup merge of rust-lang#125970 - RalfJung:before_exec, r=m-ou-se 32a71bb1dc7 size-optimize some of the panic dependencies d7b85f24937 apply #[optimize(size)] to #[cold] ones and part of the panick machinery 0dbf8cff9de Rollup merge of rust-lang#128954 - zachs18:fromresidual-no-default, r=scottmcm 4f0959927f2 Rollup merge of rust-lang#128570 - folkertdev:stabilize-asm-const, r=Amanieu b6c9e44d2a6 add Box::as_ptr and Box::as_mut_ptr methods 23d1309b02e CommandExt::before_exec: deprecate safety in edition 2024 9858d49b168 stabilize `is_none_or` fd2b339c5a6 Auto merge of rust-lang#129060 - matthiaskrgr:rollup-s72gpif, r=matthiaskrgr 3b8aab7df81 Rollup merge of rust-lang#129001 - cblh:fix/128713, r=Noratrieb 16edf695130 Rollup merge of rust-lang#128873 - ChrisDenton:windows-targets, r=Mark-Simulacrum 0199b00c91f Rollup merge of rust-lang#128759 - notriddle:notriddle/spec-to-string, r=workingjubilee,compiler-errors c6dc243b917 stabilize `asm_const` b4bfc215048 Rollup merge of rust-lang#129034 - henryksloan:coroutine-must-use, r=joboet b56fdcb2730 Rollup merge of rust-lang#127857 - tbu-:pr_deprecated_safe_todo, r=petrochenkov 77f462da866 Rollup merge of rust-lang#122884 - mzabaluev:pow-remove-exit-branch, r=Amanieu 0a6a74bce1a Reduce merged doctest source code size a83dde61642 Mark location doctest as standalone since file information will not work in merged doctest file 7334c7178ce Auto merge of rust-lang#129046 - matthiaskrgr:rollup-9x4xgak, r=matthiaskrgr 9ed72103664 Rollup merge of rust-lang#128745 - dtolnay:spawnunchecked, r=workingjubilee c39d90e4d51 Rollup merge of rust-lang#128655 - joboet:play_with_the_dice, r=ChrisDenton f81c96a863e `#[deprecated_safe_2024]`: Also use the `// TODO:` hint in the compiler error 23a19685c9b Allow to customize `// TODO:` comment for deprecated safe autofix 37017c0f6f6 Auto merge of rust-lang#128962 - devnexen:fs_get_mode_haiku, r=workingjubilee 6ad03a7161f simd_shuffle intrinsic: allow argument to be passed as vector (not just as array) 8a2671a2889 Revert to original loop for const pow exponents c5e81895dfb Auto merge of rust-lang#128742 - RalfJung:miri-vtable-uniqueness, r=saethlin ac682f19873 Add must_use attribute to Coroutine trait 658904d1a9a chore(lib): fmt core::fmt::Formatter's write_fmt method 7eb73762bb3 trying common codepath for every unixes 5fabf93c765 std::fs: get_mode implementation for haiku. e3da824e62c Rollup merge of rust-lang#129017 - its-the-shrimp:core_fmt_from_fn, r=Noratrieb b247d9a7a9a derive(SmartPointer): register helper attributes aa854485cea Explicitly specify type parameter on FromResidual impls in stdlib. 262a4f6b641 std::fmt::FormatterFn -> std::fmt::FromFn ceceae30ced Rollup merge of rust-lang#128632 - joboet:dont_overwrite_style, r=Amanieu e8f7afeb117 Rollup merge of rust-lang#128149 - RalfJung:nontemporal_store, r=jieyouxu,Amanieu,Jubilee 7dd208356e1 chore(lib): Enhance documentation for core::fmt::Formatter's write_fmt method 048efd0bcec ignore some vtable/fn ptr equality tests in Miri, their result is not fully predictable a367a12df0a std: use `/scheme/rand` on Redox 4b816b496d5 core: make documentation clearer, rename slice comparison specialization trait 1ca6b42583f std: do not overwrite style in `get_backtrace_style` 91477777de1 Auto merge of rust-lang#128862 - cblh:fix/128855, r=scottmcm 56e1afe0810 Auto merge of rust-lang#126793 - saethlin:mono-rawvec, r=scottmcm ec7a585087c Do not use unnecessary endian conversion. f48facfed72 Rollup merge of rust-lang#128882 - RalfJung:local-waker-will-wake, r=cuviper b581949746c Rollup merge of rust-lang#120314 - mina86:i, r=Mark-Simulacrum 451feca66ac Fix stability annotation and expand comment 2e34ac388e0 Hash Ipv*Addr as an integer b8b61e1e931 Auto merge of rust-lang#128927 - GuillaumeGomez:rollup-ei2lr0f, r=GuillaumeGomez 44f5b4fe515 Rollup merge of rust-lang#128273 - Voultapher:improve-ord-violation-help, r=workingjubilee 3d7afa0e721 Update std and compiler 971df1c2948 Stabilize `min_exhaustive_patterns` c37c6665b9b Add an optimizer hint for the capacity that with_capacity_in returns c8cbd5c499c Hoist IS_ZST check out of RawVecInner::from_*_in e843f7103a0 Polymorphize RawVec dc39cbf9234 core: optimise Debug impl for ascii::Char 9668691af5d doc: std::env::var: Returns None for names with '=' or NUL byte 5d5d8bc73a9 Rollup merge of rust-lang#128859 - MinxuanZ:mips-sig, r=Amanieu 825def017bc Rollup merge of rust-lang#128817 - biabbas:vxworks_update, r=tgross35 6e933a82c90 make LocalWaker::will_wake consistent with Waker::will_wake 118c71296c8 Fix linkchecker issue b1460b93704 Exclude windows-targets from the workspace a3a6a9856c2 Add windows-targets crate to std's sysroot f74940d94c2 Rollup merge of rust-lang#128824 - GuillaumeGomez:update-compiler-builtins, r=Amanieu 39b1eafc08c VxWorks: Add safety comment for vxCpuEnabledGet 8b0a25df983 fix: Ensure `Guard`'s `drop` method is removed at `opt-level=s` for `Copy` types c54958c5dad delete space dadbd585cb3 fix format 7c34ebf93de [SPARC] fix the name of signal 19 in sparc arch b75648a7515 [MIPS] fix the name of signal 19 in mips 3840b09aae3 Rollup merge of rust-lang#128818 - RalfJung:std-miri-floats, r=tgross35 d03bb5e33a9 Rollup merge of rust-lang#128640 - RalfJung:rwlock-macos-miri, r=joboet 7680a3c7598 Rollup merge of rust-lang#128749 - tgross35:float-inline, r=scottmcm 9df61adfaa1 Rollup merge of rust-lang#128306 - WiktorPrzetacznik:WiktorPrzetacznik-nonnull-alignoffset-update, r=Amanieu 39860ad52d1 Update compiler-builtins version to 0.1.118 42811859e46 std float tests: special-case Miri in feature detection 4d6b36adfe6 Vxworks: Extern taskNameSet and fix build errors e24a6ca11fa rwlock: disable 'frob' test in Miri on macOS c21ba971a8a Fix VxWorks available parallelism: Move nonzero::uncheked into unsafe block 249541802ec Rollup merge of rust-lang#128800 - clarfonthey:core-pattern-type, r=compiler-errors 79cd72af482 Rollup merge of rust-lang#128691 - tgross35:update-builtins, r=Amanieu 8f840157d66 Add tracking issue to core-pattern-type b8f7f384f75 Stabilize `Ready::into_inner()` 62ccdeb315d Rollup merge of rust-lang#128261 - clarfonthey:iter-default, r=dtolnay b4e53303f07 alloc: make `to_string_str!` a bit less complex ec74467d64c Mark `{f32,f64}::{next_up,next_down,midpoint}` inline b90a026d6f8 Rollup merge of rust-lang#128766 - Monadic-Cat:patch-1, r=tgross35 5d7906c0270 Rollup merge of rust-lang#128417 - tgross35:f16-f128-math, r=dtolnay 83d1d167737 Trivial grammar fix in const keyword docs 97384fa701b Update `compiler-builtins` to 0.1.117 6dc79bb6235 Rollup merge of rust-lang#128751 - devnexen:vxworks_set_thread_name, r=tgross35 432425d28f7 Rollup merge of rust-lang#128539 - biabbas:deny_unsafe, r=workingjubilee 1bd5338eadf Rollup merge of rust-lang#128406 - lolbinarycat:bufreader_peek, r=Mark-Simulacrum e20aa6430f1 Rollup merge of rust-lang#125048 - dingxiangfei2009:stable-deref, r=amanieu bc13c6ca57a alloc: add ToString specialization for `&&str` 14fe723f6b9 std::thread: set_name implementation proposal for vxWorks. 67fa603356d Remove unused lifetime parameter from spawn_unchecked 4a3da122172 Add a special case for CStr/CString in the improper_ctypes lint 51ec2bb7ea2 implement BufReader::peek e6aede2233f nontemporal_store: make sure that the intrinsic is truly just a hint a300df74d13 WASI fixing unsafe_op_in_unsafe_fn for std::{os, sys} 59436fcc0b1 std: refactor UNIX random data generation 8fe1e328a17 refactor: standardize duplicate processes in parser 6fafc6b5d92 Apply review comments to PartialOrd section 7850a64f5bb Forbid unsafe_op_in_unsafe_fn in vxworks specific os and sys files e844efffe8f Add a disclaimer about x86 `f128` math functions 21d297b29ad Update comments for `{f16, f32, f64, f128}::midpoint` ad27d08e73e Add `core` functions for `f16` and `f128` that require math routines c6407b0bfa7 Add math functions for `f16` and `f128` d9b1de5180d Add math intrinsics for `f16` and `f128` 3c1586b3ce8 Hide internal sort module b927541dc3f core: use `compare_bytes` for more slice element types 21887129721 Apply review comments 2ebe00aa0ba PinCoerceUnsized trait into core 569ab6a3a03 CloneToUninit: use a private specialization trait 26874cc98cc Sparkle some attributes over `CloneToUninit` stuff e8c37187b60 impl CloneToUninit for Path and OsStr ef8c591ec02 impl CloneToUninit for str and CStr 65c6173bfe1 Update NonNull::align_offset quarantees b014b0d7b74 Improve panic sections for sort*, sort_unstable* and select_nth_unstable* 9bcfe84e72b Improve panic message and surrounding documentation for Ord violations 7e55abb1837 Okay, I guess I have to give these a different feature name bdc18e2ea2b impl Default for collection iterators that don't already have it f26f981c731 clarify interactions with MaybeUninit and UnsafeCell 394c8640df0 remove duplicate explanations of the ptr to ref conversion rules 571348bc357 create a new section on pointer to reference conversion 971aa37f27b LocalWaker docs: Make long-ago omitted but probably intended changes c4fdac9fe60 Docs for Waker and LocalWaker: Add cross-refs in comment 9c299bc6b10 Implement `debug_more_non_exhaustive` b405024dc09 Make use of raw strings in `core::fmt::builders` 20e64bd6cd3 Use is_val_statically_known to optimize pow 05ee32298cb Explicitly unroll integer pow for small exponents 4cfe24a3555 Optimize integer pow by removing exit branch 7c219da2111 Implement DoubleEnded and ExactSize for Take<Repeat> and Take<RepeatWith> git-subtree-dir: library git-subtree-split: 4f47132d7d3b4bda9ac62743c058732b9d266236
cc @Darksonn @wedsonaf @ojeda
This is a PR to introduce a
PinCoerceUnsized
trait in order to make trait impls generated by the proc-macro#[derive(SmartPointer)]
, proposed by RFC, sound. There you may find explanation, justification and discussion about the alternatives.Note that we do not seek stabilization of this
PinCoerceUnsized
trait in the near future. The stabilisation of this trait does not block the eventual stabilization process of the#[derive(SmartPointer)]
macro. Ideally, use ofDerefPure
is more preferrable except this will actually constitute a breaking change.PinCoerceUnsized
emerges as a solution to the said soundness hole while avoiding the breaking change. More details on theDerefPure
option have been described in this section of the RFC linked above.Earlier discussion can be found in this Zulip stream and rust-for-linux thread.
try-job: dist-various-2