-
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
Implement new effects desugaring #120639
Implement new effects desugaring #120639
Conversation
r? @oli-obk (rustbot has picked a reviewer for you, use r? to override) |
This comment has been minimized.
This comment has been minimized.
@@ -104,6 +104,11 @@ pub(super) fn explicit_item_bounds( | |||
None => {} | |||
} | |||
|
|||
// effects desugared associated types have no bounds. |
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.
Could feed this query.
Also: don't we need a where Self: Sized
bound to avoid breaking all dyn Trait
for now?
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.
assoc types don't break object safety (we'd just need to make it default to Runtime
)
what breaks object safety would probably be the const host: bool
that we now insert onto each method.
☔ The latest upstream changes (presumably #120392) made this pull request unmergeable. Please resolve the merge conflicts. |
0781e50
to
02e547e
Compare
This comment has been minimized.
This comment has been minimized.
e6fa893
to
532300c
Compare
This comment has been minimized.
This comment has been minimized.
☔ The latest upstream changes (presumably #120991) made this pull request unmergeable. Please resolve the merge conflicts. |
532300c
to
d42b128
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This PR changes @bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
@bors try |
…ring, r=<try> [WIP] experiment with a new way of effects desugaring cc `@rust-lang/project-const-traits.` Will write down notes once I have finished. * [ ] See if we want `T: Tr` to desugar into `T: Tr, T::Effects: Compat<true>` * [ ] Fix ICEs on `type Assoc: ~const Tr` and `type Assoc<T: ~const Tr>` * [ ] add types and traits to minicore test * [ ] update rustc-dev-guide
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
💔 Test failed - checks-actions |
@bors try @rust-timer queue |
Finished benchmarking commit (ba1d7f4): comparison URL. Overall result: ❌ regressions - 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 (primary -0.1%, secondary 3.4%)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 -8.2%)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.1%, secondary 0.4%)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: 697.982s -> 695.844s (-0.31%) |
Make `has_attr` check behind effects feature attempt to fix the performance regression in rust-lang#120639. cc rust-lang#110395 r? project-const-traits
Opened #127144 as an attempt to fix the performance regression |
…olver, r=compiler-errors Make `feature(effects)` require `-Znext-solver` Per rust-lang#120639 (review) I made this a hard error because otherwise it should be a lint and that seemed more complicated. Not sure if this is the best place to put the error though. r? project-const-traits
…ait, r=<try> Add `constness` to `TraitDef` Second attempt at fixing the regression @ rust-lang#120639 (comment) r? project-const-traits
…ait, r=<try> Add `constness` to `TraitDef` Second attempt at fixing the regression @ rust-lang#120639 (comment) r? project-const-traits
Visiting for weekly rustc perf triage.
|
…ait, r=compiler-errors Add `constness` to `TraitDef` Second attempt at fixing the regression @ rust-lang#120639 (comment) r? project-const-traits
…ring, r=oli-obk Implement new effects desugaring cc `@rust-lang/project-const-traits.` Will write down notes once I have finished. * [x] See if we want `T: Tr` to desugar into `T: Tr, T::Effects: Compat<true>` * [x] Fix ICEs on `type Assoc: ~const Tr` and `type Assoc<T: ~const Tr>` * [ ] add types and traits to minicore test * [ ] update rustc-dev-guide Fixes rust-lang#119717 Fixes rust-lang#123664 Fixes rust-lang#124857 Fixes rust-lang#126148
…compiler-errors Make `feature(effects)` require `-Znext-solver` Per rust-lang/rust#120639 (review) I made this a hard error because otherwise it should be a lint and that seemed more complicated. Not sure if this is the best place to put the error though. r? project-const-traits
…mpiler-errors Add `constness` to `TraitDef` Second attempt at fixing the regression @ rust-lang/rust#120639 (comment) r? project-const-traits
…mpiler-errors Add `constness` to `TraitDef` Second attempt at fixing the regression @ rust-lang/rust#120639 (comment) r? project-const-traits
5e4edba Rollup merge of rust-lang#127789 - Sword-Destiny:master, r=petrochenkov 686f75b Rollup merge of rust-lang#127047 - tspiteri:f128-aconsts-lsd, r=tgross35 8b1d874 deny unsafe_op_in_unsafe_fn for teeos f8bb325 clean unsafe op in unsafe fn b597017 clean unsafe op in unsafe fn 9fd9c61 clean unsafe op in unsafe fn e0c57e4 delete #![allow(unsafe_op_in_unsafe_fn)] a778c83 Auto merge of rust-lang#127777 - matthiaskrgr:rollup-qp2vkan, r=matthiaskrgr 6535591 Rollup merge of rust-lang#124921 - RalfJung:offset-from-same-addr, r=oli-obk ac443f2 Auto merge of rust-lang#127020 - tgross35:f16-f128-classify, r=workingjubilee eae9451 Rollup merge of rust-lang#127750 - ChrisDenton:safe-unsafe-unsafe, r=workingjubilee 6257980 Rollup merge of rust-lang#127744 - workingjubilee:deny-unsafe-op-in-std, r=jhpratt 05614f3 Rollup merge of rust-lang#127712 - ChrisDenton:raw-types, r=workingjubilee 14c24b1 Mark some `f16` and `f128` functions unstably const 1b70afd Move safety comment outside unsafe block 3c286d5 Make os/windows default to deny unsafe in unsafe d96ed86 Make pal/windows default to deny unsafe in unsafe bb3f60f Fix Windows 7 9fc6710 Auto merge of rust-lang#127719 - devnexen:math_log_fix_solill, r=Amanieu decdb06 Don't re-export `c_int` from `c` a1a1c6a Remove DWORD 7d18991 Remove ULONG d89bce6 Remove PSRWLOCK d3205de Remove LPVOID 68ac381 Remove LPSECURITY_ATTRIBUTES 6d037b8 Remove LPOVERLAPPED 61f617d Remove LPCVOID 8a25371 Remove SIZE_T cd51de1 Remove CHAR 00a5b3b Remove USHORT d621d21 Remove LPWSTR 0b22ecb Remove UINT 18adcef Remove LONG 4eaaf7d Remove LARGE_INTEGER aa45985 Remove NonZeroDWORD d7aa7cf Auto merge of rust-lang#127732 - GrigorenkoPV:teeos-safe-sys-init, r=Amanieu 5ff7b40 std: Unsafe-wrap std::sync e8fa3ef std: Unsafe-wrap in Wtf8 impl 8c3a9c1 std: Unsafe-wrap std::io 91b7331 std: Directly call unsafe {un,}setenv in env 8c75111 std: Unsafe-wrap OSStr{,ing}::from_encoded_bytes_unchecked 4679f9a std: Unsafe-wrap HashMap::get_many_unchecked_mut ac0fd27 std: deny(unsafe_op_in_unsafe_fn) but allow sites f710e38 Add `classify` and related methods for `f16` and `f128` 009660d std: removes logarithms family function edge cases handling for solaris. 3492a6b Auto merge of rust-lang#127728 - matthiaskrgr:rollup-ercdbjd, r=matthiaskrgr 0873299 sys::init is not unsafe on teeos 6c4029a Rollup merge of rust-lang#127592 - tesuji:patch-1, r=Mark-Simulacrum 7cd8086 Auto merge of rust-lang#125935 - madsmtm:merge-os-apple, r=workingjubilee cfb0556 Merge Apple `std::os` extensions modules into `std::os::darwin` 54435f7 Rollup merge of rust-lang#127704 - workingjubilee:fixup-better-than, r=ChrisDenton e122949 Auto merge of rust-lang#127706 - workingjubilee:rollup-d07ij30, r=workingjubilee 3033120 Rollup merge of rust-lang#127659 - saethlin:manually-drop-bufwriter, r=joboet e9eb7de Rollup merge of rust-lang#127446 - zachs18:miri-stdlib-leaks-core-alloc, r=Mark-Simulacrum 3ad2560 Rollup merge of rust-lang#127370 - ChrisDenton:win-sys, r=Mark-Simulacrum 05bf6bc doc: Suggest `str::repeat` over `iter::repeat().take().collect()` 96e8ba7 Fix minor typos in std::process doc on Win argv 6b67c66 Auto merge of rust-lang#126958 - dtolnay:u32char, r=Mark-Simulacrum 591aaaf std::unix::fs: removing, now useless, layers predating macOs 10.10. 94ec6e7 Auto merge of rust-lang#127674 - jhpratt:rollup-0dxy3k7, r=jhpratt a7c1f60 Rollup merge of rust-lang#127668 - spencer3035:improve-slice-doc, r=jhpratt 1e49e05 Rollup merge of rust-lang#127661 - eduardosm:stabilize-io_slice_advance, r=cuviper c79e003 Auto merge of rust-lang#127397 - jyn514:multi-thread-panic-hook, r=workingjubilee 206678c Auto merge of rust-lang#126606 - zachs18:patch-2, r=joboet 1bb0350 Updated slice documentation c8b79dd Use ManuallyDrop in BufWriter::into_parts 6e26e27 Stabilize io_slice_advance cac6664 Rename the internal `const_strlen` to just `strlen` 39647ab fix interleaved panic output 0476fc4 Rollup merge of rust-lang#127433 - dtolnay:conststrlen, r=workingjubilee f66bd5f Rollup merge of rust-lang#126827 - the8472:pidfd-spawn, r=workingjubilee 1e5cd21 Rollup merge of rust-lang#124980 - zachs18:rc-allocator, r=Amanieu 949f0d6 Add instability attribute on private const_strlen function 20bfac6 Rollup merge of rust-lang#127422 - greaka:master, r=workingjubilee f937ef1 Rollup merge of rust-lang#127599 - tgross35:lazy_cell_consume-rename, r=workingjubilee fde7fd2 Rollup merge of rust-lang#127588 - uweigand:s390x-f16-doctests, r=tgross35 ed47f98 Rollup merge of rust-lang#127572 - tbu-:pr_debug_event_nonpacked, r=jhpratt e5c8b85 Rollup merge of rust-lang#124599 - estebank:issue-41708, r=wesleywiser b71b538 Rename `lazy_cell_consume` to `lazy_cell_into_inner` 9efc1cb core: Limit remaining f16 doctests to x86_64 linux a18fbd0 Rollup merge of rust-lang#127554 - ferrocene:tshepang-add-missing-attribute, r=pietroalbini e419147 Don't mark `DEBUG_EVENT` struct as `repr(packed)` 4552576 Auto merge of rust-lang#126690 - andyolivares:feature/show_window, r=dtolnay 6f6e343 Rollup merge of rust-lang#127091 - Sky9x:fused-error-sources-iter, r=dtolnay 0d64105 Fixed doc links 4fb7b22 Few changes to doc comments. Added tracking issue number. fe62f6f Exposing STARTUPINFOW.wShowWindow in CommandExt (show_window function) to control how a new process should display its window (normal, minimized, maximized, etc) 7d20047 do not run test where it cannot run c5f1c76 Auto merge of rust-lang#127235 - martn3:no-mips-f16, r=tgross35,scottmcm 3fefa04 Rollup merge of rust-lang#127460 - Borgerr:clarify-drop-comment, r=jhpratt 895175a Rollup merge of rust-lang#127355 - aceArt-GmbH:126475, r=oli-obk 57cea32 Rollup merge of rust-lang#120248 - WaffleLapkin:bonk-ptr-object-casts, r=compiler-errors,oli-obk,lnicola e74955e Attempt to fix CI e466bf5 Rollup merge of rust-lang#127367 - ChrisDenton:run-sync, r=Nilstrieb 90504f8 Rollup merge of rust-lang#126921 - workingjubilee:outline-va-list, r=Nilstrieb c6b3f3d Auto merge of rust-lang#127454 - matthiaskrgr:rollup-k3vfen2, r=matthiaskrgr 29d7923 Move/change declaration of `mod exit_guard;` ecc9025 clarify `sys::unix::fd::FileDesc::drop` comment (rust-lang#66876) 35c5a45 Rollup merge of rust-lang#127447 - RalfJung:once_lock_miri, r=joboet 9f7100d Rollup merge of rust-lang#127354 - nicholasbishop:bishop-sized-doc, r=Nilstrieb ee06e7d Rollup merge of rust-lang#127297 - the8472:path-new-hash, r=Nilstrieb 2206c6b Rollup merge of rust-lang#127189 - GrigorenkoPV:linkedlist-cursor-list, r=Nilstrieb 41bcc36 Rollup merge of rust-lang#127179 - tgross35:typeid-debug-hex, r=Nilstrieb 7177ac8 once_lock: make test not take as long in Miri 294d87f Remove non-focused memory leak in `std` doctest for Miri. a86fd0f Specialize `TrustedLen` for `Iterator::unzip()` 5515bba Mitigate focused memory leaks in `core` doctests for Miri. 3a0fe26 Remove non-focused memory leaks in `core` doctests for Miri. 20d6cb3 Mitigate focused memory leaks in `alloc` doctests for Miri. cac8902 Remove non-focused memory leaks in `alloc` doctests for Miri. bcdc8e8 Stabilize const_cstr_from_ptr (CStr::from_ptr, CStr::count_bytes) a48f566 offset_from intrinsic: always allow pointers to point to the same address 9919a83 Mark format! with must_use hint 0907955 as_simd: fix comment to be in line with 507583a (rust-lang#121201) 5569ece Rollup merge of rust-lang#127275 - RalfJung:offset-from-isize-min, r=Amanieu 2337ab5 Rollup merge of rust-lang#125751 - pitaj:new_range_api, r=jhpratt ad4fde6 Rollup merge of rust-lang#127363 - GuillaumeGomez:improve-fmt-code-readability, r=Amanieu 3eeca5f Rollup merge of rust-lang#127107 - mu001999-contrib:dead/enhance-2, r=pnkfelix 1b5e5ac Rollup merge of rust-lang#123600 - tisonkun:path_with_extension, r=dtolnay 5e9d445 Attempt to fix CI d8965d3 add `new_range_api` for RFC 3550 ca0f659 Move exit guard from sys::common::exit_guard to sys::exit_guard. cf300a7 Update library/std/src/sys/pal/common/exit_guard.rs ba4c71a add unit tests for extra extension feature 55fc20b update comments 6b7a259 Add experimental raw-dylib feature to std c452e62 Use windows_targets macro for alloc 521c81a Run alloc sync tests 2fcdebb Improve readability of some fmt code examples 625bcc4 Rollup merge of rust-lang#127320 - ChrisDenton:win-sys, r=Mark-Simulacrum f8caf5f Rollup merge of rust-lang#127214 - bjorn3:miri_native_unwind, r=oli-obk 1862054 Describe Sized requirements for mem::offset_of e26c881 impl FusedIterator and a size hint for the error sources iter 8f1c664 core: erase redundant stability attrs in va_list 60c33a5 library: outline VaList into ffi::va_list 03d11c2 Auto merge of rust-lang#126171 - RalfJung:simd_bitmask_multibyte, r=workingjubilee 297850a Add more checks for pointers with vtable meta f58a3d6 Improve dead code analysis 515bd30 Add comments to windows_targets.rs 89d2de0 Update windows-bindgen to 0.58.0 0860a04 also remove redundant requirements from offset() 6f80604 offset_from: "the difference must fit in an isize" is a corollary de4f5c2 Rollup merge of rust-lang#127303 - cuishuang:master, r=jhpratt 56c73c3 Rollup merge of rust-lang#127195 - biabbas:vxworks_cleanup, r=jhpratt 5dfdef7 Rollup merge of rust-lang#126792 - wooden-worm:master, r=Mark-Simulacrum 4df2059 chore: remove repeat words acbefbb impl PathBuf::add_extension and Path::with_added_extension 13d5a42 Auto merge of rust-lang#127226 - mat-1:optimize-siphash-round, r=nnethercote ed3d487 stir the hash state a little to avoid prefix collisions 5ca124f Add more test cases for path comparisons 33bc557 Add test case demonstrating equality of paths "foo/bar" and "foobar" 079f999 Move unique_thread_exit call to lang_start_internal so it is not in a generic function, and wrap it in `catch_unwind` 47d0cbc Remove Miri special-case 596be7e Use pthread_t instead of numeric thread id 2e90f6f Use libc::pause instead of std::thread::park in wait-for-exit loop 1fd23e8 core: Limit four f16 doctests to x86_64 linux e6f15c5 std: Set has_reliable_f16 to false for MIPS targets in build.rs 67535b6 library/std/build.rs: "powerpc64le" is not a target_arch 5b0d82f Rollup merge of rust-lang#127204 - dimpolo:stabilize_atomic_bool_fetch_not, r=jhpratt b184a84 Rollup merge of rust-lang#123588 - tgross35:stabilize-assert_unchecked, r=dtolnay 2a81053 Fall back on remove dir implementation for vxworks a8b6d0a Rollup merge of rust-lang#127230 - hattizai:patch01, r=saethlin 4d7cbb2 chore: remove duplicate words 645e9f2 Optimize SipHash by reordering compress instructions c5ab1f0 Rollup merge of rust-lang#127128 - elomatreb:elomatreb/stabilize-duration_abs_diff, r=joboet f090672 Rollup merge of rust-lang#126732 - StackOverflowExcept1on:master, r=m-ou-se 1dc4f05 Use the native unwind function in miri where possible 4fff335 Avoid MIR bloat in inlining 4385efd Stabilize atomic_bool_fetch_not 6c3359c Rollup merge of rust-lang#127182 - danielhuang:patch-4, r=Nilstrieb a0a438a Remove unqualified import io:: Error for vxworks as all Error references are qualified in process_vxworks.rs 2a65e9f Auto merge of rust-lang#127026 - Urgau:cleanup-bootstrap-check-cfg, r=Kobzol bba2200 LinkedList's Cursor: method to get a ref to the cursor's list 40a9be9 Update ip_addr.rs 986dbd1 Print `TypeId` as hex for debugging f27723e Rollup merge of rust-lang#127069 - Sky9x:fmt-pointer-use-addr, r=Nilstrieb b068fce Rollup merge of rust-lang#126895 - betelgeuse:improve_simd_gather_documentation, r=Amanieu a6b22e9 Rollup merge of rust-lang#127134 - tgross35:typeid-debug, r=Nilstrieb 7f0bb45 Rollup merge of rust-lang#126906 - GrigorenkoPV:fixme-split_at_first, r=Mark-Simulacrum b0feb54 Rollup merge of rust-lang#126705 - safinaskar:panic, r=Mark-Simulacrum b8977f5 Auto merge of rust-lang#127133 - matthiaskrgr:rollup-jxkp3yf, r=matthiaskrgr affa2f9 Print `TypeId` as a `u128` for `Debug` 05a472c Rollup merge of rust-lang#127122 - TDecking:div_ceil, r=Nilstrieb 9b3a511 Auto merge of rust-lang#120639 - fee1-dead-contrib:new-effects-desugaring, r=oli-obk f96a321 Stabilize `duration_abs_diff` bf9096f small correction to fmt::Pointer impl 171f5db Auto merge of rust-lang#127121 - GuillaumeGomez:rollup-xjjjckn, r=GuillaumeGomez 50a6646 Remove uneccessary condition in `div_ceil` 7914389 Updated docs on `#[panic_handler]` in `library/core/src/lib.rs` 1858bdc Rollup merge of rust-lang#127073 - Sky9x:unnecessary-seqcst, r=Nilstrieb aaed209 Rollup merge of rust-lang#127072 - Sky9x:docs-includes-vs-does-include, r=scottmcm e5a577d Auto merge of rust-lang#127119 - RalfJung:miri-sync, r=RalfJung 77a5b51 Rollup merge of rust-lang#126953 - joboet:lazy_key, r=jhpratt 8641f6a Merge from rustc 402992c Rollup merge of rust-lang#127071 - Sky9x:remove-ptr-to-from-bits, r=scottmcm 0a2d8e4 Rollup merge of rust-lang#127070 - Sky9x:unit-const-param-ty, r=BoxyUwU 663f3d5 Rollup merge of rust-lang#127055 - shepmaster:hash-finish-must-use, r=dtolnay 729a10a address review comments db228b8 general fixups and turn `TODO`s into `FIXME`s 47492c9 Implement `Min` trait in new solver cc4a029 implement new effects desugaring d6fadf5 std: add safety comments 8c3c7dc Rollup merge of rust-lang#126970 - DaniPopes:simplify-str-clone_into, r=cuviper ae98528 Rollup merge of rust-lang#126956 - joboet:fmt_no_extern_ty, r=RalfJung 652f0b8 Merge from rustc 48dc678 Remove unnecessary SeqCst in `impl fmt::Pointer for AtomicPtr` e6e5e84 docs: say "includes" instead of "does include" a722d39 Remove (deprecated & unstable) {to,from}_bits pointer methods 2ed9c9f add () to the marker_impls macro for ConstParamTy fdfe014 Mark `Hasher::finish` as #[must_use] 2bd2069 fix least significant digits of f128 associated constants 8db57c2 core: improve comment 1f8c8f4 Cleanup bootstrap check-cfg 6c38c60 Rollup merge of rust-lang#126980 - Borgerr:fix-extendfromslice-check, r=workingjubilee a2dc9b5 Rollup merge of rust-lang#126929 - nnethercote:rm-__rust_force_expr, r=oli-obk cf231e8 Merge from rustc a8b311e Auto merge of rust-lang#126608 - tgross35:f16-f128-library, r=Mark-Simulacrum 4788a93 std: test a variety of ways to extend a Wtf8Buf 57c2de8 set self.is_known_utf8 to false in extend_from_slice c14a130 Rollup merge of rust-lang#126879 - the8472:next-chunk-filter-drop, r=cuviper f6fdef3 core: avoid `extern` types in formatting infrastructure 43a865a fix UI test, simplify error message ff33a66 regression test for leaks in the the Filter::next_chunk implementation f90972a add comments explaining optimizations for Filter::next_chunk 4039a7f fix Drop items getting leaked in Filter::next_chunk 0351c53 Simplify `str::clone_into` 5aedb8a Rollup merge of rust-lang#126946 - cyrgani:patch-1, r=compiler-errors 5664da3 Rollup merge of rust-lang#126927 - workingjubilee:vaargsafe-is-unsafe, r=joboet 9273373 Rollup merge of rust-lang#126885 - Borgerr:rm_internal_pathbuf_asmutvec, r=workingjubilee 46074aa Rollup merge of rust-lang#126302 - mu001999-contrib:ignore/default, r=michaelwoerister 0fe5362 Stabilize const unchecked conversion from u32 to char 9dcaa15 std: separate TLS key creation from TLS access 5d08a54 Detect unused structs which derived Default e6c45e4 `PathBuf::as_mut_vec` removed and verified for UEFI and Windows platforms rust-lang#126333 7cec6ef remove references to `PathBuf::as_mut_vec` in `PathBuf::_set_extension` 37f78f4 inner truncate methods for UEFI platforms cfb8021 rust-lang#126333 remove `PathBuf::as_mut_vec` reference at top of `PathBuf::_push` 3edb521 simd_bitmask intrinsic: add a non-power-of-2 multi-byte example 2ddf794 Add missing slash in const_eval_select doc comment 19cfdb2 Add tests for `f16` and `f128` 561daff Add more `f16` and `f128` library functions and constants 6cb3d34 Add doctests to existing `f16` and `f128` functions b0e0503 Add build.rs config for reliable `f16` and `f128` 028026b Remove `__rust_force_expr`. 1069a68 core: VaArgSafe is an unsafe trait a451b2a Auto merge of rust-lang#126852 - scottmcm:more-checked-math-tweaks, r=Amanieu 17d03b9 Check that we get somewhat sane PIDs when spawning with pidfds 4c9a96e more fine-grained feature-detection for pidfd spawning bf06e43 document safety properties of the internal Process::new constructor 9212236 use pidfd_spawn for faster process creation when pidfds are requested 4815f29 document the cvt methods 1bd207e Rollup merge of rust-lang#126904 - GrigorenkoPV:nonzero-fixme, r=joboet 2676918 Rollup merge of rust-lang#125575 - dingxiangfei2009:derive-smart-ptr, r=davidtwco 9dcffa5 Rollup merge of rust-lang#125082 - kpreid:const-uninit, r=dtolnay cf34f71 Replace `MaybeUninit::uninit_array()` with array repeat expression. e51d8a2 Auto merge of rust-lang#126523 - joboet:the_great_big_tls_refactor, r=Mark-Simulacrum 2b8c7a3 Small fixme in core now that split_first has no codegen issues 532304b Small fixme in core now that NonZero is generic 5ae0378 std: fix wasm builds ae08c58 Rollup merge of rust-lang#126213 - zachs18:atomicbool-u8-i8-from-ptr-alignment, r=Nilstrieb 071e80d Fix simd_gather documentation 0c4a661 wasm64 build with target-feature=+simd128,+atomics 36a20f7 Reword docs for `f32` and `f64` 6839ec5 Extract repeated constants from `f32` and `f64` source c26bd79 Rollup merge of rust-lang#126854 - devnexen:std_unix_os_fallback_upd, r=Mark-Simulacrum 828e528 Rollup merge of rust-lang#126807 - devnexen:copy_file_macos_simpl, r=Mark-Simulacrum e4bc79d Also get `add nuw` from `uN::checked_add` 7c83a04 SmartPointer derive-macro f0b95fc fix build 12ec5b7 Rollup merge of rust-lang#126783 - tguichaoua:fix_tcplistener_into_incoming_issue_number, r=workingjubilee eb265d0 std::unix::os::home_dir: fallback's optimisation. a48f3d6 Auto merge of rust-lang#126838 - matthiaskrgr:rollup-qkop22o, r=matthiaskrgr ec8af4b Rollup merge of rust-lang#126552 - fee1-dead-contrib:rmfx, r=compiler-errors 6d6ba92 Rollup merge of rust-lang#126140 - eduardosm:stabilize-fs_try_exists, r=Amanieu e1edea8 Auto merge of rust-lang#116113 - kpreid:arcmut, r=dtolnay 49d4fdb Generalize `{Rc,Arc}::make_mut()` to unsized types. 5ac719e Replace `WriteCloneIntoRaw` with `CloneToUninit`. a4ca461 Add `core::clone::CloneToUninit`. 7836843 Auto merge of rust-lang#126750 - scottmcm:less-unlikely, r=jhpratt 934e728 Auto merge of rust-lang#124101 - the8472:pidfd-methods, r=cuviper c2ec99b to extract a pidfd we must consume the child f7cf777 Add PidFd::{kill, wait, try_wait} d688595 std::unix::fs: copy simplification for apple. bb602cf Auto merge of rust-lang#125853 - tesuji:promote-fail-fast, r=cjgillot 1f17936 update intrinsic const param counting 5e7ce0b Remove `feature(effects)` from the standard library 8902c17 Auto merge of rust-lang#126781 - matthiaskrgr:rollup-5u4pens, r=matthiaskrgr 54eaed7 fix issue number 2e01ae3 Rollup merge of rust-lang#126613 - tgross35:log-test-update, r=cuviper 306d7bf Stop using `unlikely` in `strict_*` methods a8ab1ce [GVN] Add tests for generic pointees with PtrMetadata a272844 Don't perform mitigation for thread-unsafe libc::exit under Miri. 5035a17 fix rustdoc URL 1530977 On `target_os = "linux"`, ensure that only one Rust thread calls `libc::exit` or returns from `main`. 7e940ba Auto merge of rust-lang#126578 - scottmcm:inlining-bonuses-too, r=davidtwco 9a945fd Auto merge of rust-lang#124032 - Voultapher:a-new-sort, r=thomcc dbaf524 Rollup merge of rust-lang#126737 - fee1-dead-contrib:rm-const-closures, r=compiler-errors 0f6922d Fix wrong big O star bracing in the doc comments 7bf7f57 Remove `feature(const_closures)` from libcore b4e2e4a Auto merge of rust-lang#126736 - matthiaskrgr:rollup-rb20oe3, r=matthiaskrgr 0829ab8 Rollup merge of rust-lang#126717 - nnethercote:rustfmt-use-pre-cleanups, r=jieyouxu f1c9c80 Rollup merge of rust-lang#126711 - GKFX:const-option-as-slice, r=oli-obk e057232 Auto merge of rust-lang#116088 - nbdd0121:unwind, r=Amanieu,RalfJung 13ea648 Stabilize `PanicInfo::message()` and `PanicMessage` b6a3858 Rollup merge of rust-lang#126703 - the8472:on-blackbox-crypto-use, r=scottmcm 847726d Shrink some slice iterator MIR 1ba2fa4 Stabilize `hint_assert_unchecked` 9d0041c Update documentation for `hint::assert_unchecked` e3e84a7 Add blank lines after module-level `//` comments. 36ad0db Add blank lines after module-level `//!` comments. 4e67110 Convert some module-level `//` and `///` comments to `//!`. 669d6fc Make Option::as_[mut_]slice const 4ae781c reword the hint::blackbox non-guarantees dd7c901 core: add tracking issue for `array::repeat` 5ddeaca core: simplify implementation of `array::repeat`, address other nits 62f7a4e core: implement `UncheckedIterator` for `RepeatN` 387fd1f core: implement `array::repeat` 3fc18d0 Add a hack to prevent proc_macro misopt in CI a95938d Stabilise c_unwind 2a5e5b8 Rollup merge of rust-lang#125787 - Oneirical:infinite-test-a-novel, r=jieyouxu 227994d try implementing suggestions 78867ab run_make_support nm implementation + bin-emit-no-symbols rmake rewrite 76e61bf Replace `move||` with `move ||` in `compiler/` and `library/` 13a31b6 Auto merge of rust-lang#126330 - m-ou-se:panic-message-type, r=Amanieu 42802a3 Print the tested value in int_log tests ea1ab74 Add missing CopyMarker impl 384c205 Revert panic_safe test changes ca458ba Add PanicMessage type for PanicInfo::message(). 2238945 Add tracking issue to async_drop API 0b3227b std: rename module for clarity 2b9a4f3 std: update TLS module documentation 00d4964 std: use the `c_int` from `core::ffi` instead of `libc` bd3b9ec std: simplify `#[cfg]`s for TLS 78eaad5 Fix unintended regression for Freeze + Copy types 8cd20cb Auto merge of rust-lang#126569 - jieyouxu:rollup-1uvkb2y, r=jieyouxu c1acd7a Rollup merge of rust-lang#126531 - slanterns:error_provider, r=workingjubilee cd1c998 Rollup merge of rust-lang#126468 - RalfJung:euclid, r=Mark-Simulacrum 2730879 Rollup merge of rust-lang#126346 - hermit-os:fd, r=Amanieu ebbce69 Rollup merge of rust-lang#126288 - x4exr:patch-1, r=dtolnay 4aa43c7 Auto merge of rust-lang#125720 - folkertdev:optimize_for_size-ptr-rotate, r=Amanieu 7912329 doc: Added commas where needed 48e1578 Fix doc-link issue 489dfce Remove reliance on const_trait in sort implementations 89b5784 std: move `sys_common::backtrace` to `sys` 90dbe22 use rustc-dep-of-std in panic_unwind 6832ad3 Rollup merge of rust-lang#126539 - lukaslueg:patch-1, r=jhpratt 04e46c2 Rollup merge of rust-lang#125112 - tbu-:pr_create_dir_all_empty, r=dtolnay e77b474 Update `Arc::try_unwrap()` docs 83c530f Apply review comments ae7f43e Auto merge of rust-lang#126299 - scottmcm:tune-sliceindex-ubchecks, r=saethlin 339f266 Redo SliceIndex implementations 2388743 update comment 4cc1c37 Rollup merge of rust-lang#126229 - ChrisDenton:bindgen, r=Mark-Simulacrum b40c54b std: refactor the TLS implementation 7e3c4f8 Auto merge of rust-lang#126518 - matthiaskrgr:rollup-wb70rzq, r=matthiaskrgr 2678593 std: suggest OnceLock over Once b509ed2 Polish `std::path::absolute` documentation. c3c1757 Auto merge of rust-lang#126473 - matthiaskrgr:rollup-8w2xm09, r=matthiaskrgr a135342 Rollup merge of rust-lang#126285 - kpreid:unique-rc, r=dtolnay 7fafb6d Rollup merge of rust-lang#126266 - tbu-:pr_doc_alloc_default_system, r=jhpratt afee9f5 Rollup merge of rust-lang#126135 - hermit-os:fuse, r=jhpratt 4a32b4b Rollup merge of rust-lang#123769 - dtolnay:literal, r=fee1-dead 3909d51 div_euclid, rem_euclid: clarify/extend documentation ca52a2c Rollup merge of rust-lang#126351 - devnexen:to_sol11_upd, r=ChrisDenton 369fa55 Rollup merge of rust-lang#126402 - firefighterduck:fix-unsafe-precon-copy, r=Nilstrieb 2acb995 Rollup merge of rust-lang#126390 - Kriskras99:master, r=Nilstrieb b3c1dcb Rollup merge of rust-lang#126360 - compiler-errors:uplift-structural-traits, r=lcnr bdb9aa2 Rollup merge of rust-lang#123726 - jieyouxu:command-new-docs, r=Nilstrieb 307d1af Remove superfluous escaping from byte, byte str, and c str literals 78d94ee LangItem-ify Coroutine trait in solvers 891f00c fix wrong assert_unsafe_precondition message for core::ptr::copy 9adf702 Rollup merge of rust-lang#126384 - RalfJung:is_none_or, r=workingjubilee 02cb1e9 Rollup merge of rust-lang#126347 - slanterns:try_simplify, r=scottmcm fa2a54a Fix wording in {checked_}next_power_of_two 3ef894f add tracking issue for is_none_or a5fe19d std::unix::fs::link using direct linkat call for Solaris and macOs. 9921cd2 Rollup merge of rust-lang#126328 - RalfJung:is_none_or, r=workingjubilee 93583a6 Simplify `try_*` on `Iterator` 47090b1 export std::os::fd module on HermitOS 17c90d8 Auto merge of rust-lang#126273 - pietroalbini:pa-bootstrap-update, r=Mark-Simulacrum b482e06 add is_none_or 027c82e Rollup merge of rust-lang#126322 - m-ou-se:panicinfo-and-panicinfo-2, r=RalfJung db03ec6 Rollup merge of rust-lang#126242 - yaahc:simplify-provider, r=jhpratt 956efde Rollup merge of rust-lang#126039 - dpaoliello:arm64ecbuild, r=davidtwco 3acb41f Fix deprecated version. bc5e618 Update doc comment on PanicInfo::message(). 249d63e Use payload_as_str instead of two downcasts. 15677e9 Fix deprecation version. a239d5b Clarify doc comment. 209f8c8 Auto merge of rust-lang#126319 - workingjubilee:rollup-lendnud, r=workingjubilee 6ec98e7 Rollup merge of rust-lang#126305 - workingjubilee:fix-os-string-to-string-utf8-invariant, r=joboet 80467da Rollup merge of rust-lang#126287 - nnethercote:reformat-cranelift-patch, r=bjorn3 5760a4e Rollup merge of rust-lang#126281 - ChrisDenton:env, r=jhpratt 439c2ae Rollup merge of rust-lang#126249 - workingjubilee:simplify-try-map-signature, r=scottmcm 23e3dbf Rollup merge of rust-lang#126210 - lolbinarycat:ptr_doctest_assert, r=workingjubilee d469394 Rollup merge of rust-lang#123374 - mgeier:doc-slice-from-raw-parts, r=scottmcm 63fe960 Require any function with a tait in its signature to actually constrain a hidden type e1d73c2 Revert "Rollup merge of rust-lang#125362 - joboet:tait_hack, r=Nilstrieb" 382ed52 Make PathBuf less Ok with adding UTF-16 then `into_string` 548e7a4 Update a cranelift patch file for formatting changes. 8ccbe9e `UniqueRc`: support allocators and `T: ?Sized`. b3dcee6 set_env: State the conclusion upfront f56c023 Rename `std::fs::try_exists` to `std::fs::exists` and stabilize fs_try_exists c16d8b1 Unify guarantees about the default allocator d8fe589 remove cfg(bootstrap) a2ff49b replace version placeholder f72e4a9 Formatting. 0503ca7 Bump deprecation of std's PanicInfo alias to 1.82.0. fea6b03 Add PanicHookInfo::payload_as_str(). 0c8a9e0 Fix display of panic message in recursive panic. 2f85702 Mention core's PanicInfo in error.md. ad0667f Add note on panic payload type. 518722e Downcast panic payload to String too in example. c4dea81 Move deprecation of std::panic::PanicInfo to 1.80.0. 143e4c4 Fix deprecation version. c6749ae Rename std::panic::PanicInfo to PanicHookInfo. db2e055 Formatting. 51f20ac Fix invalid markdown/html. d4b7304 Reorder body of begin_panic for consistency. 373fb60 Impl Display for PanicPayload to simplify things. 224d45c Use unnamed lifetimes for [..]Payload impl blocks. cf984e0 Move downcasting panic payload to str to a function. a18eeac Mark some PanicInfo methods as #[inline] for consistency. 47f359b Remove std::panic::PanicInfo::internal_constructor+set_payload. 701d6a2 Remove core::panic::PanicInfo::internal_constructor. cca865d Update doc comment about core::panicking. 221a90c Fix doc link. d6658a5 Add core::panic::PanicInfo::payload() for compatibility. ca0bfeb Document difference between core and std's PanicInfo. 702405e Split core's PanicInfo and std's PanicInfo. 483f641 Simplify `[T; N]::try_map` signature 8b6f468 Simplify provider api to improve llvm ir c8170e6 Rollup merge of rust-lang#126212 - SteveLauC:fix/haiku, r=joboet 58bb5cf Rollup merge of rust-lang#126191 - ivan-shrimp:nonzero_doc, r=scottmcm d2f8ddf Bump windows-bindgen to 0.57 02bf152 Clarify `Command::new` behavior if passed programs with arguments e17d6b9 Remove some unused crate dependencies. 5840184 Update docs for AtomicU8/I8. 8791549 fix: build on haiku 263861f Update safety docs for AtomicBool::from_ptr. e25ae61 docs(core): make more const_ptr doctests assert instead of printing cf9de23 Auto merge of rust-lang#126205 - jieyouxu:rollup-s64z5ng, r=jieyouxu c5da756 Rollup merge of rust-lang#126194 - ChrisDenton:winerror, r=Mark-Simulacrum c4bd74c Rollup merge of rust-lang#125253 - sunsided:feature/FRAC_1_SQRT_PI, r=Mark-Simulacrum c9c5d8f Auto merge of rust-lang#126193 - RalfJung:miri-sync, r=RalfJung e39299d Migrate more things to WinError 0df0a38 fix `NonZero` doctest inconsistencies 818933d Rollup merge of rust-lang#126168 - devnexen:current_exe_haiku_simpl, r=ChrisDenton a9bd569 Rollup merge of rust-lang#126146 - devnexen:signal_fbsd, r=ChrisDenton 05812a0 Merge from rustc 56bdaf3 std::unix::os current_exe implementation simplification for haiku. e6c378f Auto merge of rust-lang#125966 - schvv31n:impl_os_string_pathbuf_leak, r=workingjubilee e000ecb std::unix::process adding few specific freebsd signals to be able to id. 67454f5 Rollup merge of rust-lang#126138 - wbk:patch-1, r=lqd ca932c8 Rollup merge of rust-lang#125998 - devnexen:get_mode_illumos, r=Nilstrieb 397e9cb Rollup merge of rust-lang#125951 - slanterns:error_in_core_stabilization, r=Amanieu 4655eca Fix typo in docs for std::pin bb2e2d9 add HermitOS support of vectored read/write operations dd7ccb7 Rollup merge of rust-lang#126089 - wutchzone:option_take_if, r=scottmcm 199da77 Rollup merge of rust-lang#126030 - ChrisDenton:update-wingen-readme, r=Mark-Simulacrum 8a4b11a Rollup merge of rust-lang#124012 - slanterns:as_slice_stabilize, r=BurntSushi 05a92c2 Auto merge of rust-lang#126110 - workingjubilee:backtrace-0.3.73, r=workingjubilee cd73cbe Update backtrace to 0.3.73 c6e53ce Merge from rustc 3b60335 Rollup merge of rust-lang#125606 - diondokter:opt-size-int-fmt, r=cuviper 7014731 fix doc comments about `error_generic_member_access` 3f48168 Stabilize `error_in_core` 20f15f4 fixed memory leaks in PathBuf::leak & OsString::leak tests fa66a61 Rollup merge of rust-lang#126096 - c410-f3r:tests-tests-tests, r=jhpratt 5736944 [RFC-2011] Allow `core_intrinsics` when activated dfddd7e Stabilize Option::take_if 051c6c6 Raise `DEFAULT_MIN_STACK_SIZE` to at least 64KiB 29932f3 Auto merge of rust-lang#126038 - matthiaskrgr:rollup-h4rm3x2, r=matthiaskrgr 149a237 Promote `arm64ec-pc-windows-msvc` to tier 2 4a81c12 Rollup merge of rust-lang#126032 - ChrisDenton:update-docs, r=joboet 7450cf0 Rollup merge of rust-lang#125800 - fortanix:raoul/rte-99-fix_mut_static_task_queue, r=jethrogb ed91d55 Rollup merge of rust-lang#125940 - devnexen:unix_fs_netbsd_get_path, r=cuviper bf7430f Update description of the `IsTerminal` example 91c8b23 Update `./x fmt` command 1632165 Rollup merge of rust-lang#125995 - kpreid:const-uninit-stable, r=Nilstrieb 2c5f1ac Rollup merge of rust-lang#125982 - xTachyon:fix-linked-list, r=jhpratt 80cee25 Rollup merge of rust-lang#123168 - joshtriplett:size-of-prelude, r=Amanieu 28dc012 std::unix::fs::get_mode implementation for illumos/solaris. 14a6f29 Use inline const instead of unsafe to implement `MaybeUninit::uninit_array()`. a2c3406 Use inline const instead of unsafe to construct arrays in `MaybeUninit` examples. f8ee355 Rollup merge of rust-lang#125932 - schvv31n:patch-1, r=lqd 49dad46 Rollup merge of rust-lang#125927 - ferrocene:lw-alloc-unwind-test, r=pietroalbini e38c13a Rollup merge of rust-lang#125696 - workingjubilee:please-dont-say-you-are-lazy, r=Nilstrieb 1764910 Rollup merge of rust-lang#106186 - rossmacarthur:ft/iter-chain, r=Amanieu fbb5246 Make deleting on LinkedList aware of the allocator 85aa4b6 impl OsString::leak & PathBuf::leak b19dd14 Add function `core::iter::chain` 25245bb Rollup merge of rust-lang#125919 - tbu-:pr_fix_typo, r=lqd a415ddd Rollup merge of rust-lang#125504 - mqudsi:once_nominal, r=cuviper ea7e91c Let compiler auto impl `Send` for `Task` 55f3d10 Store `Task::p` as `dyn FnOnce() + Send` 92b604f Pass function for `Thread` as `Send` to `Thread::imp` 175ad22 Auto merge of rust-lang#125525 - joboet:tls_accessor, r=cuviper 31e0022 std::unix::fs::get_path: using fcntl codepath for netbsd instead. 82e24ad Fix typo in the docs of `HashMap::raw_entry_mut` fcc07af Ignore `vec_deque_alloc_error::test_shrink_to_unwind` test on non-unwind targets 6ef46b3 Auto merge of rust-lang#125912 - nnethercote:rustfmt-tests-mir-opt, r=oli-obk 7927138 Remove stray "this" 06d9b0e Add "OnceList" example to motivate OnceLock 6d001c5 Move first OnceLock example to LazyLock 7e47256 Differ LazyLock vs. OnceLock in std::sync overview a198721 Explain LazyCell in core::cell overview ae5598a Reformat `mir!` macro invocations to use braces. 494f05c Rollup merge of rust-lang#125898 - RalfJung:typo, r=Nilstrieb 7881d33 Rollup merge of rust-lang#125884 - Rua:integer_sign_cast, r=Mark-Simulacrum 380d9a3 Rollup merge of rust-lang#121062 - RustyYato:f32-midpoint, r=the8472 81b9e26 Wording of the documentation 1c707b6 typo: depending from -> on fe5adb9 Auto merge of rust-lang#125577 - devnexen:netbsd_stack_min, r=joboet 876458e Implement feature `integer_sign_cast` e929c7f Change f32::midpoint to upcast to f64 cd04000 Auto merge of rust-lang#124294 - tspiteri:ilog-first-iter, r=the8472 7f0b19d stablize `const_binary_heap_constructor` & create an unstable feature `const_binary_heap_new_in` for `BinaryHeap::new_in` 5c2e274 Rollup merge of rust-lang#125730 - mu001999-contrib:clippy-fix, r=oli-obk 9fe1803 Auto merge of rust-lang#124662 - zetanumbers:needs_async_drop, r=oli-obk 8943103 Avoid `mut` and simplify initialization of `TASK_QUEUE` ba98164 Auto merge of rust-lang#124636 - tbu-:pr_env_unsafe, r=petrochenkov bbaaa79 Rollup merge of rust-lang#125746 - jmillikin:duration-from-weeks-typo, r=lqd 1329a62 Rollup merge of rust-lang#125739 - RalfJung:drop-in-place-docs, r=workingjubilee 8883bcf Rollup merge of rust-lang#125342 - tbu-:pr_doc_write, r=ChrisDenton 14d5dcb explain what the open questions are, and add a Miri test for that 6f01ba7 Apply x clippy --fix and x fmt c9c0713 Fix copy-paste error in `Duration::from_weeks` panic message. e935223 Rollup merge of rust-lang#125733 - compiler-errors:async-fn-assoc-item, r=fmease 4feb881 Elaborate about modifying env vars in multi-threaded programs 2500719 Add note about safety of `std::env::set_var` on Windows c4b1ff8 Make `std::env::{set_var, remove_var}` unsafe in edition 2024 07d3009 drop_in_place: weaken the claim of equivalence with drop(ptr.read()) 99eabb4 Add lang item for AsyncFnKindHelper::Upvars a8f468f Add lang item for Future::Output 2e1896e Add lang items for AsyncFn's associated types d82378a [ACP 362] genericize `ptr::from_raw_parts` 619e33b Add FRAC_1_SQRT_2PI doc alias to FRAC_1_SQRT_TAU 1265244 make `ptr::rotate` smaller when using `optimize_for_size` bb6d4eb Add safety comment to fix tidy c8b699c Optimize async drop glue for some old types 0444ab8 Add FRAC_1_SQRT_2PI constant to f16/f32/f64/f128 1aaf0a9 Rollup merge of rust-lang#125226 - madsmtm:fix-mac-catalyst-tests, r=workingjubilee 565dce2 Rollup merge of rust-lang#124251 - scottmcm:unop-ptr-metadata, r=oli-obk a4025eb Add custom mir support for `PtrMetadata` 87b9f24 Add an intrinsic for `ptr::metadata` 914d2c0 Rollup merge of rust-lang#125637 - nnethercote:rustfmt-fixes, r=GuillaumeGomez 3170156 Make more of the test suite run on Mac Catalyst 9753338 Disable stack overflow handler tests on iOS-like platforms 3548389 Don't format `tests/run-make/*/rmake.rs`. 6fcf130 Rollup merge of rust-lang#125647 - tspiteri:track-lazy_cell_consume, r=workingjubilee 385e1b8 Rollup merge of rust-lang#125551 - clarfonthey:ip-bits, r=jhpratt 457f5ee update tracking issue for lazy_cell_consume 893db81 Auto merge of rust-lang#125636 - workingjubilee:bump-backtrace-0.3.72, r=workingjubilee 6785858 Sync libstd deps with backtrace b214872 Bump backtrace to 0.3.72 0ef7706 Auto merge of rust-lang#125609 - diondokter:opt-size-char-count, r=thomcc 3578f42 Rollup merge of rust-lang#124870 - Lokathor:update-result-docs, r=dtolnay d4fb66b Always use the general case char count 1e8098b Size optimize int formatting a74509c Rollup merge of rust-lang#125559 - scottmcm:simplify-shift-ubcheck, r=workingjubilee bc346a0 Auto merge of rust-lang#122079 - tbu-:pr_copy_file_range_probe, r=the8472 fdcee4d std::pal::unix::thread fetching min stack size on netbsd. d14171d Auto merge of rust-lang#125574 - matthiaskrgr:rollup-1oljoup, r=matthiaskrgr 3e545bc Rollup merge of rust-lang#125571 - tesuji:dummy-pi, r=Nilstrieb 8409442 Rollup merge of rust-lang#125561 - Cyborus04:stabilize-slice-flatten, r=scottmcm 8981ee4 Auto merge of rust-lang#125570 - tesuji:stdout-handle, r=Nilstrieb addaaed f32: use constants instead of reassigning a dummy value as PI 8a6d10d use proper name instead of magic number 64671fa Stabilize `slice_flatten` 4014081 Auto merge of rust-lang#125070 - tbu-:pr_set_extension_panic, r=jhpratt f54c557 Auto merge of rust-lang#125518 - saethlin:check-arguments-new-in-const, r=joboet a4bac2b It seems that anchor names are implicitly all lowercase 7cddfd4 Simplify the `unchecked_sh[lr]` ub-checks a bit 805f56b Fix URL target, it's in the module not the type. 3b77f19 github showed that weird. 65726c0 correct for copy paste errors when fixing wrapping. 613145f Resolve rust-lang#124870 (comment) 9677b70 revert to the inconsistent paragraph wrapping. bf3ca98 Rollup merge of rust-lang#124667 - newpavlov:stabilize_div_duration, r=jhpratt 4af28c4 Rollup merge of rust-lang#123803 - Sp00ph:shrink_to_fix, r=Mark-Simulacrum 79e1daf Rollup merge of rust-lang#122986 - taiki-e:aix-c-char, r=Mark-Simulacrum 0b13a6c Rollup merge of rust-lang#121377 - pitaj:lazy_cell_fn_pointer, r=dtolnay b1ac7da Stabilise ip_bits feature 23bb5bc Auto merge of rust-lang#121571 - clarfonthey:unchecked-math-preconditions, r=saethlin c11b36a Rollup merge of rust-lang#125527 - programmerjake:patch-2, r=workingjubilee d6812d5 Rollup merge of rust-lang#125498 - zmodem:avx512er, r=workingjubilee f52291b Rollup merge of rust-lang#125478 - Urgau:check-cfg-config-bump-stage0, r=Mark-Simulacrum 38dcab9 Rollup merge of rust-lang#125271 - RalfJung:posix_memalign, r=workingjubilee 29a1b3b Move the checks for Arguments constructors to inline const 5257f3f Add manual Sync impl for ReentrantLockGuard 078095a std: make TLS accessors closures that return pointers 567096d Rollup merge of rust-lang#125497 - meesfrensel:patch-1, r=calebzulawski dd828cf Stop using the avx512er and avx512pf x86 target features 749b376 Change pedantically incorrect OnceCell/OnceLock wording 2b1602a Fix some SIMD intrinsics documentation 59b5617 Remove now outdated comment since we bumped stage0 6d1cdb5 Add assert_unsafe_precondition to unchecked_{add,sub,neg,mul,shl,shr} methods 8fa3f60 Document behavior of `create_dir_all` wrt. empty path dd196e7 Document platform-specifics for `Read` and `Write` of `File` a71d9d9 Fix c_char on AIX ce3db1b fix typo 4913884 use posix_memalign on most Unix targets 86878b9 Fix linkchecker doc errors 1bf7a30 Turn bare links into automatic links 736b225 Move BufGuard impl outside of function a44e7b3 Fix tidy errors 36af639 Replace sort implementations 48a835b Divide float nanoseconds instead of seconds f84d57f Don't use `T` with both Result and Option, improve explanation. 88338ff Add `size_of`, `size_of_val`, `align_of`, and `align_of_val` to the prelude 5d56638 Panic if `PathBuf::set_extension` would add a path separator 7db52fc Add fn allocator method to rc/sync::Weak. Relax Rc<T>/Arc<T>::allocator to allow unsized T. 43bf016 Suggest borrowing on fn argument that is `impl AsRef` 50d5af4 use teletype on the attribute name 43ae187 Some Result combinations work like an Option. d0c07aa Move `test_shrink_to_unwind` to its own file. d77b1cc Fix `VecDeque::shrink_to` UB when `handle_alloc_error` unwinds. 0342284 Use `CURRENT_RUSTC_VERSION` 9eb77db Stabilize `div_duration` 7a6ddb3 Lift the probe code of `copy_file_range` into a function f5305c1 Add missing .into_iter() 2a5af32 Extend the example code and assert the result 678e5a0 Add "safety" comment ad38f9b unroll first iter of checked_ilog loop to save one multiplication dbd03d4 Stabilize `BinaryHeap::as_slice` 08f761f DOC: Add FFI example for slice::from_raw_parts() 30c876c Be stricter with `copy_file_range` probe results fe05246 Less syscalls for the `copy_file_range` probe 511fe47 Stabilize `LazyCell` and `LazyLock` (`lazy_cell`) git-subtree-dir: library git-subtree-split: 5e4edba
a2cf636 Rollup merge of rust-lang#127813 - ChrisDenton:win-futex, r=joboet aeae332 Rollup merge of rust-lang#127763 - ChrisDenton:safe-unsafe-unsafe, r=tgross35 e0ea701 Prevent double reference in generic futex 417b61f Narrow the scope of the ReadFile unsafe block b4d1392 forbid(unsafe_op_in_unsafe_fn) in sys/os_str f431b51 Rollup merge of rust-lang#127836 - workingjubilee:forbid-unsafe-ops-in-xous-uefi, r=tgross35 0a024bd Rollup merge of rust-lang#127833 - risc0:erik/zkvm-deny-unsafe, r=workingjubilee 0299bb5 Rollup merge of rust-lang#127807 - ChrisDenton:win-parking, r=joboet 61af010 Rollup merge of rust-lang#127792 - workingjubilee:read-unaligned-is-dwarfier, r=joboet d3cf2e1 Rollup merge of rust-lang#127444 - Sky9x:cstr-bytes-iter, r=dtolnay 12075d1 Rollup merge of rust-lang#126776 - nnethercote:rustfmt-use-pre-cleanups-2, r=cuviper 00d603f Rollup merge of rust-lang#126271 - diondokter:dec2flt-skip-fast-path, r=tgross35 8490c84 Rollup merge of rust-lang#125206 - mgeisler:simplify-std-env-vars, r=jhpratt,tgross35 a752e3b uefi: Forbid unwrapped unsafe in platform modules 32a1b07 Cfg nit e189d3b xous: Forbid unwrapped unsafe in platform modules 7ddd7f8 zkvm: add `#[forbid(unsafe_op_in_unsafe_fn)]` in `stdlib` 0723962 Adjust some comments on individual `use` declarations. 4320ba0 Avoid comments that describe multiple `use` items. 1aeddb0 Merge some `core::iter` entries. 7a0b2fb Add unsafe blocks in unsafe Thread::new 8e76b15 Remove `slice_to_end` e8527cd std: unwrapped unsafe is VERBOTEN! 5e4edba Rollup merge of rust-lang#127789 - Sword-Destiny:master, r=petrochenkov 1b631e5 Use futex.rs for Windows thread parking d59f862 std: Use read_unaligned for reading DWARF 686f75b Rollup merge of rust-lang#127047 - tspiteri:f128-aconsts-lsd, r=tgross35 8b1d874 deny unsafe_op_in_unsafe_fn for teeos f8bb325 clean unsafe op in unsafe fn b597017 clean unsafe op in unsafe fn 9fd9c61 clean unsafe op in unsafe fn e0c57e4 delete #![allow(unsafe_op_in_unsafe_fn)] 704f56f `impl Send + Sync` and override `count` for the `CStr::bytes` iterator a778c83 Auto merge of rust-lang#127777 - matthiaskrgr:rollup-qp2vkan, r=matthiaskrgr 6535591 Rollup merge of rust-lang#124921 - RalfJung:offset-from-same-addr, r=oli-obk ac443f2 Auto merge of rust-lang#127020 - tgross35:f16-f128-classify, r=workingjubilee 57937d7 allow(unsafe_op_in_unsafe_fn) on some functions 94b381d Some Windows functions are safe f3bb34b Deny more windows unsafe_op_in_unsafe_fn eae9451 Rollup merge of rust-lang#127750 - ChrisDenton:safe-unsafe-unsafe, r=workingjubilee 6257980 Rollup merge of rust-lang#127744 - workingjubilee:deny-unsafe-op-in-std, r=jhpratt 05614f3 Rollup merge of rust-lang#127712 - ChrisDenton:raw-types, r=workingjubilee 14c24b1 Mark some `f16` and `f128` functions unstably const 1b70afd Move safety comment outside unsafe block 3c286d5 Make os/windows default to deny unsafe in unsafe d96ed86 Make pal/windows default to deny unsafe in unsafe bb3f60f Fix Windows 7 9fc6710 Auto merge of rust-lang#127719 - devnexen:math_log_fix_solill, r=Amanieu decdb06 Don't re-export `c_int` from `c` a1a1c6a Remove DWORD 7d18991 Remove ULONG d89bce6 Remove PSRWLOCK d3205de Remove LPVOID 68ac381 Remove LPSECURITY_ATTRIBUTES 6d037b8 Remove LPOVERLAPPED 61f617d Remove LPCVOID 8a25371 Remove SIZE_T cd51de1 Remove CHAR 00a5b3b Remove USHORT d621d21 Remove LPWSTR 0b22ecb Remove UINT 18adcef Remove LONG 4eaaf7d Remove LARGE_INTEGER aa45985 Remove NonZeroDWORD d7aa7cf Auto merge of rust-lang#127732 - GrigorenkoPV:teeos-safe-sys-init, r=Amanieu 5ff7b40 std: Unsafe-wrap std::sync e8fa3ef std: Unsafe-wrap in Wtf8 impl 8c3a9c1 std: Unsafe-wrap std::io 91b7331 std: Directly call unsafe {un,}setenv in env 8c75111 std: Unsafe-wrap OSStr{,ing}::from_encoded_bytes_unchecked 4679f9a std: Unsafe-wrap HashMap::get_many_unchecked_mut ac0fd27 std: deny(unsafe_op_in_unsafe_fn) but allow sites f710e38 Add `classify` and related methods for `f16` and `f128` 009660d std: removes logarithms family function edge cases handling for solaris. 3492a6b Auto merge of rust-lang#127728 - matthiaskrgr:rollup-ercdbjd, r=matthiaskrgr 0873299 sys::init is not unsafe on teeos 6c4029a Rollup merge of rust-lang#127592 - tesuji:patch-1, r=Mark-Simulacrum 7cd8086 Auto merge of rust-lang#125935 - madsmtm:merge-os-apple, r=workingjubilee cfb0556 Merge Apple `std::os` extensions modules into `std::os::darwin` 54435f7 Rollup merge of rust-lang#127704 - workingjubilee:fixup-better-than, r=ChrisDenton e122949 Auto merge of rust-lang#127706 - workingjubilee:rollup-d07ij30, r=workingjubilee 3033120 Rollup merge of rust-lang#127659 - saethlin:manually-drop-bufwriter, r=joboet e9eb7de Rollup merge of rust-lang#127446 - zachs18:miri-stdlib-leaks-core-alloc, r=Mark-Simulacrum 3ad2560 Rollup merge of rust-lang#127370 - ChrisDenton:win-sys, r=Mark-Simulacrum 05bf6bc doc: Suggest `str::repeat` over `iter::repeat().take().collect()` 96e8ba7 Fix minor typos in std::process doc on Win argv 6b67c66 Auto merge of rust-lang#126958 - dtolnay:u32char, r=Mark-Simulacrum 591aaaf std::unix::fs: removing, now useless, layers predating macOs 10.10. 94ec6e7 Auto merge of rust-lang#127674 - jhpratt:rollup-0dxy3k7, r=jhpratt a7c1f60 Rollup merge of rust-lang#127668 - spencer3035:improve-slice-doc, r=jhpratt 1e49e05 Rollup merge of rust-lang#127661 - eduardosm:stabilize-io_slice_advance, r=cuviper c79e003 Auto merge of rust-lang#127397 - jyn514:multi-thread-panic-hook, r=workingjubilee 206678c Auto merge of rust-lang#126606 - zachs18:patch-2, r=joboet 1bb0350 Updated slice documentation c8b79dd Use ManuallyDrop in BufWriter::into_parts 6e26e27 Stabilize io_slice_advance cac6664 Rename the internal `const_strlen` to just `strlen` 39647ab fix interleaved panic output 0476fc4 Rollup merge of rust-lang#127433 - dtolnay:conststrlen, r=workingjubilee f66bd5f Rollup merge of rust-lang#126827 - the8472:pidfd-spawn, r=workingjubilee 1e5cd21 Rollup merge of rust-lang#124980 - zachs18:rc-allocator, r=Amanieu 949f0d6 Add instability attribute on private const_strlen function 20bfac6 Rollup merge of rust-lang#127422 - greaka:master, r=workingjubilee f937ef1 Rollup merge of rust-lang#127599 - tgross35:lazy_cell_consume-rename, r=workingjubilee fde7fd2 Rollup merge of rust-lang#127588 - uweigand:s390x-f16-doctests, r=tgross35 ed47f98 Rollup merge of rust-lang#127572 - tbu-:pr_debug_event_nonpacked, r=jhpratt e5c8b85 Rollup merge of rust-lang#124599 - estebank:issue-41708, r=wesleywiser b71b538 Rename `lazy_cell_consume` to `lazy_cell_into_inner` 9efc1cb core: Limit remaining f16 doctests to x86_64 linux a18fbd0 Rollup merge of rust-lang#127554 - ferrocene:tshepang-add-missing-attribute, r=pietroalbini e419147 Don't mark `DEBUG_EVENT` struct as `repr(packed)` 4552576 Auto merge of rust-lang#126690 - andyolivares:feature/show_window, r=dtolnay 6f6e343 Rollup merge of rust-lang#127091 - Sky9x:fused-error-sources-iter, r=dtolnay 0d64105 Fixed doc links 4fb7b22 Few changes to doc comments. Added tracking issue number. fe62f6f Exposing STARTUPINFOW.wShowWindow in CommandExt (show_window function) to control how a new process should display its window (normal, minimized, maximized, etc) 7d20047 do not run test where it cannot run c5f1c76 Auto merge of rust-lang#127235 - martn3:no-mips-f16, r=tgross35,scottmcm 3fefa04 Rollup merge of rust-lang#127460 - Borgerr:clarify-drop-comment, r=jhpratt 895175a Rollup merge of rust-lang#127355 - aceArt-GmbH:126475, r=oli-obk 57cea32 Rollup merge of rust-lang#120248 - WaffleLapkin:bonk-ptr-object-casts, r=compiler-errors,oli-obk,lnicola e74955e Attempt to fix CI e466bf5 Rollup merge of rust-lang#127367 - ChrisDenton:run-sync, r=Nilstrieb 90504f8 Rollup merge of rust-lang#126921 - workingjubilee:outline-va-list, r=Nilstrieb c6b3f3d Auto merge of rust-lang#127454 - matthiaskrgr:rollup-k3vfen2, r=matthiaskrgr 29d7923 Move/change declaration of `mod exit_guard;` ecc9025 clarify `sys::unix::fd::FileDesc::drop` comment (rust-lang#66876) 35c5a45 Rollup merge of rust-lang#127447 - RalfJung:once_lock_miri, r=joboet 9f7100d Rollup merge of rust-lang#127354 - nicholasbishop:bishop-sized-doc, r=Nilstrieb ee06e7d Rollup merge of rust-lang#127297 - the8472:path-new-hash, r=Nilstrieb 2206c6b Rollup merge of rust-lang#127189 - GrigorenkoPV:linkedlist-cursor-list, r=Nilstrieb 41bcc36 Rollup merge of rust-lang#127179 - tgross35:typeid-debug-hex, r=Nilstrieb 7177ac8 once_lock: make test not take as long in Miri 294d87f Remove non-focused memory leak in `std` doctest for Miri. a86fd0f Specialize `TrustedLen` for `Iterator::unzip()` 5515bba Mitigate focused memory leaks in `core` doctests for Miri. 3a0fe26 Remove non-focused memory leaks in `core` doctests for Miri. 20d6cb3 Mitigate focused memory leaks in `alloc` doctests for Miri. cac8902 Remove non-focused memory leaks in `alloc` doctests for Miri. bcdc8e8 Stabilize const_cstr_from_ptr (CStr::from_ptr, CStr::count_bytes) a48f566 offset_from intrinsic: always allow pointers to point to the same address 9919a83 Mark format! with must_use hint 0907955 as_simd: fix comment to be in line with 507583a (rust-lang#121201) 5569ece Rollup merge of rust-lang#127275 - RalfJung:offset-from-isize-min, r=Amanieu 2337ab5 Rollup merge of rust-lang#125751 - pitaj:new_range_api, r=jhpratt ad4fde6 Rollup merge of rust-lang#127363 - GuillaumeGomez:improve-fmt-code-readability, r=Amanieu 3eeca5f Rollup merge of rust-lang#127107 - mu001999-contrib:dead/enhance-2, r=pnkfelix 1b5e5ac Rollup merge of rust-lang#123600 - tisonkun:path_with_extension, r=dtolnay 5e9d445 Attempt to fix CI d8965d3 add `new_range_api` for RFC 3550 ca0f659 Move exit guard from sys::common::exit_guard to sys::exit_guard. cf300a7 Update library/std/src/sys/pal/common/exit_guard.rs ba4c71a add unit tests for extra extension feature 55fc20b update comments 6b7a259 Add experimental raw-dylib feature to std c452e62 Use windows_targets macro for alloc 521c81a Run alloc sync tests 2fcdebb Improve readability of some fmt code examples 625bcc4 Rollup merge of rust-lang#127320 - ChrisDenton:win-sys, r=Mark-Simulacrum f8caf5f Rollup merge of rust-lang#127214 - bjorn3:miri_native_unwind, r=oli-obk 1862054 Describe Sized requirements for mem::offset_of e26c881 impl FusedIterator and a size hint for the error sources iter 8f1c664 core: erase redundant stability attrs in va_list 60c33a5 library: outline VaList into ffi::va_list 03d11c2 Auto merge of rust-lang#126171 - RalfJung:simd_bitmask_multibyte, r=workingjubilee 297850a Add more checks for pointers with vtable meta f58a3d6 Improve dead code analysis 515bd30 Add comments to windows_targets.rs 89d2de0 Update windows-bindgen to 0.58.0 0860a04 also remove redundant requirements from offset() 6f80604 offset_from: "the difference must fit in an isize" is a corollary de4f5c2 Rollup merge of rust-lang#127303 - cuishuang:master, r=jhpratt 56c73c3 Rollup merge of rust-lang#127195 - biabbas:vxworks_cleanup, r=jhpratt 5dfdef7 Rollup merge of rust-lang#126792 - wooden-worm:master, r=Mark-Simulacrum 4df2059 chore: remove repeat words acbefbb impl PathBuf::add_extension and Path::with_added_extension 13d5a42 Auto merge of rust-lang#127226 - mat-1:optimize-siphash-round, r=nnethercote ed3d487 stir the hash state a little to avoid prefix collisions 5ca124f Add more test cases for path comparisons 33bc557 Add test case demonstrating equality of paths "foo/bar" and "foobar" 079f999 Move unique_thread_exit call to lang_start_internal so it is not in a generic function, and wrap it in `catch_unwind` 47d0cbc Remove Miri special-case 596be7e Use pthread_t instead of numeric thread id 2e90f6f Use libc::pause instead of std::thread::park in wait-for-exit loop 1fd23e8 core: Limit four f16 doctests to x86_64 linux e6f15c5 std: Set has_reliable_f16 to false for MIPS targets in build.rs 67535b6 library/std/build.rs: "powerpc64le" is not a target_arch 5b0d82f Rollup merge of rust-lang#127204 - dimpolo:stabilize_atomic_bool_fetch_not, r=jhpratt b184a84 Rollup merge of rust-lang#123588 - tgross35:stabilize-assert_unchecked, r=dtolnay 2a81053 Fall back on remove dir implementation for vxworks a8b6d0a Rollup merge of rust-lang#127230 - hattizai:patch01, r=saethlin 4d7cbb2 chore: remove duplicate words 645e9f2 Optimize SipHash by reordering compress instructions c5ab1f0 Rollup merge of rust-lang#127128 - elomatreb:elomatreb/stabilize-duration_abs_diff, r=joboet f090672 Rollup merge of rust-lang#126732 - StackOverflowExcept1on:master, r=m-ou-se 1dc4f05 Use the native unwind function in miri where possible 4fff335 Avoid MIR bloat in inlining 4385efd Stabilize atomic_bool_fetch_not 6c3359c Rollup merge of rust-lang#127182 - danielhuang:patch-4, r=Nilstrieb a0a438a Remove unqualified import io:: Error for vxworks as all Error references are qualified in process_vxworks.rs 2a65e9f Auto merge of rust-lang#127026 - Urgau:cleanup-bootstrap-check-cfg, r=Kobzol bba2200 LinkedList's Cursor: method to get a ref to the cursor's list 40a9be9 Update ip_addr.rs 986dbd1 Print `TypeId` as hex for debugging f27723e Rollup merge of rust-lang#127069 - Sky9x:fmt-pointer-use-addr, r=Nilstrieb b068fce Rollup merge of rust-lang#126895 - betelgeuse:improve_simd_gather_documentation, r=Amanieu a6b22e9 Rollup merge of rust-lang#127134 - tgross35:typeid-debug, r=Nilstrieb 7f0bb45 Rollup merge of rust-lang#126906 - GrigorenkoPV:fixme-split_at_first, r=Mark-Simulacrum b0feb54 Rollup merge of rust-lang#126705 - safinaskar:panic, r=Mark-Simulacrum b8977f5 Auto merge of rust-lang#127133 - matthiaskrgr:rollup-jxkp3yf, r=matthiaskrgr affa2f9 Print `TypeId` as a `u128` for `Debug` 05a472c Rollup merge of rust-lang#127122 - TDecking:div_ceil, r=Nilstrieb 9b3a511 Auto merge of rust-lang#120639 - fee1-dead-contrib:new-effects-desugaring, r=oli-obk f96a321 Stabilize `duration_abs_diff` bf9096f small correction to fmt::Pointer impl 171f5db Auto merge of rust-lang#127121 - GuillaumeGomez:rollup-xjjjckn, r=GuillaumeGomez 50a6646 Remove uneccessary condition in `div_ceil` 7914389 Updated docs on `#[panic_handler]` in `library/core/src/lib.rs` 1858bdc Rollup merge of rust-lang#127073 - Sky9x:unnecessary-seqcst, r=Nilstrieb aaed209 Rollup merge of rust-lang#127072 - Sky9x:docs-includes-vs-does-include, r=scottmcm e5a577d Auto merge of rust-lang#127119 - RalfJung:miri-sync, r=RalfJung 77a5b51 Rollup merge of rust-lang#126953 - joboet:lazy_key, r=jhpratt 8641f6a Merge from rustc 402992c Rollup merge of rust-lang#127071 - Sky9x:remove-ptr-to-from-bits, r=scottmcm 0a2d8e4 Rollup merge of rust-lang#127070 - Sky9x:unit-const-param-ty, r=BoxyUwU 663f3d5 Rollup merge of rust-lang#127055 - shepmaster:hash-finish-must-use, r=dtolnay 729a10a address review comments db228b8 general fixups and turn `TODO`s into `FIXME`s 47492c9 Implement `Min` trait in new solver cc4a029 implement new effects desugaring d6fadf5 std: add safety comments 8c3c7dc Rollup merge of rust-lang#126970 - DaniPopes:simplify-str-clone_into, r=cuviper ae98528 Rollup merge of rust-lang#126956 - joboet:fmt_no_extern_ty, r=RalfJung 652f0b8 Merge from rustc 48dc678 Remove unnecessary SeqCst in `impl fmt::Pointer for AtomicPtr` e6e5e84 docs: say "includes" instead of "does include" a722d39 Remove (deprecated & unstable) {to,from}_bits pointer methods 2ed9c9f add () to the marker_impls macro for ConstParamTy fdfe014 Mark `Hasher::finish` as #[must_use] 2bd2069 fix least significant digits of f128 associated constants 8db57c2 core: improve comment 1f8c8f4 Cleanup bootstrap check-cfg 6c38c60 Rollup merge of rust-lang#126980 - Borgerr:fix-extendfromslice-check, r=workingjubilee a2dc9b5 Rollup merge of rust-lang#126929 - nnethercote:rm-__rust_force_expr, r=oli-obk cf231e8 Merge from rustc a8b311e Auto merge of rust-lang#126608 - tgross35:f16-f128-library, r=Mark-Simulacrum 4788a93 std: test a variety of ways to extend a Wtf8Buf 57c2de8 set self.is_known_utf8 to false in extend_from_slice c14a130 Rollup merge of rust-lang#126879 - the8472:next-chunk-filter-drop, r=cuviper f6fdef3 core: avoid `extern` types in formatting infrastructure 43a865a fix UI test, simplify error message ff33a66 regression test for leaks in the the Filter::next_chunk implementation f90972a add comments explaining optimizations for Filter::next_chunk 4039a7f fix Drop items getting leaked in Filter::next_chunk 0351c53 Simplify `str::clone_into` 5aedb8a Rollup merge of rust-lang#126946 - cyrgani:patch-1, r=compiler-errors 5664da3 Rollup merge of rust-lang#126927 - workingjubilee:vaargsafe-is-unsafe, r=joboet 9273373 Rollup merge of rust-lang#126885 - Borgerr:rm_internal_pathbuf_asmutvec, r=workingjubilee 46074aa Rollup merge of rust-lang#126302 - mu001999-contrib:ignore/default, r=michaelwoerister 0fe5362 Stabilize const unchecked conversion from u32 to char 9dcaa15 std: separate TLS key creation from TLS access 5d08a54 Detect unused structs which derived Default e6c45e4 `PathBuf::as_mut_vec` removed and verified for UEFI and Windows platforms rust-lang#126333 7cec6ef remove references to `PathBuf::as_mut_vec` in `PathBuf::_set_extension` 37f78f4 inner truncate methods for UEFI platforms cfb8021 rust-lang#126333 remove `PathBuf::as_mut_vec` reference at top of `PathBuf::_push` 3edb521 simd_bitmask intrinsic: add a non-power-of-2 multi-byte example 2ddf794 Add missing slash in const_eval_select doc comment 19cfdb2 Add tests for `f16` and `f128` 561daff Add more `f16` and `f128` library functions and constants 6cb3d34 Add doctests to existing `f16` and `f128` functions b0e0503 Add build.rs config for reliable `f16` and `f128` 028026b Remove `__rust_force_expr`. 1069a68 core: VaArgSafe is an unsafe trait a451b2a Auto merge of rust-lang#126852 - scottmcm:more-checked-math-tweaks, r=Amanieu 17d03b9 Check that we get somewhat sane PIDs when spawning with pidfds 4c9a96e more fine-grained feature-detection for pidfd spawning bf06e43 document safety properties of the internal Process::new constructor 9212236 use pidfd_spawn for faster process creation when pidfds are requested 4815f29 document the cvt methods 1bd207e Rollup merge of rust-lang#126904 - GrigorenkoPV:nonzero-fixme, r=joboet 2676918 Rollup merge of rust-lang#125575 - dingxiangfei2009:derive-smart-ptr, r=davidtwco 9dcffa5 Rollup merge of rust-lang#125082 - kpreid:const-uninit, r=dtolnay cf34f71 Replace `MaybeUninit::uninit_array()` with array repeat expression. e51d8a2 Auto merge of rust-lang#126523 - joboet:the_great_big_tls_refactor, r=Mark-Simulacrum 2b8c7a3 Small fixme in core now that split_first has no codegen issues 532304b Small fixme in core now that NonZero is generic 5ae0378 std: fix wasm builds ae08c58 Rollup merge of rust-lang#126213 - zachs18:atomicbool-u8-i8-from-ptr-alignment, r=Nilstrieb 071e80d Fix simd_gather documentation 0c4a661 wasm64 build with target-feature=+simd128,+atomics 36a20f7 Reword docs for `f32` and `f64` 6839ec5 Extract repeated constants from `f32` and `f64` source c26bd79 Rollup merge of rust-lang#126854 - devnexen:std_unix_os_fallback_upd, r=Mark-Simulacrum 828e528 Rollup merge of rust-lang#126807 - devnexen:copy_file_macos_simpl, r=Mark-Simulacrum e4bc79d Also get `add nuw` from `uN::checked_add` 7c83a04 SmartPointer derive-macro f0b95fc fix build 12ec5b7 Rollup merge of rust-lang#126783 - tguichaoua:fix_tcplistener_into_incoming_issue_number, r=workingjubilee eb265d0 std::unix::os::home_dir: fallback's optimisation. a48f3d6 Auto merge of rust-lang#126838 - matthiaskrgr:rollup-qkop22o, r=matthiaskrgr ec8af4b Rollup merge of rust-lang#126552 - fee1-dead-contrib:rmfx, r=compiler-errors 6d6ba92 Rollup merge of rust-lang#126140 - eduardosm:stabilize-fs_try_exists, r=Amanieu e1edea8 Auto merge of rust-lang#116113 - kpreid:arcmut, r=dtolnay 49d4fdb Generalize `{Rc,Arc}::make_mut()` to unsized types. 5ac719e Replace `WriteCloneIntoRaw` with `CloneToUninit`. a4ca461 Add `core::clone::CloneToUninit`. 7836843 Auto merge of rust-lang#126750 - scottmcm:less-unlikely, r=jhpratt 934e728 Auto merge of rust-lang#124101 - the8472:pidfd-methods, r=cuviper c2ec99b to extract a pidfd we must consume the child f7cf777 Add PidFd::{kill, wait, try_wait} d688595 std::unix::fs: copy simplification for apple. bb602cf Auto merge of rust-lang#125853 - tesuji:promote-fail-fast, r=cjgillot 1f17936 update intrinsic const param counting 5e7ce0b Remove `feature(effects)` from the standard library 8902c17 Auto merge of rust-lang#126781 - matthiaskrgr:rollup-5u4pens, r=matthiaskrgr 54eaed7 fix issue number 2e01ae3 Rollup merge of rust-lang#126613 - tgross35:log-test-update, r=cuviper 306d7bf Stop using `unlikely` in `strict_*` methods a8ab1ce [GVN] Add tests for generic pointees with PtrMetadata a272844 Don't perform mitigation for thread-unsafe libc::exit under Miri. 5035a17 fix rustdoc URL 1530977 On `target_os = "linux"`, ensure that only one Rust thread calls `libc::exit` or returns from `main`. 7e940ba Auto merge of rust-lang#126578 - scottmcm:inlining-bonuses-too, r=davidtwco 9a945fd Auto merge of rust-lang#124032 - Voultapher:a-new-sort, r=thomcc dbaf524 Rollup merge of rust-lang#126737 - fee1-dead-contrib:rm-const-closures, r=compiler-errors 0f6922d Fix wrong big O star bracing in the doc comments 7bf7f57 Remove `feature(const_closures)` from libcore b4e2e4a Auto merge of rust-lang#126736 - matthiaskrgr:rollup-rb20oe3, r=matthiaskrgr 0829ab8 Rollup merge of rust-lang#126717 - nnethercote:rustfmt-use-pre-cleanups, r=jieyouxu f1c9c80 Rollup merge of rust-lang#126711 - GKFX:const-option-as-slice, r=oli-obk e057232 Auto merge of rust-lang#116088 - nbdd0121:unwind, r=Amanieu,RalfJung 13ea648 Stabilize `PanicInfo::message()` and `PanicMessage` b6a3858 Rollup merge of rust-lang#126703 - the8472:on-blackbox-crypto-use, r=scottmcm 847726d Shrink some slice iterator MIR 1ba2fa4 Stabilize `hint_assert_unchecked` 9d0041c Update documentation for `hint::assert_unchecked` e3e84a7 Add blank lines after module-level `//` comments. 36ad0db Add blank lines after module-level `//!` comments. 4e67110 Convert some module-level `//` and `///` comments to `//!`. 669d6fc Make Option::as_[mut_]slice const 4ae781c reword the hint::blackbox non-guarantees dd7c901 core: add tracking issue for `array::repeat` 5ddeaca core: simplify implementation of `array::repeat`, address other nits 62f7a4e core: implement `UncheckedIterator` for `RepeatN` 387fd1f core: implement `array::repeat` 3fc18d0 Add a hack to prevent proc_macro misopt in CI a95938d Stabilise c_unwind 2a5e5b8 Rollup merge of rust-lang#125787 - Oneirical:infinite-test-a-novel, r=jieyouxu 227994d try implementing suggestions 78867ab run_make_support nm implementation + bin-emit-no-symbols rmake rewrite 76e61bf Replace `move||` with `move ||` in `compiler/` and `library/` 13a31b6 Auto merge of rust-lang#126330 - m-ou-se:panic-message-type, r=Amanieu 42802a3 Print the tested value in int_log tests ea1ab74 Add missing CopyMarker impl 384c205 Revert panic_safe test changes ca458ba Add PanicMessage type for PanicInfo::message(). 2238945 Add tracking issue to async_drop API 0b3227b std: rename module for clarity 2b9a4f3 std: update TLS module documentation 00d4964 std: use the `c_int` from `core::ffi` instead of `libc` bd3b9ec std: simplify `#[cfg]`s for TLS 78eaad5 Fix unintended regression for Freeze + Copy types 8cd20cb Auto merge of rust-lang#126569 - jieyouxu:rollup-1uvkb2y, r=jieyouxu c1acd7a Rollup merge of rust-lang#126531 - slanterns:error_provider, r=workingjubilee cd1c998 Rollup merge of rust-lang#126468 - RalfJung:euclid, r=Mark-Simulacrum 2730879 Rollup merge of rust-lang#126346 - hermit-os:fd, r=Amanieu ebbce69 Rollup merge of rust-lang#126288 - x4exr:patch-1, r=dtolnay 4aa43c7 Auto merge of rust-lang#125720 - folkertdev:optimize_for_size-ptr-rotate, r=Amanieu 7912329 doc: Added commas where needed 48e1578 Fix doc-link issue 489dfce Remove reliance on const_trait in sort implementations 89b5784 std: move `sys_common::backtrace` to `sys` 90dbe22 use rustc-dep-of-std in panic_unwind 6832ad3 Rollup merge of rust-lang#126539 - lukaslueg:patch-1, r=jhpratt 04e46c2 Rollup merge of rust-lang#125112 - tbu-:pr_create_dir_all_empty, r=dtolnay e77b474 Update `Arc::try_unwrap()` docs 83c530f Apply review comments ae7f43e Auto merge of rust-lang#126299 - scottmcm:tune-sliceindex-ubchecks, r=saethlin 339f266 Redo SliceIndex implementations 2388743 update comment 4cc1c37 Rollup merge of rust-lang#126229 - ChrisDenton:bindgen, r=Mark-Simulacrum b40c54b std: refactor the TLS implementation 7e3c4f8 Auto merge of rust-lang#126518 - matthiaskrgr:rollup-wb70rzq, r=matthiaskrgr 2678593 std: suggest OnceLock over Once b509ed2 Polish `std::path::absolute` documentation. c3c1757 Auto merge of rust-lang#126473 - matthiaskrgr:rollup-8w2xm09, r=matthiaskrgr a135342 Rollup merge of rust-lang#126285 - kpreid:unique-rc, r=dtolnay 7fafb6d Rollup merge of rust-lang#126266 - tbu-:pr_doc_alloc_default_system, r=jhpratt afee9f5 Rollup merge of rust-lang#126135 - hermit-os:fuse, r=jhpratt 4a32b4b Rollup merge of rust-lang#123769 - dtolnay:literal, r=fee1-dead 3909d51 div_euclid, rem_euclid: clarify/extend documentation ca52a2c Rollup merge of rust-lang#126351 - devnexen:to_sol11_upd, r=ChrisDenton 369fa55 Rollup merge of rust-lang#126402 - firefighterduck:fix-unsafe-precon-copy, r=Nilstrieb 2acb995 Rollup merge of rust-lang#126390 - Kriskras99:master, r=Nilstrieb b3c1dcb Rollup merge of rust-lang#126360 - compiler-errors:uplift-structural-traits, r=lcnr bdb9aa2 Rollup merge of rust-lang#123726 - jieyouxu:command-new-docs, r=Nilstrieb 307d1af Remove superfluous escaping from byte, byte str, and c str literals 78d94ee LangItem-ify Coroutine trait in solvers 891f00c fix wrong assert_unsafe_precondition message for core::ptr::copy 9adf702 Rollup merge of rust-lang#126384 - RalfJung:is_none_or, r=workingjubilee 02cb1e9 Rollup merge of rust-lang#126347 - slanterns:try_simplify, r=scottmcm fa2a54a Fix wording in {checked_}next_power_of_two 3ef894f add tracking issue for is_none_or a5fe19d std::unix::fs::link using direct linkat call for Solaris and macOs. 9921cd2 Rollup merge of rust-lang#126328 - RalfJung:is_none_or, r=workingjubilee 93583a6 Simplify `try_*` on `Iterator` 47090b1 export std::os::fd module on HermitOS 17c90d8 Auto merge of rust-lang#126273 - pietroalbini:pa-bootstrap-update, r=Mark-Simulacrum b482e06 add is_none_or 027c82e Rollup merge of rust-lang#126322 - m-ou-se:panicinfo-and-panicinfo-2, r=RalfJung db03ec6 Rollup merge of rust-lang#126242 - yaahc:simplify-provider, r=jhpratt 956efde Rollup merge of rust-lang#126039 - dpaoliello:arm64ecbuild, r=davidtwco 3acb41f Fix deprecated version. bc5e618 Update doc comment on PanicInfo::message(). 249d63e Use payload_as_str instead of two downcasts. 15677e9 Fix deprecation version. a239d5b Clarify doc comment. 209f8c8 Auto merge of rust-lang#126319 - workingjubilee:rollup-lendnud, r=workingjubilee 6ec98e7 Rollup merge of rust-lang#126305 - workingjubilee:fix-os-string-to-string-utf8-invariant, r=joboet 80467da Rollup merge of rust-lang#126287 - nnethercote:reformat-cranelift-patch, r=bjorn3 5760a4e Rollup merge of rust-lang#126281 - ChrisDenton:env, r=jhpratt 439c2ae Rollup merge of rust-lang#126249 - workingjubilee:simplify-try-map-signature, r=scottmcm 23e3dbf Rollup merge of rust-lang#126210 - lolbinarycat:ptr_doctest_assert, r=workingjubilee d469394 Rollup merge of rust-lang#123374 - mgeier:doc-slice-from-raw-parts, r=scottmcm 63fe960 Require any function with a tait in its signature to actually constrain a hidden type e1d73c2 Revert "Rollup merge of rust-lang#125362 - joboet:tait_hack, r=Nilstrieb" 382ed52 Make PathBuf less Ok with adding UTF-16 then `into_string` 548e7a4 Update a cranelift patch file for formatting changes. 8ccbe9e `UniqueRc`: support allocators and `T: ?Sized`. b3dcee6 set_env: State the conclusion upfront f56c023 Rename `std::fs::try_exists` to `std::fs::exists` and stabilize fs_try_exists c16d8b1 Unify guarantees about the default allocator d8fe589 remove cfg(bootstrap) a2ff49b replace version placeholder f72e4a9 Formatting. 0503ca7 Bump deprecation of std's PanicInfo alias to 1.82.0. fea6b03 Add PanicHookInfo::payload_as_str(). 0c8a9e0 Fix display of panic message in recursive panic. 2f85702 Mention core's PanicInfo in error.md. ad0667f Add note on panic payload type. 518722e Downcast panic payload to String too in example. c4dea81 Move deprecation of std::panic::PanicInfo to 1.80.0. 143e4c4 Fix deprecation version. c6749ae Rename std::panic::PanicInfo to PanicHookInfo. db2e055 Formatting. 51f20ac Fix invalid markdown/html. d4b7304 Reorder body of begin_panic for consistency. 373fb60 Impl Display for PanicPayload to simplify things. 224d45c Use unnamed lifetimes for [..]Payload impl blocks. cf984e0 Move downcasting panic payload to str to a function. a18eeac Mark some PanicInfo methods as #[inline] for consistency. 47f359b Remove std::panic::PanicInfo::internal_constructor+set_payload. 701d6a2 Remove core::panic::PanicInfo::internal_constructor. cca865d Update doc comment about core::panicking. 221a90c Fix doc link. d6658a5 Add core::panic::PanicInfo::payload() for compatibility. ca0bfeb Document difference between core and std's PanicInfo. 702405e Split core's PanicInfo and std's PanicInfo. 019e01f Skip fast path for dec2flt when optimize_for_size 483f641 Simplify `[T; N]::try_map` signature 8b6f468 Simplify provider api to improve llvm ir c8170e6 Rollup merge of rust-lang#126212 - SteveLauC:fix/haiku, r=joboet 58bb5cf Rollup merge of rust-lang#126191 - ivan-shrimp:nonzero_doc, r=scottmcm d2f8ddf Bump windows-bindgen to 0.57 02bf152 Clarify `Command::new` behavior if passed programs with arguments e17d6b9 Remove some unused crate dependencies. 5840184 Update docs for AtomicU8/I8. 8791549 fix: build on haiku 263861f Update safety docs for AtomicBool::from_ptr. e25ae61 docs(core): make more const_ptr doctests assert instead of printing cf9de23 Auto merge of rust-lang#126205 - jieyouxu:rollup-s64z5ng, r=jieyouxu c5da756 Rollup merge of rust-lang#126194 - ChrisDenton:winerror, r=Mark-Simulacrum c4bd74c Rollup merge of rust-lang#125253 - sunsided:feature/FRAC_1_SQRT_PI, r=Mark-Simulacrum c9c5d8f Auto merge of rust-lang#126193 - RalfJung:miri-sync, r=RalfJung e39299d Migrate more things to WinError 0df0a38 fix `NonZero` doctest inconsistencies 818933d Rollup merge of rust-lang#126168 - devnexen:current_exe_haiku_simpl, r=ChrisDenton a9bd569 Rollup merge of rust-lang#126146 - devnexen:signal_fbsd, r=ChrisDenton 05812a0 Merge from rustc 56bdaf3 std::unix::os current_exe implementation simplification for haiku. e6c378f Auto merge of rust-lang#125966 - schvv31n:impl_os_string_pathbuf_leak, r=workingjubilee e000ecb std::unix::process adding few specific freebsd signals to be able to id. 67454f5 Rollup merge of rust-lang#126138 - wbk:patch-1, r=lqd ca932c8 Rollup merge of rust-lang#125998 - devnexen:get_mode_illumos, r=Nilstrieb 397e9cb Rollup merge of rust-lang#125951 - slanterns:error_in_core_stabilization, r=Amanieu 4655eca Fix typo in docs for std::pin bb2e2d9 add HermitOS support of vectored read/write operations dd7ccb7 Rollup merge of rust-lang#126089 - wutchzone:option_take_if, r=scottmcm 199da77 Rollup merge of rust-lang#126030 - ChrisDenton:update-wingen-readme, r=Mark-Simulacrum 8a4b11a Rollup merge of rust-lang#124012 - slanterns:as_slice_stabilize, r=BurntSushi 05a92c2 Auto merge of rust-lang#126110 - workingjubilee:backtrace-0.3.73, r=workingjubilee cd73cbe Update backtrace to 0.3.73 c6e53ce Merge from rustc 3b60335 Rollup merge of rust-lang#125606 - diondokter:opt-size-int-fmt, r=cuviper 7014731 fix doc comments about `error_generic_member_access` 3f48168 Stabilize `error_in_core` 20f15f4 fixed memory leaks in PathBuf::leak & OsString::leak tests fa66a61 Rollup merge of rust-lang#126096 - c410-f3r:tests-tests-tests, r=jhpratt 5736944 [RFC-2011] Allow `core_intrinsics` when activated dfddd7e Stabilize Option::take_if 051c6c6 Raise `DEFAULT_MIN_STACK_SIZE` to at least 64KiB 29932f3 Auto merge of rust-lang#126038 - matthiaskrgr:rollup-h4rm3x2, r=matthiaskrgr 149a237 Promote `arm64ec-pc-windows-msvc` to tier 2 4a81c12 Rollup merge of rust-lang#126032 - ChrisDenton:update-docs, r=joboet 7450cf0 Rollup merge of rust-lang#125800 - fortanix:raoul/rte-99-fix_mut_static_task_queue, r=jethrogb ed91d55 Rollup merge of rust-lang#125940 - devnexen:unix_fs_netbsd_get_path, r=cuviper bf7430f Update description of the `IsTerminal` example 91c8b23 Update `./x fmt` command 1632165 Rollup merge of rust-lang#125995 - kpreid:const-uninit-stable, r=Nilstrieb 2c5f1ac Rollup merge of rust-lang#125982 - xTachyon:fix-linked-list, r=jhpratt 80cee25 Rollup merge of rust-lang#123168 - joshtriplett:size-of-prelude, r=Amanieu 28dc012 std::unix::fs::get_mode implementation for illumos/solaris. 14a6f29 Use inline const instead of unsafe to implement `MaybeUninit::uninit_array()`. a2c3406 Use inline const instead of unsafe to construct arrays in `MaybeUninit` examples. f8ee355 Rollup merge of rust-lang#125932 - schvv31n:patch-1, r=lqd 49dad46 Rollup merge of rust-lang#125927 - ferrocene:lw-alloc-unwind-test, r=pietroalbini e38c13a Rollup merge of rust-lang#125696 - workingjubilee:please-dont-say-you-are-lazy, r=Nilstrieb 1764910 Rollup merge of rust-lang#106186 - rossmacarthur:ft/iter-chain, r=Amanieu fbb5246 Make deleting on LinkedList aware of the allocator 85aa4b6 impl OsString::leak & PathBuf::leak b19dd14 Add function `core::iter::chain` 25245bb Rollup merge of rust-lang#125919 - tbu-:pr_fix_typo, r=lqd a415ddd Rollup merge of rust-lang#125504 - mqudsi:once_nominal, r=cuviper ea7e91c Let compiler auto impl `Send` for `Task` 55f3d10 Store `Task::p` as `dyn FnOnce() + Send` 92b604f Pass function for `Thread` as `Send` to `Thread::imp` 175ad22 Auto merge of rust-lang#125525 - joboet:tls_accessor, r=cuviper 31e0022 std::unix::fs::get_path: using fcntl codepath for netbsd instead. 82e24ad Fix typo in the docs of `HashMap::raw_entry_mut` fcc07af Ignore `vec_deque_alloc_error::test_shrink_to_unwind` test on non-unwind targets 6ef46b3 Auto merge of rust-lang#125912 - nnethercote:rustfmt-tests-mir-opt, r=oli-obk 7927138 Remove stray "this" 06d9b0e Add "OnceList" example to motivate OnceLock 6d001c5 Move first OnceLock example to LazyLock 7e47256 Differ LazyLock vs. OnceLock in std::sync overview a198721 Explain LazyCell in core::cell overview ae5598a Reformat `mir!` macro invocations to use braces. 494f05c Rollup merge of rust-lang#125898 - RalfJung:typo, r=Nilstrieb 7881d33 Rollup merge of rust-lang#125884 - Rua:integer_sign_cast, r=Mark-Simulacrum 380d9a3 Rollup merge of rust-lang#121062 - RustyYato:f32-midpoint, r=the8472 81b9e26 Wording of the documentation 1c707b6 typo: depending from -> on fe5adb9 Auto merge of rust-lang#125577 - devnexen:netbsd_stack_min, r=joboet 876458e Implement feature `integer_sign_cast` e929c7f Change f32::midpoint to upcast to f64 cd04000 Auto merge of rust-lang#124294 - tspiteri:ilog-first-iter, r=the8472 7f0b19d stablize `const_binary_heap_constructor` & create an unstable feature `const_binary_heap_new_in` for `BinaryHeap::new_in` 5c2e274 Rollup merge of rust-lang#125730 - mu001999-contrib:clippy-fix, r=oli-obk 9fe1803 Auto merge of rust-lang#124662 - zetanumbers:needs_async_drop, r=oli-obk 8943103 Avoid `mut` and simplify initialization of `TASK_QUEUE` ba98164 Auto merge of rust-lang#124636 - tbu-:pr_env_unsafe, r=petrochenkov bbaaa79 Rollup merge of rust-lang#125746 - jmillikin:duration-from-weeks-typo, r=lqd 1329a62 Rollup merge of rust-lang#125739 - RalfJung:drop-in-place-docs, r=workingjubilee 8883bcf Rollup merge of rust-lang#125342 - tbu-:pr_doc_write, r=ChrisDenton 14d5dcb explain what the open questions are, and add a Miri test for that 6f01ba7 Apply x clippy --fix and x fmt c9c0713 Fix copy-paste error in `Duration::from_weeks` panic message. e935223 Rollup merge of rust-lang#125733 - compiler-errors:async-fn-assoc-item, r=fmease 4feb881 Elaborate about modifying env vars in multi-threaded programs 2500719 Add note about safety of `std::env::set_var` on Windows c4b1ff8 Make `std::env::{set_var, remove_var}` unsafe in edition 2024 07d3009 drop_in_place: weaken the claim of equivalence with drop(ptr.read()) 99eabb4 Add lang item for AsyncFnKindHelper::Upvars a8f468f Add lang item for Future::Output 2e1896e Add lang items for AsyncFn's associated types d82378a [ACP 362] genericize `ptr::from_raw_parts` 619e33b Add FRAC_1_SQRT_2PI doc alias to FRAC_1_SQRT_TAU 1265244 make `ptr::rotate` smaller when using `optimize_for_size` bb6d4eb Add safety comment to fix tidy c8b699c Optimize async drop glue for some old types 0444ab8 Add FRAC_1_SQRT_2PI constant to f16/f32/f64/f128 1aaf0a9 Rollup merge of rust-lang#125226 - madsmtm:fix-mac-catalyst-tests, r=workingjubilee 565dce2 Rollup merge of rust-lang#124251 - scottmcm:unop-ptr-metadata, r=oli-obk a4025eb Add custom mir support for `PtrMetadata` 87b9f24 Add an intrinsic for `ptr::metadata` 914d2c0 Rollup merge of rust-lang#125637 - nnethercote:rustfmt-fixes, r=GuillaumeGomez 3170156 Make more of the test suite run on Mac Catalyst 9753338 Disable stack overflow handler tests on iOS-like platforms 3548389 Don't format `tests/run-make/*/rmake.rs`. 6fcf130 Rollup merge of rust-lang#125647 - tspiteri:track-lazy_cell_consume, r=workingjubilee 385e1b8 Rollup merge of rust-lang#125551 - clarfonthey:ip-bits, r=jhpratt 457f5ee update tracking issue for lazy_cell_consume 893db81 Auto merge of rust-lang#125636 - workingjubilee:bump-backtrace-0.3.72, r=workingjubilee 6785858 Sync libstd deps with backtrace b214872 Bump backtrace to 0.3.72 0ef7706 Auto merge of rust-lang#125609 - diondokter:opt-size-char-count, r=thomcc 3578f42 Rollup merge of rust-lang#124870 - Lokathor:update-result-docs, r=dtolnay d4fb66b Always use the general case char count 1e8098b Size optimize int formatting a74509c Rollup merge of rust-lang#125559 - scottmcm:simplify-shift-ubcheck, r=workingjubilee bc346a0 Auto merge of rust-lang#122079 - tbu-:pr_copy_file_range_probe, r=the8472 fdcee4d std::pal::unix::thread fetching min stack size on netbsd. d14171d Auto merge of rust-lang#125574 - matthiaskrgr:rollup-1oljoup, r=matthiaskrgr 3e545bc Rollup merge of rust-lang#125571 - tesuji:dummy-pi, r=Nilstrieb 8409442 Rollup merge of rust-lang#125561 - Cyborus04:stabilize-slice-flatten, r=scottmcm 8981ee4 Auto merge of rust-lang#125570 - tesuji:stdout-handle, r=Nilstrieb addaaed f32: use constants instead of reassigning a dummy value as PI 8a6d10d use proper name instead of magic number 64671fa Stabilize `slice_flatten` 4014081 Auto merge of rust-lang#125070 - tbu-:pr_set_extension_panic, r=jhpratt f54c557 Auto merge of rust-lang#125518 - saethlin:check-arguments-new-in-const, r=joboet a4bac2b It seems that anchor names are implicitly all lowercase 7cddfd4 Simplify the `unchecked_sh[lr]` ub-checks a bit 805f56b Fix URL target, it's in the module not the type. 3b77f19 github showed that weird. 65726c0 correct for copy paste errors when fixing wrapping. 613145f Resolve rust-lang#124870 (comment) 9677b70 revert to the inconsistent paragraph wrapping. bf3ca98 Rollup merge of rust-lang#124667 - newpavlov:stabilize_div_duration, r=jhpratt 4af28c4 Rollup merge of rust-lang#123803 - Sp00ph:shrink_to_fix, r=Mark-Simulacrum 79e1daf Rollup merge of rust-lang#122986 - taiki-e:aix-c-char, r=Mark-Simulacrum 0b13a6c Rollup merge of rust-lang#121377 - pitaj:lazy_cell_fn_pointer, r=dtolnay b1ac7da Stabilise ip_bits feature 23bb5bc Auto merge of rust-lang#121571 - clarfonthey:unchecked-math-preconditions, r=saethlin c11b36a Rollup merge of rust-lang#125527 - programmerjake:patch-2, r=workingjubilee d6812d5 Rollup merge of rust-lang#125498 - zmodem:avx512er, r=workingjubilee f52291b Rollup merge of rust-lang#125478 - Urgau:check-cfg-config-bump-stage0, r=Mark-Simulacrum 38dcab9 Rollup merge of rust-lang#125271 - RalfJung:posix_memalign, r=workingjubilee 29a1b3b Move the checks for Arguments constructors to inline const 5257f3f Add manual Sync impl for ReentrantLockGuard 078095a std: make TLS accessors closures that return pointers 567096d Rollup merge of rust-lang#125497 - meesfrensel:patch-1, r=calebzulawski dd828cf Stop using the avx512er and avx512pf x86 target features 749b376 Change pedantically incorrect OnceCell/OnceLock wording 2b1602a Fix some SIMD intrinsics documentation 59b5617 Remove now outdated comment since we bumped stage0 6d1cdb5 Add assert_unsafe_precondition to unchecked_{add,sub,neg,mul,shl,shr} methods ce29159 Simplify environment variable examples 8fa3f60 Document behavior of `create_dir_all` wrt. empty path dd196e7 Document platform-specifics for `Read` and `Write` of `File` a71d9d9 Fix c_char on AIX ce3db1b fix typo 4913884 use posix_memalign on most Unix targets 86878b9 Fix linkchecker doc errors 1bf7a30 Turn bare links into automatic links 736b225 Move BufGuard impl outside of function a44e7b3 Fix tidy errors 36af639 Replace sort implementations 48a835b Divide float nanoseconds instead of seconds f84d57f Don't use `T` with both Result and Option, improve explanation. 88338ff Add `size_of`, `size_of_val`, `align_of`, and `align_of_val` to the prelude 5d56638 Panic if `PathBuf::set_extension` would add a path separator 7db52fc Add fn allocator method to rc/sync::Weak. Relax Rc<T>/Arc<T>::allocator to allow unsized T. 43bf016 Suggest borrowing on fn argument that is `impl AsRef` 50d5af4 use teletype on the attribute name 43ae187 Some Result combinations work like an Option. d0c07aa Move `test_shrink_to_unwind` to its own file. d77b1cc Fix `VecDeque::shrink_to` UB when `handle_alloc_error` unwinds. 0342284 Use `CURRENT_RUSTC_VERSION` 9eb77db Stabilize `div_duration` 7a6ddb3 Lift the probe code of `copy_file_range` into a function f5305c1 Add missing .into_iter() 2a5af32 Extend the example code and assert the result 678e5a0 Add "safety" comment ad38f9b unroll first iter of checked_ilog loop to save one multiplication dbd03d4 Stabilize `BinaryHeap::as_slice` 08f761f DOC: Add FFI example for slice::from_raw_parts() 30c876c Be stricter with `copy_file_range` probe results fe05246 Less syscalls for the `copy_file_range` probe 511fe47 Stabilize `LazyCell` and `LazyLock` (`lazy_cell`) git-subtree-dir: library git-subtree-split: a2cf636
a2cf636 Rollup merge of rust-lang#127813 - ChrisDenton:win-futex, r=joboet aeae332 Rollup merge of rust-lang#127763 - ChrisDenton:safe-unsafe-unsafe, r=tgross35 e0ea701 Prevent double reference in generic futex 417b61f Narrow the scope of the ReadFile unsafe block b4d1392 forbid(unsafe_op_in_unsafe_fn) in sys/os_str f431b51 Rollup merge of rust-lang#127836 - workingjubilee:forbid-unsafe-ops-in-xous-uefi, r=tgross35 0a024bd Rollup merge of rust-lang#127833 - risc0:erik/zkvm-deny-unsafe, r=workingjubilee 0299bb5 Rollup merge of rust-lang#127807 - ChrisDenton:win-parking, r=joboet 61af010 Rollup merge of rust-lang#127792 - workingjubilee:read-unaligned-is-dwarfier, r=joboet d3cf2e1 Rollup merge of rust-lang#127444 - Sky9x:cstr-bytes-iter, r=dtolnay 12075d1 Rollup merge of rust-lang#126776 - nnethercote:rustfmt-use-pre-cleanups-2, r=cuviper 00d603f Rollup merge of rust-lang#126271 - diondokter:dec2flt-skip-fast-path, r=tgross35 8490c84 Rollup merge of rust-lang#125206 - mgeisler:simplify-std-env-vars, r=jhpratt,tgross35 a752e3b uefi: Forbid unwrapped unsafe in platform modules 32a1b07 Cfg nit e189d3b xous: Forbid unwrapped unsafe in platform modules 7ddd7f8 zkvm: add `#[forbid(unsafe_op_in_unsafe_fn)]` in `stdlib` 0723962 Adjust some comments on individual `use` declarations. 4320ba0 Avoid comments that describe multiple `use` items. 1aeddb0 Merge some `core::iter` entries. 7a0b2fb Add unsafe blocks in unsafe Thread::new 8e76b15 Remove `slice_to_end` e8527cd std: unwrapped unsafe is VERBOTEN! 5e4edba Rollup merge of rust-lang#127789 - Sword-Destiny:master, r=petrochenkov 1b631e5 Use futex.rs for Windows thread parking d59f862 std: Use read_unaligned for reading DWARF 686f75b Rollup merge of rust-lang#127047 - tspiteri:f128-aconsts-lsd, r=tgross35 8b1d874 deny unsafe_op_in_unsafe_fn for teeos f8bb325 clean unsafe op in unsafe fn b597017 clean unsafe op in unsafe fn 9fd9c61 clean unsafe op in unsafe fn e0c57e4 delete #![allow(unsafe_op_in_unsafe_fn)] 704f56f `impl Send + Sync` and override `count` for the `CStr::bytes` iterator a778c83 Auto merge of rust-lang#127777 - matthiaskrgr:rollup-qp2vkan, r=matthiaskrgr 6535591 Rollup merge of rust-lang#124921 - RalfJung:offset-from-same-addr, r=oli-obk ac443f2 Auto merge of rust-lang#127020 - tgross35:f16-f128-classify, r=workingjubilee 57937d7 allow(unsafe_op_in_unsafe_fn) on some functions 94b381d Some Windows functions are safe f3bb34b Deny more windows unsafe_op_in_unsafe_fn eae9451 Rollup merge of rust-lang#127750 - ChrisDenton:safe-unsafe-unsafe, r=workingjubilee 6257980 Rollup merge of rust-lang#127744 - workingjubilee:deny-unsafe-op-in-std, r=jhpratt 05614f3 Rollup merge of rust-lang#127712 - ChrisDenton:raw-types, r=workingjubilee 14c24b1 Mark some `f16` and `f128` functions unstably const 1b70afd Move safety comment outside unsafe block 3c286d5 Make os/windows default to deny unsafe in unsafe d96ed86 Make pal/windows default to deny unsafe in unsafe bb3f60f Fix Windows 7 9fc6710 Auto merge of rust-lang#127719 - devnexen:math_log_fix_solill, r=Amanieu decdb06 Don't re-export `c_int` from `c` a1a1c6a Remove DWORD 7d18991 Remove ULONG d89bce6 Remove PSRWLOCK d3205de Remove LPVOID 68ac381 Remove LPSECURITY_ATTRIBUTES 6d037b8 Remove LPOVERLAPPED 61f617d Remove LPCVOID 8a25371 Remove SIZE_T cd51de1 Remove CHAR 00a5b3b Remove USHORT d621d21 Remove LPWSTR 0b22ecb Remove UINT 18adcef Remove LONG 4eaaf7d Remove LARGE_INTEGER aa45985 Remove NonZeroDWORD d7aa7cf Auto merge of rust-lang#127732 - GrigorenkoPV:teeos-safe-sys-init, r=Amanieu 5ff7b40 std: Unsafe-wrap std::sync e8fa3ef std: Unsafe-wrap in Wtf8 impl 8c3a9c1 std: Unsafe-wrap std::io 91b7331 std: Directly call unsafe {un,}setenv in env 8c75111 std: Unsafe-wrap OSStr{,ing}::from_encoded_bytes_unchecked 4679f9a std: Unsafe-wrap HashMap::get_many_unchecked_mut ac0fd27 std: deny(unsafe_op_in_unsafe_fn) but allow sites f710e38 Add `classify` and related methods for `f16` and `f128` 009660d std: removes logarithms family function edge cases handling for solaris. 3492a6b Auto merge of rust-lang#127728 - matthiaskrgr:rollup-ercdbjd, r=matthiaskrgr 0873299 sys::init is not unsafe on teeos 6c4029a Rollup merge of rust-lang#127592 - tesuji:patch-1, r=Mark-Simulacrum 7cd8086 Auto merge of rust-lang#125935 - madsmtm:merge-os-apple, r=workingjubilee cfb0556 Merge Apple `std::os` extensions modules into `std::os::darwin` 54435f7 Rollup merge of rust-lang#127704 - workingjubilee:fixup-better-than, r=ChrisDenton e122949 Auto merge of rust-lang#127706 - workingjubilee:rollup-d07ij30, r=workingjubilee 3033120 Rollup merge of rust-lang#127659 - saethlin:manually-drop-bufwriter, r=joboet e9eb7de Rollup merge of rust-lang#127446 - zachs18:miri-stdlib-leaks-core-alloc, r=Mark-Simulacrum 3ad2560 Rollup merge of rust-lang#127370 - ChrisDenton:win-sys, r=Mark-Simulacrum 05bf6bc doc: Suggest `str::repeat` over `iter::repeat().take().collect()` 96e8ba7 Fix minor typos in std::process doc on Win argv 6b67c66 Auto merge of rust-lang#126958 - dtolnay:u32char, r=Mark-Simulacrum 591aaaf std::unix::fs: removing, now useless, layers predating macOs 10.10. 94ec6e7 Auto merge of rust-lang#127674 - jhpratt:rollup-0dxy3k7, r=jhpratt a7c1f60 Rollup merge of rust-lang#127668 - spencer3035:improve-slice-doc, r=jhpratt 1e49e05 Rollup merge of rust-lang#127661 - eduardosm:stabilize-io_slice_advance, r=cuviper c79e003 Auto merge of rust-lang#127397 - jyn514:multi-thread-panic-hook, r=workingjubilee 206678c Auto merge of rust-lang#126606 - zachs18:patch-2, r=joboet 1bb0350 Updated slice documentation c8b79dd Use ManuallyDrop in BufWriter::into_parts 6e26e27 Stabilize io_slice_advance cac6664 Rename the internal `const_strlen` to just `strlen` 39647ab fix interleaved panic output 0476fc4 Rollup merge of rust-lang#127433 - dtolnay:conststrlen, r=workingjubilee f66bd5f Rollup merge of rust-lang#126827 - the8472:pidfd-spawn, r=workingjubilee 1e5cd21 Rollup merge of rust-lang#124980 - zachs18:rc-allocator, r=Amanieu 949f0d6 Add instability attribute on private const_strlen function 20bfac6 Rollup merge of rust-lang#127422 - greaka:master, r=workingjubilee f937ef1 Rollup merge of rust-lang#127599 - tgross35:lazy_cell_consume-rename, r=workingjubilee fde7fd2 Rollup merge of rust-lang#127588 - uweigand:s390x-f16-doctests, r=tgross35 ed47f98 Rollup merge of rust-lang#127572 - tbu-:pr_debug_event_nonpacked, r=jhpratt e5c8b85 Rollup merge of rust-lang#124599 - estebank:issue-41708, r=wesleywiser b71b538 Rename `lazy_cell_consume` to `lazy_cell_into_inner` 9efc1cb core: Limit remaining f16 doctests to x86_64 linux a18fbd0 Rollup merge of rust-lang#127554 - ferrocene:tshepang-add-missing-attribute, r=pietroalbini e419147 Don't mark `DEBUG_EVENT` struct as `repr(packed)` 4552576 Auto merge of rust-lang#126690 - andyolivares:feature/show_window, r=dtolnay 6f6e343 Rollup merge of rust-lang#127091 - Sky9x:fused-error-sources-iter, r=dtolnay 0d64105 Fixed doc links 4fb7b22 Few changes to doc comments. Added tracking issue number. fe62f6f Exposing STARTUPINFOW.wShowWindow in CommandExt (show_window function) to control how a new process should display its window (normal, minimized, maximized, etc) 7d20047 do not run test where it cannot run c5f1c76 Auto merge of rust-lang#127235 - martn3:no-mips-f16, r=tgross35,scottmcm 3fefa04 Rollup merge of rust-lang#127460 - Borgerr:clarify-drop-comment, r=jhpratt 895175a Rollup merge of rust-lang#127355 - aceArt-GmbH:126475, r=oli-obk 57cea32 Rollup merge of rust-lang#120248 - WaffleLapkin:bonk-ptr-object-casts, r=compiler-errors,oli-obk,lnicola e74955e Attempt to fix CI e466bf5 Rollup merge of rust-lang#127367 - ChrisDenton:run-sync, r=Nilstrieb 90504f8 Rollup merge of rust-lang#126921 - workingjubilee:outline-va-list, r=Nilstrieb c6b3f3d Auto merge of rust-lang#127454 - matthiaskrgr:rollup-k3vfen2, r=matthiaskrgr 29d7923 Move/change declaration of `mod exit_guard;` ecc9025 clarify `sys::unix::fd::FileDesc::drop` comment (rust-lang#66876) 35c5a45 Rollup merge of rust-lang#127447 - RalfJung:once_lock_miri, r=joboet 9f7100d Rollup merge of rust-lang#127354 - nicholasbishop:bishop-sized-doc, r=Nilstrieb ee06e7d Rollup merge of rust-lang#127297 - the8472:path-new-hash, r=Nilstrieb 2206c6b Rollup merge of rust-lang#127189 - GrigorenkoPV:linkedlist-cursor-list, r=Nilstrieb 41bcc36 Rollup merge of rust-lang#127179 - tgross35:typeid-debug-hex, r=Nilstrieb 7177ac8 once_lock: make test not take as long in Miri 294d87f Remove non-focused memory leak in `std` doctest for Miri. a86fd0f Specialize `TrustedLen` for `Iterator::unzip()` 5515bba Mitigate focused memory leaks in `core` doctests for Miri. 3a0fe26 Remove non-focused memory leaks in `core` doctests for Miri. 20d6cb3 Mitigate focused memory leaks in `alloc` doctests for Miri. cac8902 Remove non-focused memory leaks in `alloc` doctests for Miri. bcdc8e8 Stabilize const_cstr_from_ptr (CStr::from_ptr, CStr::count_bytes) a48f566 offset_from intrinsic: always allow pointers to point to the same address 9919a83 Mark format! with must_use hint 0907955 as_simd: fix comment to be in line with 507583a (rust-lang#121201) 5569ece Rollup merge of rust-lang#127275 - RalfJung:offset-from-isize-min, r=Amanieu 2337ab5 Rollup merge of rust-lang#125751 - pitaj:new_range_api, r=jhpratt ad4fde6 Rollup merge of rust-lang#127363 - GuillaumeGomez:improve-fmt-code-readability, r=Amanieu 3eeca5f Rollup merge of rust-lang#127107 - mu001999-contrib:dead/enhance-2, r=pnkfelix 1b5e5ac Rollup merge of rust-lang#123600 - tisonkun:path_with_extension, r=dtolnay 5e9d445 Attempt to fix CI d8965d3 add `new_range_api` for RFC 3550 ca0f659 Move exit guard from sys::common::exit_guard to sys::exit_guard. cf300a7 Update library/std/src/sys/pal/common/exit_guard.rs ba4c71a add unit tests for extra extension feature 55fc20b update comments 6b7a259 Add experimental raw-dylib feature to std c452e62 Use windows_targets macro for alloc 521c81a Run alloc sync tests 2fcdebb Improve readability of some fmt code examples 625bcc4 Rollup merge of rust-lang#127320 - ChrisDenton:win-sys, r=Mark-Simulacrum f8caf5f Rollup merge of rust-lang#127214 - bjorn3:miri_native_unwind, r=oli-obk 1862054 Describe Sized requirements for mem::offset_of e26c881 impl FusedIterator and a size hint for the error sources iter 8f1c664 core: erase redundant stability attrs in va_list 60c33a5 library: outline VaList into ffi::va_list 03d11c2 Auto merge of rust-lang#126171 - RalfJung:simd_bitmask_multibyte, r=workingjubilee 297850a Add more checks for pointers with vtable meta f58a3d6 Improve dead code analysis 515bd30 Add comments to windows_targets.rs 89d2de0 Update windows-bindgen to 0.58.0 0860a04 also remove redundant requirements from offset() 6f80604 offset_from: "the difference must fit in an isize" is a corollary de4f5c2 Rollup merge of rust-lang#127303 - cuishuang:master, r=jhpratt 56c73c3 Rollup merge of rust-lang#127195 - biabbas:vxworks_cleanup, r=jhpratt 5dfdef7 Rollup merge of rust-lang#126792 - wooden-worm:master, r=Mark-Simulacrum 4df2059 chore: remove repeat words acbefbb impl PathBuf::add_extension and Path::with_added_extension 13d5a42 Auto merge of rust-lang#127226 - mat-1:optimize-siphash-round, r=nnethercote ed3d487 stir the hash state a little to avoid prefix collisions 5ca124f Add more test cases for path comparisons 33bc557 Add test case demonstrating equality of paths "foo/bar" and "foobar" 079f999 Move unique_thread_exit call to lang_start_internal so it is not in a generic function, and wrap it in `catch_unwind` 47d0cbc Remove Miri special-case 596be7e Use pthread_t instead of numeric thread id 2e90f6f Use libc::pause instead of std::thread::park in wait-for-exit loop 1fd23e8 core: Limit four f16 doctests to x86_64 linux e6f15c5 std: Set has_reliable_f16 to false for MIPS targets in build.rs 67535b6 library/std/build.rs: "powerpc64le" is not a target_arch 5b0d82f Rollup merge of rust-lang#127204 - dimpolo:stabilize_atomic_bool_fetch_not, r=jhpratt b184a84 Rollup merge of rust-lang#123588 - tgross35:stabilize-assert_unchecked, r=dtolnay 2a81053 Fall back on remove dir implementation for vxworks a8b6d0a Rollup merge of rust-lang#127230 - hattizai:patch01, r=saethlin 4d7cbb2 chore: remove duplicate words 645e9f2 Optimize SipHash by reordering compress instructions c5ab1f0 Rollup merge of rust-lang#127128 - elomatreb:elomatreb/stabilize-duration_abs_diff, r=joboet f090672 Rollup merge of rust-lang#126732 - StackOverflowExcept1on:master, r=m-ou-se 1dc4f05 Use the native unwind function in miri where possible 4fff335 Avoid MIR bloat in inlining 4385efd Stabilize atomic_bool_fetch_not 6c3359c Rollup merge of rust-lang#127182 - danielhuang:patch-4, r=Nilstrieb a0a438a Remove unqualified import io:: Error for vxworks as all Error references are qualified in process_vxworks.rs 2a65e9f Auto merge of rust-lang#127026 - Urgau:cleanup-bootstrap-check-cfg, r=Kobzol bba2200 LinkedList's Cursor: method to get a ref to the cursor's list 40a9be9 Update ip_addr.rs 986dbd1 Print `TypeId` as hex for debugging f27723e Rollup merge of rust-lang#127069 - Sky9x:fmt-pointer-use-addr, r=Nilstrieb b068fce Rollup merge of rust-lang#126895 - betelgeuse:improve_simd_gather_documentation, r=Amanieu a6b22e9 Rollup merge of rust-lang#127134 - tgross35:typeid-debug, r=Nilstrieb 7f0bb45 Rollup merge of rust-lang#126906 - GrigorenkoPV:fixme-split_at_first, r=Mark-Simulacrum b0feb54 Rollup merge of rust-lang#126705 - safinaskar:panic, r=Mark-Simulacrum b8977f5 Auto merge of rust-lang#127133 - matthiaskrgr:rollup-jxkp3yf, r=matthiaskrgr affa2f9 Print `TypeId` as a `u128` for `Debug` 05a472c Rollup merge of rust-lang#127122 - TDecking:div_ceil, r=Nilstrieb 9b3a511 Auto merge of rust-lang#120639 - fee1-dead-contrib:new-effects-desugaring, r=oli-obk f96a321 Stabilize `duration_abs_diff` bf9096f small correction to fmt::Pointer impl 171f5db Auto merge of rust-lang#127121 - GuillaumeGomez:rollup-xjjjckn, r=GuillaumeGomez 50a6646 Remove uneccessary condition in `div_ceil` 7914389 Updated docs on `#[panic_handler]` in `library/core/src/lib.rs` 1858bdc Rollup merge of rust-lang#127073 - Sky9x:unnecessary-seqcst, r=Nilstrieb aaed209 Rollup merge of rust-lang#127072 - Sky9x:docs-includes-vs-does-include, r=scottmcm e5a577d Auto merge of rust-lang#127119 - RalfJung:miri-sync, r=RalfJung 77a5b51 Rollup merge of rust-lang#126953 - joboet:lazy_key, r=jhpratt 8641f6a Merge from rustc 402992c Rollup merge of rust-lang#127071 - Sky9x:remove-ptr-to-from-bits, r=scottmcm 0a2d8e4 Rollup merge of rust-lang#127070 - Sky9x:unit-const-param-ty, r=BoxyUwU 663f3d5 Rollup merge of rust-lang#127055 - shepmaster:hash-finish-must-use, r=dtolnay 729a10a address review comments db228b8 general fixups and turn `TODO`s into `FIXME`s 47492c9 Implement `Min` trait in new solver cc4a029 implement new effects desugaring d6fadf5 std: add safety comments 8c3c7dc Rollup merge of rust-lang#126970 - DaniPopes:simplify-str-clone_into, r=cuviper ae98528 Rollup merge of rust-lang#126956 - joboet:fmt_no_extern_ty, r=RalfJung 652f0b8 Merge from rustc 48dc678 Remove unnecessary SeqCst in `impl fmt::Pointer for AtomicPtr` e6e5e84 docs: say "includes" instead of "does include" a722d39 Remove (deprecated & unstable) {to,from}_bits pointer methods 2ed9c9f add () to the marker_impls macro for ConstParamTy fdfe014 Mark `Hasher::finish` as #[must_use] 2bd2069 fix least significant digits of f128 associated constants 8db57c2 core: improve comment 1f8c8f4 Cleanup bootstrap check-cfg 6c38c60 Rollup merge of rust-lang#126980 - Borgerr:fix-extendfromslice-check, r=workingjubilee a2dc9b5 Rollup merge of rust-lang#126929 - nnethercote:rm-__rust_force_expr, r=oli-obk cf231e8 Merge from rustc a8b311e Auto merge of rust-lang#126608 - tgross35:f16-f128-library, r=Mark-Simulacrum 4788a93 std: test a variety of ways to extend a Wtf8Buf 57c2de8 set self.is_known_utf8 to false in extend_from_slice c14a130 Rollup merge of rust-lang#126879 - the8472:next-chunk-filter-drop, r=cuviper f6fdef3 core: avoid `extern` types in formatting infrastructure 43a865a fix UI test, simplify error message ff33a66 regression test for leaks in the the Filter::next_chunk implementation f90972a add comments explaining optimizations for Filter::next_chunk 4039a7f fix Drop items getting leaked in Filter::next_chunk 0351c53 Simplify `str::clone_into` 5aedb8a Rollup merge of rust-lang#126946 - cyrgani:patch-1, r=compiler-errors 5664da3 Rollup merge of rust-lang#126927 - workingjubilee:vaargsafe-is-unsafe, r=joboet 9273373 Rollup merge of rust-lang#126885 - Borgerr:rm_internal_pathbuf_asmutvec, r=workingjubilee 46074aa Rollup merge of rust-lang#126302 - mu001999-contrib:ignore/default, r=michaelwoerister 0fe5362 Stabilize const unchecked conversion from u32 to char 9dcaa15 std: separate TLS key creation from TLS access 5d08a54 Detect unused structs which derived Default e6c45e4 `PathBuf::as_mut_vec` removed and verified for UEFI and Windows platforms rust-lang#126333 7cec6ef remove references to `PathBuf::as_mut_vec` in `PathBuf::_set_extension` 37f78f4 inner truncate methods for UEFI platforms cfb8021 rust-lang#126333 remove `PathBuf::as_mut_vec` reference at top of `PathBuf::_push` 3edb521 simd_bitmask intrinsic: add a non-power-of-2 multi-byte example 2ddf794 Add missing slash in const_eval_select doc comment 19cfdb2 Add tests for `f16` and `f128` 561daff Add more `f16` and `f128` library functions and constants 6cb3d34 Add doctests to existing `f16` and `f128` functions b0e0503 Add build.rs config for reliable `f16` and `f128` 028026b Remove `__rust_force_expr`. 1069a68 core: VaArgSafe is an unsafe trait a451b2a Auto merge of rust-lang#126852 - scottmcm:more-checked-math-tweaks, r=Amanieu 17d03b9 Check that we get somewhat sane PIDs when spawning with pidfds 4c9a96e more fine-grained feature-detection for pidfd spawning bf06e43 document safety properties of the internal Process::new constructor 9212236 use pidfd_spawn for faster process creation when pidfds are requested 4815f29 document the cvt methods 1bd207e Rollup merge of rust-lang#126904 - GrigorenkoPV:nonzero-fixme, r=joboet 2676918 Rollup merge of rust-lang#125575 - dingxiangfei2009:derive-smart-ptr, r=davidtwco 9dcffa5 Rollup merge of rust-lang#125082 - kpreid:const-uninit, r=dtolnay cf34f71 Replace `MaybeUninit::uninit_array()` with array repeat expression. e51d8a2 Auto merge of rust-lang#126523 - joboet:the_great_big_tls_refactor, r=Mark-Simulacrum 2b8c7a3 Small fixme in core now that split_first has no codegen issues 532304b Small fixme in core now that NonZero is generic 5ae0378 std: fix wasm builds ae08c58 Rollup merge of rust-lang#126213 - zachs18:atomicbool-u8-i8-from-ptr-alignment, r=Nilstrieb 071e80d Fix simd_gather documentation 0c4a661 wasm64 build with target-feature=+simd128,+atomics 36a20f7 Reword docs for `f32` and `f64` 6839ec5 Extract repeated constants from `f32` and `f64` source c26bd79 Rollup merge of rust-lang#126854 - devnexen:std_unix_os_fallback_upd, r=Mark-Simulacrum 828e528 Rollup merge of rust-lang#126807 - devnexen:copy_file_macos_simpl, r=Mark-Simulacrum e4bc79d Also get `add nuw` from `uN::checked_add` 7c83a04 SmartPointer derive-macro f0b95fc fix build 12ec5b7 Rollup merge of rust-lang#126783 - tguichaoua:fix_tcplistener_into_incoming_issue_number, r=workingjubilee eb265d0 std::unix::os::home_dir: fallback's optimisation. a48f3d6 Auto merge of rust-lang#126838 - matthiaskrgr:rollup-qkop22o, r=matthiaskrgr ec8af4b Rollup merge of rust-lang#126552 - fee1-dead-contrib:rmfx, r=compiler-errors 6d6ba92 Rollup merge of rust-lang#126140 - eduardosm:stabilize-fs_try_exists, r=Amanieu e1edea8 Auto merge of rust-lang#116113 - kpreid:arcmut, r=dtolnay 49d4fdb Generalize `{Rc,Arc}::make_mut()` to unsized types. 5ac719e Replace `WriteCloneIntoRaw` with `CloneToUninit`. a4ca461 Add `core::clone::CloneToUninit`. 7836843 Auto merge of rust-lang#126750 - scottmcm:less-unlikely, r=jhpratt 934e728 Auto merge of rust-lang#124101 - the8472:pidfd-methods, r=cuviper c2ec99b to extract a pidfd we must consume the child f7cf777 Add PidFd::{kill, wait, try_wait} d688595 std::unix::fs: copy simplification for apple. bb602cf Auto merge of rust-lang#125853 - tesuji:promote-fail-fast, r=cjgillot 1f17936 update intrinsic const param counting 5e7ce0b Remove `feature(effects)` from the standard library 8902c17 Auto merge of rust-lang#126781 - matthiaskrgr:rollup-5u4pens, r=matthiaskrgr 54eaed7 fix issue number 2e01ae3 Rollup merge of rust-lang#126613 - tgross35:log-test-update, r=cuviper 306d7bf Stop using `unlikely` in `strict_*` methods a8ab1ce [GVN] Add tests for generic pointees with PtrMetadata a272844 Don't perform mitigation for thread-unsafe libc::exit under Miri. 5035a17 fix rustdoc URL 1530977 On `target_os = "linux"`, ensure that only one Rust thread calls `libc::exit` or returns from `main`. 7e940ba Auto merge of rust-lang#126578 - scottmcm:inlining-bonuses-too, r=davidtwco 9a945fd Auto merge of rust-lang#124032 - Voultapher:a-new-sort, r=thomcc dbaf524 Rollup merge of rust-lang#126737 - fee1-dead-contrib:rm-const-closures, r=compiler-errors 0f6922d Fix wrong big O star bracing in the doc comments 7bf7f57 Remove `feature(const_closures)` from libcore b4e2e4a Auto merge of rust-lang#126736 - matthiaskrgr:rollup-rb20oe3, r=matthiaskrgr 0829ab8 Rollup merge of rust-lang#126717 - nnethercote:rustfmt-use-pre-cleanups, r=jieyouxu f1c9c80 Rollup merge of rust-lang#126711 - GKFX:const-option-as-slice, r=oli-obk e057232 Auto merge of rust-lang#116088 - nbdd0121:unwind, r=Amanieu,RalfJung 13ea648 Stabilize `PanicInfo::message()` and `PanicMessage` b6a3858 Rollup merge of rust-lang#126703 - the8472:on-blackbox-crypto-use, r=scottmcm 847726d Shrink some slice iterator MIR 1ba2fa4 Stabilize `hint_assert_unchecked` 9d0041c Update documentation for `hint::assert_unchecked` e3e84a7 Add blank lines after module-level `//` comments. 36ad0db Add blank lines after module-level `//!` comments. 4e67110 Convert some module-level `//` and `///` comments to `//!`. 669d6fc Make Option::as_[mut_]slice const 4ae781c reword the hint::blackbox non-guarantees dd7c901 core: add tracking issue for `array::repeat` 5ddeaca core: simplify implementation of `array::repeat`, address other nits 62f7a4e core: implement `UncheckedIterator` for `RepeatN` 387fd1f core: implement `array::repeat` 3fc18d0 Add a hack to prevent proc_macro misopt in CI a95938d Stabilise c_unwind 2a5e5b8 Rollup merge of rust-lang#125787 - Oneirical:infinite-test-a-novel, r=jieyouxu 227994d try implementing suggestions 78867ab run_make_support nm implementation + bin-emit-no-symbols rmake rewrite 76e61bf Replace `move||` with `move ||` in `compiler/` and `library/` 13a31b6 Auto merge of rust-lang#126330 - m-ou-se:panic-message-type, r=Amanieu 42802a3 Print the tested value in int_log tests ea1ab74 Add missing CopyMarker impl 384c205 Revert panic_safe test changes ca458ba Add PanicMessage type for PanicInfo::message(). 2238945 Add tracking issue to async_drop API 0b3227b std: rename module for clarity 2b9a4f3 std: update TLS module documentation 00d4964 std: use the `c_int` from `core::ffi` instead of `libc` bd3b9ec std: simplify `#[cfg]`s for TLS 78eaad5 Fix unintended regression for Freeze + Copy types 8cd20cb Auto merge of rust-lang#126569 - jieyouxu:rollup-1uvkb2y, r=jieyouxu c1acd7a Rollup merge of rust-lang#126531 - slanterns:error_provider, r=workingjubilee cd1c998 Rollup merge of rust-lang#126468 - RalfJung:euclid, r=Mark-Simulacrum 2730879 Rollup merge of rust-lang#126346 - hermit-os:fd, r=Amanieu ebbce69 Rollup merge of rust-lang#126288 - x4exr:patch-1, r=dtolnay 4aa43c7 Auto merge of rust-lang#125720 - folkertdev:optimize_for_size-ptr-rotate, r=Amanieu 7912329 doc: Added commas where needed 48e1578 Fix doc-link issue 489dfce Remove reliance on const_trait in sort implementations 89b5784 std: move `sys_common::backtrace` to `sys` 90dbe22 use rustc-dep-of-std in panic_unwind 6832ad3 Rollup merge of rust-lang#126539 - lukaslueg:patch-1, r=jhpratt 04e46c2 Rollup merge of rust-lang#125112 - tbu-:pr_create_dir_all_empty, r=dtolnay e77b474 Update `Arc::try_unwrap()` docs 83c530f Apply review comments ae7f43e Auto merge of rust-lang#126299 - scottmcm:tune-sliceindex-ubchecks, r=saethlin 339f266 Redo SliceIndex implementations 2388743 update comment 4cc1c37 Rollup merge of rust-lang#126229 - ChrisDenton:bindgen, r=Mark-Simulacrum b40c54b std: refactor the TLS implementation 7e3c4f8 Auto merge of rust-lang#126518 - matthiaskrgr:rollup-wb70rzq, r=matthiaskrgr 2678593 std: suggest OnceLock over Once b509ed2 Polish `std::path::absolute` documentation. c3c1757 Auto merge of rust-lang#126473 - matthiaskrgr:rollup-8w2xm09, r=matthiaskrgr a135342 Rollup merge of rust-lang#126285 - kpreid:unique-rc, r=dtolnay 7fafb6d Rollup merge of rust-lang#126266 - tbu-:pr_doc_alloc_default_system, r=jhpratt afee9f5 Rollup merge of rust-lang#126135 - hermit-os:fuse, r=jhpratt 4a32b4b Rollup merge of rust-lang#123769 - dtolnay:literal, r=fee1-dead 3909d51 div_euclid, rem_euclid: clarify/extend documentation ca52a2c Rollup merge of rust-lang#126351 - devnexen:to_sol11_upd, r=ChrisDenton 369fa55 Rollup merge of rust-lang#126402 - firefighterduck:fix-unsafe-precon-copy, r=Nilstrieb 2acb995 Rollup merge of rust-lang#126390 - Kriskras99:master, r=Nilstrieb b3c1dcb Rollup merge of rust-lang#126360 - compiler-errors:uplift-structural-traits, r=lcnr bdb9aa2 Rollup merge of rust-lang#123726 - jieyouxu:command-new-docs, r=Nilstrieb 307d1af Remove superfluous escaping from byte, byte str, and c str literals 78d94ee LangItem-ify Coroutine trait in solvers 891f00c fix wrong assert_unsafe_precondition message for core::ptr::copy 9adf702 Rollup merge of rust-lang#126384 - RalfJung:is_none_or, r=workingjubilee 02cb1e9 Rollup merge of rust-lang#126347 - slanterns:try_simplify, r=scottmcm fa2a54a Fix wording in {checked_}next_power_of_two 3ef894f add tracking issue for is_none_or a5fe19d std::unix::fs::link using direct linkat call for Solaris and macOs. 9921cd2 Rollup merge of rust-lang#126328 - RalfJung:is_none_or, r=workingjubilee 93583a6 Simplify `try_*` on `Iterator` 47090b1 export std::os::fd module on HermitOS 17c90d8 Auto merge of rust-lang#126273 - pietroalbini:pa-bootstrap-update, r=Mark-Simulacrum b482e06 add is_none_or 027c82e Rollup merge of rust-lang#126322 - m-ou-se:panicinfo-and-panicinfo-2, r=RalfJung db03ec6 Rollup merge of rust-lang#126242 - yaahc:simplify-provider, r=jhpratt 956efde Rollup merge of rust-lang#126039 - dpaoliello:arm64ecbuild, r=davidtwco 3acb41f Fix deprecated version. bc5e618 Update doc comment on PanicInfo::message(). 249d63e Use payload_as_str instead of two downcasts. 15677e9 Fix deprecation version. a239d5b Clarify doc comment. 209f8c8 Auto merge of rust-lang#126319 - workingjubilee:rollup-lendnud, r=workingjubilee 6ec98e7 Rollup merge of rust-lang#126305 - workingjubilee:fix-os-string-to-string-utf8-invariant, r=joboet 80467da Rollup merge of rust-lang#126287 - nnethercote:reformat-cranelift-patch, r=bjorn3 5760a4e Rollup merge of rust-lang#126281 - ChrisDenton:env, r=jhpratt 439c2ae Rollup merge of rust-lang#126249 - workingjubilee:simplify-try-map-signature, r=scottmcm 23e3dbf Rollup merge of rust-lang#126210 - lolbinarycat:ptr_doctest_assert, r=workingjubilee d469394 Rollup merge of rust-lang#123374 - mgeier:doc-slice-from-raw-parts, r=scottmcm 63fe960 Require any function with a tait in its signature to actually constrain a hidden type e1d73c2 Revert "Rollup merge of rust-lang#125362 - joboet:tait_hack, r=Nilstrieb" 382ed52 Make PathBuf less Ok with adding UTF-16 then `into_string` 548e7a4 Update a cranelift patch file for formatting changes. 8ccbe9e `UniqueRc`: support allocators and `T: ?Sized`. b3dcee6 set_env: State the conclusion upfront f56c023 Rename `std::fs::try_exists` to `std::fs::exists` and stabilize fs_try_exists c16d8b1 Unify guarantees about the default allocator d8fe589 remove cfg(bootstrap) a2ff49b replace version placeholder f72e4a9 Formatting. 0503ca7 Bump deprecation of std's PanicInfo alias to 1.82.0. fea6b03 Add PanicHookInfo::payload_as_str(). 0c8a9e0 Fix display of panic message in recursive panic. 2f85702 Mention core's PanicInfo in error.md. ad0667f Add note on panic payload type. 518722e Downcast panic payload to String too in example. c4dea81 Move deprecation of std::panic::PanicInfo to 1.80.0. 143e4c4 Fix deprecation version. c6749ae Rename std::panic::PanicInfo to PanicHookInfo. db2e055 Formatting. 51f20ac Fix invalid markdown/html. d4b7304 Reorder body of begin_panic for consistency. 373fb60 Impl Display for PanicPayload to simplify things. 224d45c Use unnamed lifetimes for [..]Payload impl blocks. cf984e0 Move downcasting panic payload to str to a function. a18eeac Mark some PanicInfo methods as #[inline] for consistency. 47f359b Remove std::panic::PanicInfo::internal_constructor+set_payload. 701d6a2 Remove core::panic::PanicInfo::internal_constructor. cca865d Update doc comment about core::panicking. 221a90c Fix doc link. d6658a5 Add core::panic::PanicInfo::payload() for compatibility. ca0bfeb Document difference between core and std's PanicInfo. 702405e Split core's PanicInfo and std's PanicInfo. 019e01f Skip fast path for dec2flt when optimize_for_size 483f641 Simplify `[T; N]::try_map` signature 8b6f468 Simplify provider api to improve llvm ir c8170e6 Rollup merge of rust-lang#126212 - SteveLauC:fix/haiku, r=joboet 58bb5cf Rollup merge of rust-lang#126191 - ivan-shrimp:nonzero_doc, r=scottmcm d2f8ddf Bump windows-bindgen to 0.57 02bf152 Clarify `Command::new` behavior if passed programs with arguments e17d6b9 Remove some unused crate dependencies. 5840184 Update docs for AtomicU8/I8. 8791549 fix: build on haiku 263861f Update safety docs for AtomicBool::from_ptr. e25ae61 docs(core): make more const_ptr doctests assert instead of printing cf9de23 Auto merge of rust-lang#126205 - jieyouxu:rollup-s64z5ng, r=jieyouxu c5da756 Rollup merge of rust-lang#126194 - ChrisDenton:winerror, r=Mark-Simulacrum c4bd74c Rollup merge of rust-lang#125253 - sunsided:feature/FRAC_1_SQRT_PI, r=Mark-Simulacrum c9c5d8f Auto merge of rust-lang#126193 - RalfJung:miri-sync, r=RalfJung e39299d Migrate more things to WinError 0df0a38 fix `NonZero` doctest inconsistencies 818933d Rollup merge of rust-lang#126168 - devnexen:current_exe_haiku_simpl, r=ChrisDenton a9bd569 Rollup merge of rust-lang#126146 - devnexen:signal_fbsd, r=ChrisDenton 05812a0 Merge from rustc 56bdaf3 std::unix::os current_exe implementation simplification for haiku. e6c378f Auto merge of rust-lang#125966 - schvv31n:impl_os_string_pathbuf_leak, r=workingjubilee e000ecb std::unix::process adding few specific freebsd signals to be able to id. 67454f5 Rollup merge of rust-lang#126138 - wbk:patch-1, r=lqd ca932c8 Rollup merge of rust-lang#125998 - devnexen:get_mode_illumos, r=Nilstrieb 397e9cb Rollup merge of rust-lang#125951 - slanterns:error_in_core_stabilization, r=Amanieu 4655eca Fix typo in docs for std::pin bb2e2d9 add HermitOS support of vectored read/write operations dd7ccb7 Rollup merge of rust-lang#126089 - wutchzone:option_take_if, r=scottmcm 199da77 Rollup merge of rust-lang#126030 - ChrisDenton:update-wingen-readme, r=Mark-Simulacrum 8a4b11a Rollup merge of rust-lang#124012 - slanterns:as_slice_stabilize, r=BurntSushi 05a92c2 Auto merge of rust-lang#126110 - workingjubilee:backtrace-0.3.73, r=workingjubilee cd73cbe Update backtrace to 0.3.73 c6e53ce Merge from rustc 3b60335 Rollup merge of rust-lang#125606 - diondokter:opt-size-int-fmt, r=cuviper 7014731 fix doc comments about `error_generic_member_access` 3f48168 Stabilize `error_in_core` 20f15f4 fixed memory leaks in PathBuf::leak & OsString::leak tests fa66a61 Rollup merge of rust-lang#126096 - c410-f3r:tests-tests-tests, r=jhpratt 5736944 [RFC-2011] Allow `core_intrinsics` when activated dfddd7e Stabilize Option::take_if 051c6c6 Raise `DEFAULT_MIN_STACK_SIZE` to at least 64KiB 29932f3 Auto merge of rust-lang#126038 - matthiaskrgr:rollup-h4rm3x2, r=matthiaskrgr 149a237 Promote `arm64ec-pc-windows-msvc` to tier 2 4a81c12 Rollup merge of rust-lang#126032 - ChrisDenton:update-docs, r=joboet 7450cf0 Rollup merge of rust-lang#125800 - fortanix:raoul/rte-99-fix_mut_static_task_queue, r=jethrogb ed91d55 Rollup merge of rust-lang#125940 - devnexen:unix_fs_netbsd_get_path, r=cuviper bf7430f Update description of the `IsTerminal` example 91c8b23 Update `./x fmt` command 1632165 Rollup merge of rust-lang#125995 - kpreid:const-uninit-stable, r=Nilstrieb 2c5f1ac Rollup merge of rust-lang#125982 - xTachyon:fix-linked-list, r=jhpratt 80cee25 Rollup merge of rust-lang#123168 - joshtriplett:size-of-prelude, r=Amanieu 28dc012 std::unix::fs::get_mode implementation for illumos/solaris. 14a6f29 Use inline const instead of unsafe to implement `MaybeUninit::uninit_array()`. a2c3406 Use inline const instead of unsafe to construct arrays in `MaybeUninit` examples. f8ee355 Rollup merge of rust-lang#125932 - schvv31n:patch-1, r=lqd 49dad46 Rollup merge of rust-lang#125927 - ferrocene:lw-alloc-unwind-test, r=pietroalbini e38c13a Rollup merge of rust-lang#125696 - workingjubilee:please-dont-say-you-are-lazy, r=Nilstrieb 1764910 Rollup merge of rust-lang#106186 - rossmacarthur:ft/iter-chain, r=Amanieu fbb5246 Make deleting on LinkedList aware of the allocator 85aa4b6 impl OsString::leak & PathBuf::leak b19dd14 Add function `core::iter::chain` 25245bb Rollup merge of rust-lang#125919 - tbu-:pr_fix_typo, r=lqd a415ddd Rollup merge of rust-lang#125504 - mqudsi:once_nominal, r=cuviper ea7e91c Let compiler auto impl `Send` for `Task` 55f3d10 Store `Task::p` as `dyn FnOnce() + Send` 92b604f Pass function for `Thread` as `Send` to `Thread::imp` 175ad22 Auto merge of rust-lang#125525 - joboet:tls_accessor, r=cuviper 31e0022 std::unix::fs::get_path: using fcntl codepath for netbsd instead. 82e24ad Fix typo in the docs of `HashMap::raw_entry_mut` fcc07af Ignore `vec_deque_alloc_error::test_shrink_to_unwind` test on non-unwind targets 6ef46b3 Auto merge of rust-lang#125912 - nnethercote:rustfmt-tests-mir-opt, r=oli-obk 7927138 Remove stray "this" 06d9b0e Add "OnceList" example to motivate OnceLock 6d001c5 Move first OnceLock example to LazyLock 7e47256 Differ LazyLock vs. OnceLock in std::sync overview a198721 Explain LazyCell in core::cell overview ae5598a Reformat `mir!` macro invocations to use braces. 494f05c Rollup merge of rust-lang#125898 - RalfJung:typo, r=Nilstrieb 7881d33 Rollup merge of rust-lang#125884 - Rua:integer_sign_cast, r=Mark-Simulacrum 380d9a3 Rollup merge of rust-lang#121062 - RustyYato:f32-midpoint, r=the8472 81b9e26 Wording of the documentation 1c707b6 typo: depending from -> on fe5adb9 Auto merge of rust-lang#125577 - devnexen:netbsd_stack_min, r=joboet 876458e Implement feature `integer_sign_cast` e929c7f Change f32::midpoint to upcast to f64 cd04000 Auto merge of rust-lang#124294 - tspiteri:ilog-first-iter, r=the8472 7f0b19d stablize `const_binary_heap_constructor` & create an unstable feature `const_binary_heap_new_in` for `BinaryHeap::new_in` 5c2e274 Rollup merge of rust-lang#125730 - mu001999-contrib:clippy-fix, r=oli-obk 9fe1803 Auto merge of rust-lang#124662 - zetanumbers:needs_async_drop, r=oli-obk 8943103 Avoid `mut` and simplify initialization of `TASK_QUEUE` ba98164 Auto merge of rust-lang#124636 - tbu-:pr_env_unsafe, r=petrochenkov bbaaa79 Rollup merge of rust-lang#125746 - jmillikin:duration-from-weeks-typo, r=lqd 1329a62 Rollup merge of rust-lang#125739 - RalfJung:drop-in-place-docs, r=workingjubilee 8883bcf Rollup merge of rust-lang#125342 - tbu-:pr_doc_write, r=ChrisDenton 14d5dcb explain what the open questions are, and add a Miri test for that 6f01ba7 Apply x clippy --fix and x fmt c9c0713 Fix copy-paste error in `Duration::from_weeks` panic message. e935223 Rollup merge of rust-lang#125733 - compiler-errors:async-fn-assoc-item, r=fmease 4feb881 Elaborate about modifying env vars in multi-threaded programs 2500719 Add note about safety of `std::env::set_var` on Windows c4b1ff8 Make `std::env::{set_var, remove_var}` unsafe in edition 2024 07d3009 drop_in_place: weaken the claim of equivalence with drop(ptr.read()) 99eabb4 Add lang item for AsyncFnKindHelper::Upvars a8f468f Add lang item for Future::Output 2e1896e Add lang items for AsyncFn's associated types d82378a [ACP 362] genericize `ptr::from_raw_parts` 619e33b Add FRAC_1_SQRT_2PI doc alias to FRAC_1_SQRT_TAU 1265244 make `ptr::rotate` smaller when using `optimize_for_size` bb6d4eb Add safety comment to fix tidy c8b699c Optimize async drop glue for some old types 0444ab8 Add FRAC_1_SQRT_2PI constant to f16/f32/f64/f128 1aaf0a9 Rollup merge of rust-lang#125226 - madsmtm:fix-mac-catalyst-tests, r=workingjubilee 565dce2 Rollup merge of rust-lang#124251 - scottmcm:unop-ptr-metadata, r=oli-obk a4025eb Add custom mir support for `PtrMetadata` 87b9f24 Add an intrinsic for `ptr::metadata` 914d2c0 Rollup merge of rust-lang#125637 - nnethercote:rustfmt-fixes, r=GuillaumeGomez 3170156 Make more of the test suite run on Mac Catalyst 9753338 Disable stack overflow handler tests on iOS-like platforms 3548389 Don't format `tests/run-make/*/rmake.rs`. 6fcf130 Rollup merge of rust-lang#125647 - tspiteri:track-lazy_cell_consume, r=workingjubilee 385e1b8 Rollup merge of rust-lang#125551 - clarfonthey:ip-bits, r=jhpratt 457f5ee update tracking issue for lazy_cell_consume 893db81 Auto merge of rust-lang#125636 - workingjubilee:bump-backtrace-0.3.72, r=workingjubilee 6785858 Sync libstd deps with backtrace b214872 Bump backtrace to 0.3.72 0ef7706 Auto merge of rust-lang#125609 - diondokter:opt-size-char-count, r=thomcc 3578f42 Rollup merge of rust-lang#124870 - Lokathor:update-result-docs, r=dtolnay d4fb66b Always use the general case char count 1e8098b Size optimize int formatting a74509c Rollup merge of rust-lang#125559 - scottmcm:simplify-shift-ubcheck, r=workingjubilee bc346a0 Auto merge of rust-lang#122079 - tbu-:pr_copy_file_range_probe, r=the8472 fdcee4d std::pal::unix::thread fetching min stack size on netbsd. d14171d Auto merge of rust-lang#125574 - matthiaskrgr:rollup-1oljoup, r=matthiaskrgr 3e545bc Rollup merge of rust-lang#125571 - tesuji:dummy-pi, r=Nilstrieb 8409442 Rollup merge of rust-lang#125561 - Cyborus04:stabilize-slice-flatten, r=scottmcm 8981ee4 Auto merge of rust-lang#125570 - tesuji:stdout-handle, r=Nilstrieb addaaed f32: use constants instead of reassigning a dummy value as PI 8a6d10d use proper name instead of magic number 64671fa Stabilize `slice_flatten` 4014081 Auto merge of rust-lang#125070 - tbu-:pr_set_extension_panic, r=jhpratt f54c557 Auto merge of rust-lang#125518 - saethlin:check-arguments-new-in-const, r=joboet a4bac2b It seems that anchor names are implicitly all lowercase 7cddfd4 Simplify the `unchecked_sh[lr]` ub-checks a bit 805f56b Fix URL target, it's in the module not the type. 3b77f19 github showed that weird. 65726c0 correct for copy paste errors when fixing wrapping. 613145f Resolve rust-lang#124870 (comment) 9677b70 revert to the inconsistent paragraph wrapping. bf3ca98 Rollup merge of rust-lang#124667 - newpavlov:stabilize_div_duration, r=jhpratt 4af28c4 Rollup merge of rust-lang#123803 - Sp00ph:shrink_to_fix, r=Mark-Simulacrum 79e1daf Rollup merge of rust-lang#122986 - taiki-e:aix-c-char, r=Mark-Simulacrum 0b13a6c Rollup merge of rust-lang#121377 - pitaj:lazy_cell_fn_pointer, r=dtolnay b1ac7da Stabilise ip_bits feature 23bb5bc Auto merge of rust-lang#121571 - clarfonthey:unchecked-math-preconditions, r=saethlin c11b36a Rollup merge of rust-lang#125527 - programmerjake:patch-2, r=workingjubilee d6812d5 Rollup merge of rust-lang#125498 - zmodem:avx512er, r=workingjubilee f52291b Rollup merge of rust-lang#125478 - Urgau:check-cfg-config-bump-stage0, r=Mark-Simulacrum 38dcab9 Rollup merge of rust-lang#125271 - RalfJung:posix_memalign, r=workingjubilee 29a1b3b Move the checks for Arguments constructors to inline const 5257f3f Add manual Sync impl for ReentrantLockGuard 078095a std: make TLS accessors closures that return pointers 567096d Rollup merge of rust-lang#125497 - meesfrensel:patch-1, r=calebzulawski dd828cf Stop using the avx512er and avx512pf x86 target features 749b376 Change pedantically incorrect OnceCell/OnceLock wording 2b1602a Fix some SIMD intrinsics documentation 59b5617 Remove now outdated comment since we bumped stage0 6d1cdb5 Add assert_unsafe_precondition to unchecked_{add,sub,neg,mul,shl,shr} methods ce29159 Simplify environment variable examples 8fa3f60 Document behavior of `create_dir_all` wrt. empty path dd196e7 Document platform-specifics for `Read` and `Write` of `File` a71d9d9 Fix c_char on AIX ce3db1b fix typo 4913884 use posix_memalign on most Unix targets 86878b9 Fix linkchecker doc errors 1bf7a30 Turn bare links into automatic links 736b225 Move BufGuard impl outside of function a44e7b3 Fix tidy errors 36af639 Replace sort implementations 48a835b Divide float nanoseconds instead of seconds f84d57f Don't use `T` with both Result and Option, improve explanation. 88338ff Add `size_of`, `size_of_val`, `align_of`, and `align_of_val` to the prelude 5d56638 Panic if `PathBuf::set_extension` would add a path separator 7db52fc Add fn allocator method to rc/sync::Weak. Relax Rc<T>/Arc<T>::allocator to allow unsized T. 43bf016 Suggest borrowing on fn argument that is `impl AsRef` 50d5af4 use teletype on the attribute name 43ae187 Some Result combinations work like an Option. d0c07aa Move `test_shrink_to_unwind` to its own file. d77b1cc Fix `VecDeque::shrink_to` UB when `handle_alloc_error` unwinds. 0342284 Use `CURRENT_RUSTC_VERSION` 9eb77db Stabilize `div_duration` 7a6ddb3 Lift the probe code of `copy_file_range` into a function f5305c1 Add missing .into_iter() 2a5af32 Extend the example code and assert the result 678e5a0 Add "safety" comment ad38f9b unroll first iter of checked_ilog loop to save one multiplication dbd03d4 Stabilize `BinaryHeap::as_slice` 08f761f DOC: Add FFI example for slice::from_raw_parts() 30c876c Be stricter with `copy_file_range` probe results fe05246 Less syscalls for the `copy_file_range` probe 511fe47 Stabilize `LazyCell` and `LazyLock` (`lazy_cell`) git-subtree-dir: library git-subtree-split: a2cf636
Represent trait constness as a distinct predicate cc `@rust-lang/project-const-traits` r? `@ghost` for now Also mirrored everything that is written below on this hackmd here: https://hackmd.io/`@compiler-errors/r12zoixg1l` # Tl;dr: * This PR removes the bulk of the old effect desugaring. * This PR reimplements most of the effect desugaring as a new predicate and set of a couple queries. I believe it majorly simplifies the implementation and allows us to move forward more easily on its implementation. I'm putting this up both as a request for comments and a vibe-check, but also as a legitimate implementation that I'd like to see land (though no rush of course on that last part). ## Background ### Early days Once upon a time, we represented trait constness in the param-env and in `TraitPredicate`. This was very difficult to implement correctly; it had bugs and was also incomplete; I don't think this was anyone's fault though, it was just the limit of experimental knowledge we had at that point. Dealing with `~const` within predicates themselves meant dealing with constness all throughout the trait solver. This was difficult to keep track of, and afaict was not handled well with all the corners of candidate assembly. Specifically, we had to (in various places) remap constness according to the param-env constness: https://github.com/rust-lang/rust/blob/574b64a97f52162f965bc201e47f0af8279ca65d/compiler/rustc_trait_selection/src/traits/select/mod.rs#L1498 This was annoying and manual and also error prone. ### Beginning of the effects desugaring Later on, rust-lang#113210 reimplemented a new desugaring for const traits via a `<const HOST: bool>` predicate. This essentially "reified" the const checking and separated it from any of the remapping or separate tracking in param-envs. For example, if I was in a const-if-const environment, but I wanted to call a trait that was non-const, this reification would turn the constness mismatch into a simple *type* mismatch of the effect parameter. While this was a monumental step towards straightening out const trait checking in the trait system, it had its own issues, since that meant that the constness of a trait (or any item within it, like an associated type) was *early-bound*. This essentially meant that `<T as Trait>::Assoc` was *distinct* from `<T as ~const Trait>::Assoc`, which was bad. ### Associated-type bound based effects desugaring After this, rust-lang#120639 implemented a new effects desugaring. This used an associated type to more clearly represent the fact that the constness is not an input parameter of a trait, but a property that could be computed of a impl. The write-up linked in that PR explains it better than I could. However, I feel like it really reached the limits of what can comfortably be expressed in terms of associated type and trait calculus. Also, `<const HOST: bool>` remains a synthetic const parameter, which is observable in nested items like RPITs and closures, and comes with tons of its own hacks in the astconv and middle layer. For example, there are pieces of unintuitive code that are needed to represent semantics like elaboration, and eventually will be needed to make error reporting intuitive, and hopefully in the future assist us in implementing built-in traits (eventually we'll want something like `~const Fn` trait bounds!). elaboration hack: https://github.com/rust-lang/rust/blob/8069f8d17a6c86a8fd881939fcce359a90c57ff2/compiler/rustc_type_ir/src/elaborate.rs#L133-L195 trait bound remapping hack for diagnostics: https://github.com/rust-lang/rust/blob/8069f8d17a6c86a8fd881939fcce359a90c57ff2/compiler/rustc_trait_selection/src/error_reporting/traits/fulfillment_errors.rs#L2370-L2413 I want to be clear that I don't think this is a issue of implementation quality or anything like that; I think it's simply a very clear sign that we're using types and traits in a way that they're not fundamentally supposed to be used, especially given that constness deserves to be represented as a first-class concept. ### What now? This PR implements a new desugaring for const traits. Specifically, it introduces a `HostEffect` predicate to represent the obligation an impl is const, rather than using associated type bounds and the compat trait that exists for effects today. ### `HostEffect` predicate A `HostEffect` clause has two parts -- the `TraitRef` we're trying to prove, and a `HostPolarity::{Maybe, Const}`. `HostPolarity::Const` corresponds to `T: const Trait` bounds, which must *always* be proven as const, and which can be written in any context. These are lowered directly into the predicates of an item, since they're not "context-specific". On the other hand, `HostPolarity::Maybe` corresponds to `T: ~const Trait` bounds which must only exist in a conditionally-const context like a method in a `#[const_trait]`, or a `const fn` free function. We do not lower these immediately into the predicates of an item; instead, we collect them into a new query called the **`const_conditions`**. These are the set of trait refs that we need to prove have const implementations for an item to be const. Notably, they're represented as bare (poly) trait refs because they are meant to be paired back together with a `HostPolarity` when they're being registered in typeck (see next section). For example, given: ```rust const fn foo<T: ~const A + const B>() {} ``` `foo`'s const conditions would contain `T: A`, but not `T: B`. On the flip side, foo's predicates (`predicates_of`) query would contain `HostEffect(T: B, HostPolarity::Const)` but not `HostEffect(T: A, HostPolarity::Maybe)` since we don't need to prove that predicate in a non-const environment (and it's not even the right predicate to prove in an unconditionally const environment). ### Type checking const bodies When type checking bodies in HIR, when we encounter a call expression, we additionally register the callee item's const conditions with the `HostPolarity` from the body we're typechecking (`Const` for unconditionally const things like `const`/`static` items, and `Maybe` for conditionally const things like const fns; and we don't register `HostPolarity` predicates for non-const bodies). When type-checking a conditionally const body, we augment its param-env with `HostEffect(..., Maybe)` predicates. ### Checking that const impls are WF We extend the logic in `compare_method_predicate_entailment` to also check the const-conditions of the impl method, to make sure that we error for: ```rust #[const_trait] Bar {} #[const_trait] trait Foo { fn method<T: Bar>(); } impl Foo for () { fn method<T: ~const Bar>() {} // stronger assumption! } ``` We also extend the WF check for impls to register the const conditions of the trait that is being implemented. This is to make sure we error for: ```rust #[const_trait] trait Bar {} #[const_trait] trait Foo<T> where T: ~const Bar {} impl<T> const Foo<T> for () {} //~^ `T: ~const Bar` is missing! ``` ### Proving a `HostEffect` predicate We have several ways of proving a `HostEffect` predicate: 1. Matching a `HostEffect` predicate from the param-env 2. From an impl - we do impl selection very similar to confirming a trait goal, except we filter for only const impls, and we additionally register the impl's const conditions (i.e. the impl's `~const` where clauses). Later I expect that we will add more built-in implementations for things like `Fn`. ## What next? After this PR, I'd like to split out the work more so it can proceed in parallel and probably amongst others that are not me. * Register `HostEffect` goal for places in HIR typeck that correspond to call terminators, like autoderef. * Make traits in libstd const again. * Probably need to impl host effect preds in old solver. * Implement built-in `HostEffect` rules for traits like `Fn`. * Rip out const checking from MIR altogether. ## So what? This ends up being super convenient basically everywhere in the compiler. Due to the design of the new trait solver, we end up having an almost parallel structure to the existing trait and projection predicates for assembling `HostEffect` predicates; adding new candidates and especially new built-in implementations is now basically trivial, and it's quite straightforward to understand the confirmation logic for these predicates. Same with diagnostics reporting; since we have predicates which represent the obligation to prove an impl is const, we can simplify and make these diagnostics richer without having to write a ton of logic to intercept and rewrite the existing `Compat` trait errors. Finally, it gives us a much more straightforward path for supporting the const effect on the old trait solver. I'm personally quite passionate about getting const trait support into the hands of users without having to wait until the new solver lands[^1], so I think after this PR lands we can begin to gauge how difficult it would be to implement constness in the old trait solver too. This PR will not do this yet. [^1]: Though this is not a prerequisite or by any means the only justification for this PR.
Represent trait constness as a distinct predicate cc `@rust-lang/project-const-traits` r? `@ghost` for now Also mirrored everything that is written below on this hackmd here: https://hackmd.io/`@compiler-errors/r12zoixg1l` # Tl;dr: * This PR removes the bulk of the old effect desugaring. * This PR reimplements most of the effect desugaring as a new predicate and set of a couple queries. I believe it majorly simplifies the implementation and allows us to move forward more easily on its implementation. I'm putting this up both as a request for comments and a vibe-check, but also as a legitimate implementation that I'd like to see land (though no rush of course on that last part). ## Background ### Early days Once upon a time, we represented trait constness in the param-env and in `TraitPredicate`. This was very difficult to implement correctly; it had bugs and was also incomplete; I don't think this was anyone's fault though, it was just the limit of experimental knowledge we had at that point. Dealing with `~const` within predicates themselves meant dealing with constness all throughout the trait solver. This was difficult to keep track of, and afaict was not handled well with all the corners of candidate assembly. Specifically, we had to (in various places) remap constness according to the param-env constness: https://github.com/rust-lang/rust/blob/574b64a97f52162f965bc201e47f0af8279ca65d/compiler/rustc_trait_selection/src/traits/select/mod.rs#L1498 This was annoying and manual and also error prone. ### Beginning of the effects desugaring Later on, rust-lang#113210 reimplemented a new desugaring for const traits via a `<const HOST: bool>` predicate. This essentially "reified" the const checking and separated it from any of the remapping or separate tracking in param-envs. For example, if I was in a const-if-const environment, but I wanted to call a trait that was non-const, this reification would turn the constness mismatch into a simple *type* mismatch of the effect parameter. While this was a monumental step towards straightening out const trait checking in the trait system, it had its own issues, since that meant that the constness of a trait (or any item within it, like an associated type) was *early-bound*. This essentially meant that `<T as Trait>::Assoc` was *distinct* from `<T as ~const Trait>::Assoc`, which was bad. ### Associated-type bound based effects desugaring After this, rust-lang#120639 implemented a new effects desugaring. This used an associated type to more clearly represent the fact that the constness is not an input parameter of a trait, but a property that could be computed of a impl. The write-up linked in that PR explains it better than I could. However, I feel like it really reached the limits of what can comfortably be expressed in terms of associated type and trait calculus. Also, `<const HOST: bool>` remains a synthetic const parameter, which is observable in nested items like RPITs and closures, and comes with tons of its own hacks in the astconv and middle layer. For example, there are pieces of unintuitive code that are needed to represent semantics like elaboration, and eventually will be needed to make error reporting intuitive, and hopefully in the future assist us in implementing built-in traits (eventually we'll want something like `~const Fn` trait bounds!). elaboration hack: https://github.com/rust-lang/rust/blob/8069f8d17a6c86a8fd881939fcce359a90c57ff2/compiler/rustc_type_ir/src/elaborate.rs#L133-L195 trait bound remapping hack for diagnostics: https://github.com/rust-lang/rust/blob/8069f8d17a6c86a8fd881939fcce359a90c57ff2/compiler/rustc_trait_selection/src/error_reporting/traits/fulfillment_errors.rs#L2370-L2413 I want to be clear that I don't think this is a issue of implementation quality or anything like that; I think it's simply a very clear sign that we're using types and traits in a way that they're not fundamentally supposed to be used, especially given that constness deserves to be represented as a first-class concept. ### What now? This PR implements a new desugaring for const traits. Specifically, it introduces a `HostEffect` predicate to represent the obligation an impl is const, rather than using associated type bounds and the compat trait that exists for effects today. ### `HostEffect` predicate A `HostEffect` clause has two parts -- the `TraitRef` we're trying to prove, and a `HostPolarity::{Maybe, Const}`. `HostPolarity::Const` corresponds to `T: const Trait` bounds, which must *always* be proven as const, and which can be written in any context. These are lowered directly into the predicates of an item, since they're not "context-specific". On the other hand, `HostPolarity::Maybe` corresponds to `T: ~const Trait` bounds which must only exist in a conditionally-const context like a method in a `#[const_trait]`, or a `const fn` free function. We do not lower these immediately into the predicates of an item; instead, we collect them into a new query called the **`const_conditions`**. These are the set of trait refs that we need to prove have const implementations for an item to be const. Notably, they're represented as bare (poly) trait refs because they are meant to be paired back together with a `HostPolarity` when they're being registered in typeck (see next section). For example, given: ```rust const fn foo<T: ~const A + const B>() {} ``` `foo`'s const conditions would contain `T: A`, but not `T: B`. On the flip side, foo's predicates (`predicates_of`) query would contain `HostEffect(T: B, HostPolarity::Const)` but not `HostEffect(T: A, HostPolarity::Maybe)` since we don't need to prove that predicate in a non-const environment (and it's not even the right predicate to prove in an unconditionally const environment). ### Type checking const bodies When type checking bodies in HIR, when we encounter a call expression, we additionally register the callee item's const conditions with the `HostPolarity` from the body we're typechecking (`Const` for unconditionally const things like `const`/`static` items, and `Maybe` for conditionally const things like const fns; and we don't register `HostPolarity` predicates for non-const bodies). When type-checking a conditionally const body, we augment its param-env with `HostEffect(..., Maybe)` predicates. ### Checking that const impls are WF We extend the logic in `compare_method_predicate_entailment` to also check the const-conditions of the impl method, to make sure that we error for: ```rust #[const_trait] Bar {} #[const_trait] trait Foo { fn method<T: Bar>(); } impl Foo for () { fn method<T: ~const Bar>() {} // stronger assumption! } ``` We also extend the WF check for impls to register the const conditions of the trait that is being implemented. This is to make sure we error for: ```rust #[const_trait] trait Bar {} #[const_trait] trait Foo<T> where T: ~const Bar {} impl<T> const Foo<T> for () {} //~^ `T: ~const Bar` is missing! ``` ### Proving a `HostEffect` predicate We have several ways of proving a `HostEffect` predicate: 1. Matching a `HostEffect` predicate from the param-env 2. From an impl - we do impl selection very similar to confirming a trait goal, except we filter for only const impls, and we additionally register the impl's const conditions (i.e. the impl's `~const` where clauses). Later I expect that we will add more built-in implementations for things like `Fn`. ## What next? After this PR, I'd like to split out the work more so it can proceed in parallel and probably amongst others that are not me. * Register `HostEffect` goal for places in HIR typeck that correspond to call terminators, like autoderef. * Make traits in libstd const again. * Probably need to impl host effect preds in old solver. * Implement built-in `HostEffect` rules for traits like `Fn`. * Rip out const checking from MIR altogether. ## So what? This ends up being super convenient basically everywhere in the compiler. Due to the design of the new trait solver, we end up having an almost parallel structure to the existing trait and projection predicates for assembling `HostEffect` predicates; adding new candidates and especially new built-in implementations is now basically trivial, and it's quite straightforward to understand the confirmation logic for these predicates. Same with diagnostics reporting; since we have predicates which represent the obligation to prove an impl is const, we can simplify and make these diagnostics richer without having to write a ton of logic to intercept and rewrite the existing `Compat` trait errors. Finally, it gives us a much more straightforward path for supporting the const effect on the old trait solver. I'm personally quite passionate about getting const trait support into the hands of users without having to wait until the new solver lands[^1], so I think after this PR lands we can begin to gauge how difficult it would be to implement constness in the old trait solver too. This PR will not do this yet. [^1]: Though this is not a prerequisite or by any means the only justification for this PR.
Represent trait constness as a distinct predicate cc `@rust-lang/project-const-traits` r? `@ghost` for now Also mirrored everything that is written below on this hackmd here: https://hackmd.io/`@compiler-errors/r12zoixg1l` # Tl;dr: * This PR removes the bulk of the old effect desugaring. * This PR reimplements most of the effect desugaring as a new predicate and set of a couple queries. I believe it majorly simplifies the implementation and allows us to move forward more easily on its implementation. I'm putting this up both as a request for comments and a vibe-check, but also as a legitimate implementation that I'd like to see land (though no rush of course on that last part). ## Background ### Early days Once upon a time, we represented trait constness in the param-env and in `TraitPredicate`. This was very difficult to implement correctly; it had bugs and was also incomplete; I don't think this was anyone's fault though, it was just the limit of experimental knowledge we had at that point. Dealing with `~const` within predicates themselves meant dealing with constness all throughout the trait solver. This was difficult to keep track of, and afaict was not handled well with all the corners of candidate assembly. Specifically, we had to (in various places) remap constness according to the param-env constness: https://github.com/rust-lang/rust/blob/574b64a97f52162f965bc201e47f0af8279ca65d/compiler/rustc_trait_selection/src/traits/select/mod.rs#L1498 This was annoying and manual and also error prone. ### Beginning of the effects desugaring Later on, rust-lang#113210 reimplemented a new desugaring for const traits via a `<const HOST: bool>` predicate. This essentially "reified" the const checking and separated it from any of the remapping or separate tracking in param-envs. For example, if I was in a const-if-const environment, but I wanted to call a trait that was non-const, this reification would turn the constness mismatch into a simple *type* mismatch of the effect parameter. While this was a monumental step towards straightening out const trait checking in the trait system, it had its own issues, since that meant that the constness of a trait (or any item within it, like an associated type) was *early-bound*. This essentially meant that `<T as Trait>::Assoc` was *distinct* from `<T as ~const Trait>::Assoc`, which was bad. ### Associated-type bound based effects desugaring After this, rust-lang#120639 implemented a new effects desugaring. This used an associated type to more clearly represent the fact that the constness is not an input parameter of a trait, but a property that could be computed of a impl. The write-up linked in that PR explains it better than I could. However, I feel like it really reached the limits of what can comfortably be expressed in terms of associated type and trait calculus. Also, `<const HOST: bool>` remains a synthetic const parameter, which is observable in nested items like RPITs and closures, and comes with tons of its own hacks in the astconv and middle layer. For example, there are pieces of unintuitive code that are needed to represent semantics like elaboration, and eventually will be needed to make error reporting intuitive, and hopefully in the future assist us in implementing built-in traits (eventually we'll want something like `~const Fn` trait bounds!). elaboration hack: https://github.com/rust-lang/rust/blob/8069f8d17a6c86a8fd881939fcce359a90c57ff2/compiler/rustc_type_ir/src/elaborate.rs#L133-L195 trait bound remapping hack for diagnostics: https://github.com/rust-lang/rust/blob/8069f8d17a6c86a8fd881939fcce359a90c57ff2/compiler/rustc_trait_selection/src/error_reporting/traits/fulfillment_errors.rs#L2370-L2413 I want to be clear that I don't think this is a issue of implementation quality or anything like that; I think it's simply a very clear sign that we're using types and traits in a way that they're not fundamentally supposed to be used, especially given that constness deserves to be represented as a first-class concept. ### What now? This PR implements a new desugaring for const traits. Specifically, it introduces a `HostEffect` predicate to represent the obligation an impl is const, rather than using associated type bounds and the compat trait that exists for effects today. ### `HostEffect` predicate A `HostEffect` clause has two parts -- the `TraitRef` we're trying to prove, and a `HostPolarity::{Maybe, Const}`. `HostPolarity::Const` corresponds to `T: const Trait` bounds, which must *always* be proven as const, and which can be written in any context. These are lowered directly into the predicates of an item, since they're not "context-specific". On the other hand, `HostPolarity::Maybe` corresponds to `T: ~const Trait` bounds which must only exist in a conditionally-const context like a method in a `#[const_trait]`, or a `const fn` free function. We do not lower these immediately into the predicates of an item; instead, we collect them into a new query called the **`const_conditions`**. These are the set of trait refs that we need to prove have const implementations for an item to be const. Notably, they're represented as bare (poly) trait refs because they are meant to be paired back together with a `HostPolarity` when they're being registered in typeck (see next section). For example, given: ```rust const fn foo<T: ~const A + const B>() {} ``` `foo`'s const conditions would contain `T: A`, but not `T: B`. On the flip side, foo's predicates (`predicates_of`) query would contain `HostEffect(T: B, HostPolarity::Const)` but not `HostEffect(T: A, HostPolarity::Maybe)` since we don't need to prove that predicate in a non-const environment (and it's not even the right predicate to prove in an unconditionally const environment). ### Type checking const bodies When type checking bodies in HIR, when we encounter a call expression, we additionally register the callee item's const conditions with the `HostPolarity` from the body we're typechecking (`Const` for unconditionally const things like `const`/`static` items, and `Maybe` for conditionally const things like const fns; and we don't register `HostPolarity` predicates for non-const bodies). When type-checking a conditionally const body, we augment its param-env with `HostEffect(..., Maybe)` predicates. ### Checking that const impls are WF We extend the logic in `compare_method_predicate_entailment` to also check the const-conditions of the impl method, to make sure that we error for: ```rust #[const_trait] Bar {} #[const_trait] trait Foo { fn method<T: Bar>(); } impl Foo for () { fn method<T: ~const Bar>() {} // stronger assumption! } ``` We also extend the WF check for impls to register the const conditions of the trait that is being implemented. This is to make sure we error for: ```rust #[const_trait] trait Bar {} #[const_trait] trait Foo<T> where T: ~const Bar {} impl<T> const Foo<T> for () {} //~^ `T: ~const Bar` is missing! ``` ### Proving a `HostEffect` predicate We have several ways of proving a `HostEffect` predicate: 1. Matching a `HostEffect` predicate from the param-env 2. From an impl - we do impl selection very similar to confirming a trait goal, except we filter for only const impls, and we additionally register the impl's const conditions (i.e. the impl's `~const` where clauses). Later I expect that we will add more built-in implementations for things like `Fn`. ## What next? After this PR, I'd like to split out the work more so it can proceed in parallel and probably amongst others that are not me. * Register `HostEffect` goal for places in HIR typeck that correspond to call terminators, like autoderef. * Make traits in libstd const again. * Probably need to impl host effect preds in old solver. * Implement built-in `HostEffect` rules for traits like `Fn`. * Rip out const checking from MIR altogether. ## So what? This ends up being super convenient basically everywhere in the compiler. Due to the design of the new trait solver, we end up having an almost parallel structure to the existing trait and projection predicates for assembling `HostEffect` predicates; adding new candidates and especially new built-in implementations is now basically trivial, and it's quite straightforward to understand the confirmation logic for these predicates. Same with diagnostics reporting; since we have predicates which represent the obligation to prove an impl is const, we can simplify and make these diagnostics richer without having to write a ton of logic to intercept and rewrite the existing `Compat` trait errors. Finally, it gives us a much more straightforward path for supporting the const effect on the old trait solver. I'm personally quite passionate about getting const trait support into the hands of users without having to wait until the new solver lands[^1], so I think after this PR lands we can begin to gauge how difficult it would be to implement constness in the old trait solver too. This PR will not do this yet. [^1]: Though this is not a prerequisite or by any means the only justification for this PR.
cc @rust-lang/project-const-traits.
Notes for the new desugaring: https://hackmd.io/@beef/HJyX7wF70
T: Tr
to desugar intoT: Tr, T::Effects: Compat<true>
type Assoc: ~const Tr
andtype Assoc<T: ~const Tr>
Fixes #119717
Fixes #123664
Fixes #124857
Fixes #126148