-
Notifications
You must be signed in to change notification settings - Fork 13.9k
Relax a memory order in once_box
#131746
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
Merged
Merged
Relax a memory order in once_box
#131746
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This comment has been minimized.
This comment has been minimized.
bbe5dde to
937d13b
Compare
|
That's right, thank you! |
bors
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Oct 16, 2024
Rollup of 10 pull requests Successful merges: - rust-lang#131582 (Add wasm32-unknown-emscripten platform support document) - rust-lang#131694 (Make fuchsia-test-runner.py compatible with new JSON output from llvm-readelf) - rust-lang#131700 (Fix match_same_arms in stable_mir) - rust-lang#131712 (Mark the unstable LazyCell::into_inner const) - rust-lang#131746 (Relax a memory order in `once_box`) - rust-lang#131754 (Don't report bivariance error when nesting a struct with field errors into another struct) - rust-lang#131760 (llvm: Match aarch64 data layout to new LLVM layout) - rust-lang#131764 (Fix unnecessary nesting in run-make test output directories) - rust-lang#131766 (Add mailmap entry for my dev-desktop setup) - rust-lang#131771 (Handle gracefully true/false in `cfg(target(..))` compact) r? `@ghost` `@rustbot` modify labels: rollup
rust-timer
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Oct 16, 2024
Rollup merge of rust-lang#131746 - slanterns:once_box_order, r=joboet Relax a memory order in `once_box` per rust-lang#131094 (comment). In the successful path we don't need `Acquire` since we don't care if the store in `f()` happened in other threads has become visible to the current thread. We'll use our own results instead and just using `Release` to ensure other threads can see our store to `Box` when they fail the `compare_exchange` will suffice. Also took https://marabos.nl/atomics/memory-ordering.html#example-lazy-initialization-with-indirection as a reference. `@rustbot` label: +T-libs r? `@ibraheemdev`
qinheping
added a commit
to qinheping/verify-rust-std
that referenced
this pull request
Nov 7, 2024
771d77c Rollup merge of rust-lang#132495 - Houtamelo:remove_unintended_link, r=jieyouxu d99f3cf Rollup merge of rust-lang#132493 - Houtamelo:doc_type-ref_html-tag, r=jieyouxu e24475c Rollup merge of rust-lang#132482 - lukas-code:stab-attrs, r=Noratrieb 21e23b8 Rollup merge of rust-lang#132398 - krtab:add_doc_link, r=Noratrieb 64e2472 Remove unintended link 166cea2 Fix type reference in documents which was being confused with html tags. cab478a fix some stability annotations ecd55b1 Rollup merge of rust-lang#132459 - RalfJung:byte_sub_ptr, r=scottmcm 3cd2636 Rollup merge of rust-lang#132455 - RalfJung:const_alloc_layout, r=dtolnay 8fdd6d4 Rollup merge of rust-lang#132451 - RalfJung:less-rustc_allow_const_fn_unstable, r=tgross35 9f63901 Rollup merge of rust-lang#132445 - RalfJung:const-unchecked-shifts, r=tgross35 2b0a6dd Rollup merge of rust-lang#132413 - lolbinarycat:offset_of_nested-docs, r=workingjubilee c80bb77 offset_from / sub_ptr docs: emphasize that pointers must be in the same allocation 861009d feat(byte_sub_ptr): add ptr::byte_sub_ptr f4e1fa3 make const_alloc_layout feature gate only about functions that are already stable bf19bda unchecked_shifts, unchecked_neg are safe-to-const-expose-on-stable, so we can get rid of a bunch of attributes ebf7505 remove some unnecessary rustc_allow_const_fn_unstable 36cfa4e Auto merge of rust-lang#132206 - tgross35:update-builtins, r=wesleywiser 4283f78 use semantic line break a4b3916 update offset_of! docs to reflect the stablization of nesting f0634f0 Add intra-doc link in str::xxx_char_boundary 5d892fb Remove do_not_const_check from Iterator methods 93839e7 Add intra-doc link in str::xxx_prefix 8c0bdb3 Auto merge of rust-lang#132238 - Urgau:midpoint-i64-hackers-impl, r=joboet 9b9ea35 Auto merge of rust-lang#132326 - matthiaskrgr:rollup-ngyw18g, r=matthiaskrgr 94dd5c6 Rollup merge of rust-lang#132321 - betrusted-io:xous/fix-rustc_const_stable-attribute, r=joboet eb2e420 Auto merge of rust-lang#132231 - lukas-code:rc-plug-leaks, r=tgross35 ed1a265 xous: sync: remove `rustc_const_stable` attribute 6495896 Rollup merge of rust-lang#132270 - yakiimoninja:fs-truncate-docs, r=Noratrieb 057f9e9 Rollup merge of rust-lang#132233 - WaffleLapkin:box-module-split, r=workingjubilee d0a99e7 Rollup merge of rust-lang#131520 - zachs18:const-str-split, r=Noratrieb e134006 Auto merge of rust-lang#132277 - workingjubilee:rollup-5e6q6e4, r=workingjubilee a1b88a0 Auto merge of rust-lang#128985 - GrigorenkoPV:instantly-dangling-pointer, r=Urgau 9318ae3 Rc destructor: tweak inlining 3a686cd Split `boxed.rs` into a few modules 7be29e9 Rollup merge of rust-lang#131441 - SpriteOvO:proc-macro-to-tokens-trait, r=dtolnay d56ef5a clarified std::fs truncate doc b0248e2 Auto merge of rust-lang#132145 - RalfJung:stdarch, r=Amanieu 191aa70 clarified doc for `std::fs::OpenOptions.truncate()` a5aa408 New lint: `dangling_pointers_from_temporaries` 8cdb783 Rollup merge of rust-lang#131391 - ChaiTRex:isqrt, r=scottmcm,tgross35 4f4a6c6 we can now enable the 'const stable fn must be stable' check 79c45be bump stdarch 848fcd5 Auto merge of rust-lang#132251 - jieyouxu:rollup-mtv9mpd, r=jieyouxu e212260 Auto merge of rust-lang#132200 - Mark-Simulacrum:strengthen-cross-lang, r=RalfJung ac1ec5f Support `char::is_digit` in const contexts b534a02 Use Hacker's Delight impl in `i64::midpoint` instead of wide `i128` impl 28223bd Rc/Arc: don't leak the allocation if drop panics 5d8140d add test for panicking drop in Box/Rc/Arc cde6279 Auto merge of rust-lang#131284 - dingxiangfei2009:rename-smart-ptr-to-coerce-referent, r=compiler-errors c667683 Auto merge of rust-lang#132191 - Urgau:midpoint_signed_towards_zero, r=dtolnay 80f0aa3 Add a new trait `proc_macro::ToTokens` 3cfffb8 Update compiler-builtins to 0.1.136 45d8393 Auto merge of rust-lang#131715 - tgross35:add-const_sockaddr_setters, r=Amanieu ec76942 Make clearer that guarantees in ABI compatibility are for Rust only 139f632 Add test for all midpoint expectations 4612afa Round negative signed integer towards zero in `iN::midpoint` 06b5c8e Rollup merge of rust-lang#132019 - daboross:document-partialeq-oncelock, r=Mark-Simulacrum 658e709 Auto merge of rust-lang#131349 - RalfJung:const-stability-checks, r=compiler-errors db3b9fc Rollup merge of rust-lang#132137 - RalfJung:behavior, r=Noratrieb 6daffe4 get rid of the internal unlikely macro d2ff6a2 Re-do recursive const stability checks 295b932 library: consistently use American spelling for 'behavior' 2348c06 Rollup merge of rust-lang#131457 - kpreid:fnaddr, r=dtolnay 2da7b7f Auto merge of rust-lang#132121 - workingjubilee:rollup-yrtn33e, r=workingjubilee 5cf142b Rollup merge of rust-lang#132113 - LaihoE:pattern_as_utf8_default_impl, r=workingjubilee 1f2f88e Rollup merge of rust-lang#132101 - youknowone:thread_local-gyneiene, r=tgross35 6c81340 Rollup merge of rust-lang#132048 - mustartt:aix-random-impl, r=workingjubilee 980e5a2 Rollup merge of rust-lang#131851 - sunshowers:musl-posix, r=workingjubilee d25ee97 Avoid use imports in thread_local_inner! in statik b4ea08d Auto merge of rust-lang#132116 - matthiaskrgr:rollup-3a0ia4r, r=matthiaskrgr 0ae2951 Rollup merge of rust-lang#131790 - nmathewson:doc_socketaddr_representation, r=tgross35 8baae66 Auto merge of rust-lang#131985 - compiler-errors:const-pred, r=fee1-dead 115a851 provide default impl for as_utf8_pattern a92f55c Auto merge of rust-lang#123550 - GnomedDev:remove-initial-arc, r=Noratrieb c9460bf Document textual format of SocketAddrV{4,6} 78f4ed3 Remove associated type based effects logic 21eb2c2 [musl] use posix_spawn if a directory change was requested 03798ad Rollup merge of rust-lang#130225 - adetaylor:rename-old-receiver, r=wesleywiser a45e030 Rollup merge of rust-lang#132066 - tifv:ptr-docs-typo, r=Amanieu 927edad Rollup merge of rust-lang#132065 - tifv:dangling-docs, r=Noratrieb ded2a0a Rollup merge of rust-lang#132060 - joshtriplett:innermost-outermost, r=jieyouxu e62b2cc Rollup merge of rust-lang#132039 - a1phyr:vecdeque_read_exact, r=Noratrieb 76e75ae Rollup merge of rust-lang#130991 - LaihoE:vectorized_slice_contains, r=Noratrieb 6799f85 const fn str::split_at* 887bcf6 const fn str::is_char_boundary 01ed719 vectorized SliceContains 1bb8bde s/SmartPointer/CoerceReferent/g 843347f fix a typo in documentation of pointer::sub_ptr() 10f64a7 fix documentation of ptr::dangling() function 728a8d7 "innermost", "outermost", "leftmost", and "rightmost" don't need hyphens 282790f Specialize `read_exact` and `read_buf_exact` for `VecDeque` 054b256 Rollup merge of rust-lang#132031 - slanterns:rc_default, r=ibraheemdev 05b4955 Rollup merge of rust-lang#131707 - clarfonthey:constify-core-tests, r=thomcc b0fc9c7 Auto merge of rust-lang#131929 - LaihoE:replace_default_capacity, r=joboet 5c416b4 AIX use /dev/urandom for impl 09e26cb better default capacity for str::replace 3a5e669 Rename Receiver -> LegacyReceiver 224a60d refactor `Arc<T>::default` fe5101d optimize `Rc<T>::default` 507193a Rollup merge of rust-lang#131697 - ShE3py:rt-arg-lifetimes, r=Amanieu 61fa53e Document PartialEq impl for OnceLock 2e8dd5b Rollup merge of rust-lang#132003 - RalfJung:abi-compat-docs, r=traviscross 7f91dbe Rollup merge of rust-lang#130350 - RalfJung:strict-provenance, r=dtolnay 8499ec3 update ABI compatibility docs for new option-like rules 6d2a437 move strict provenance lints to new feature gate, remove old feature gates 4461171 stabilize Strict Provenance and Exposed Provenance e2b2c3a fix docs 20ed6b5 replace FindFirstFileW with FindFirstFileExW and apply optimization a065b8e replace FindFirstFileW with FindFirstFileExW and regenerate bindings 362aec6 Auto merge of rust-lang#131948 - matthiaskrgr:rollup-c9rvzu6, r=matthiaskrgr 7628c4f Rollup merge of rust-lang#131921 - klensy:statx_all, r=ChrisDenton affe042 Rollup merge of rust-lang#131772 - GnomedDev:remove-proc_macro-todo, r=petrochenkov 5615efc Auto merge of rust-lang#131907 - saethlin:update-compiler-builtins, r=tgross35 b6b2903 Update `compiler-builtins` to 0.1.134 b714f9d Rollup merge of rust-lang#131919 - RalfJung:zero-sized-accesses, r=jhpratt fb67079 Rollup merge of rust-lang#131890 - printfn:precise-capturing-docs, r=traviscross 642ab07 Rollup merge of rust-lang#127462 - Ayush1325:uefi-env, r=joboet bac3891 Remove the Arc rt::init allocation for thread info 85f6f48 Auto merge of rust-lang#131816 - Zalathar:profiler-feature, r=Kobzol f843b26 replace STATX_ALL with (STATX_BASIC_STATS | STATX_BTIME) as former is deprecated aabdd7d zero-sized accesses are fine on null pointers ff3f33f Update `use` keyword docs to describe precise capturing c949985 std: uefi: Use common function for UEFI shell f973e62 std: uefi: Add basic Env variables 63a4a9b Auto merge of rust-lang#131895 - jieyouxu:rollup-jyt3pic, r=jieyouxu 39ccfc9 Rollup merge of rust-lang#126207 - devnexen:stack_overflow_libc_upd, r=joboet e08bce6 Auto merge of rust-lang#131841 - paulmenage:futex-abstraction, r=joboet eba461c Rollup merge of rust-lang#131866 - jieyouxu:thread_local, r=jhpratt 80bbaa9 Rollup merge of rust-lang#131858 - AnthonyMikh:AnthonyMikh/repeat_n-is-not-that-special-anymore, r=jhpratt 5ec2cbc Rollup merge of rust-lang#131809 - collinoc:fix-retain-mut-docs, r=jhpratt fe19eb6 Rollup merge of rust-lang#131774 - thesummer:rtems-add-getentropy, r=joboet fca7375 Rollup merge of rust-lang#130136 - GKFX:stabilize-const-pin, r=dtolnay 07aaa64 Add entropy source for RTEMS 1b957f4 Rollup merge of rust-lang#131850 - lexeyOK:master, r=compiler-errors a6871b8 Rollup merge of rust-lang#131823 - thesummer:bump-libc-0.2.160, r=workingjubilee 848aed9 Rollup merge of rust-lang#131654 - betrusted-io:xous-various-fixes, r=thomcc a6e300e Avoid shadowing user provided types or type aliases in `thread_local!` a993e1d remove outdated documentation for `repeat_n` 4d2c969 Auto merge of rust-lang#131572 - cuviper:ub-index_range, r=thomcc f905a0c Bump libc to 0.2.161 beee93f std::unix::stack_overflow::drop_handler addressing todo through libc update c8f71dc Missing parenthesis 01bce29 Abstract the state type for futexes 0ab703c Rollup merge of rust-lang#131835 - ferrocene:amanjeev/add-missing-attribute-unwind, r=Noratrieb bac74b6 Rollup merge of rust-lang#131833 - c-ryan747:patch-1, r=Noratrieb 0d7c889 Auto merge of rust-lang#130223 - LaihoE:faster_str_replace, r=thomcc 34c8228 Do not run test where it cannot run d73f924 Add must_use to CommandExt::exec aa027e9 Make `profiler_builtins` an optional dependency of sysroot, not std 019ad0c Remove TODO in proc_macro now `const_refs_to_static` is stable 3b5d8a2 Fix predicate signatures in retain_mut docs 6c85d31 Auto merge of rust-lang#131797 - matthiaskrgr:rollup-lzpze2k, r=matthiaskrgr 3a5fdfc Partially stabilize const_pin 7caa6d2 Rollup merge of rust-lang#131730 - zlfn:master, r=tgross35 1e13241 Auto merge of rust-lang#131792 - matthiaskrgr:rollup-480nwg4, r=matthiaskrgr 1581f56 Rollup merge of rust-lang#130822 - bjoernager:non-null-from-ref, r=dtolnay f7b3231 Auto merge of rust-lang#131767 - cuviper:bump-stage0, r=Mark-Simulacrum cdbd127 Rollup merge of rust-lang#131746 - slanterns:once_box_order, r=joboet 6f3e65c Rollup merge of rust-lang#131712 - tgross35:const-lazy_cell_into_inner, r=joboet 151c0c7 Auto merge of rust-lang#131460 - jwong101:default-placement-new, r=ibraheemdev 43f97fb update bootstrap configs eae13d1 replace placeholder version e35d9fe relax a memory order in `once_box` fbde7e8 Rollup merge of rust-lang#131521 - jdonszelmann:rc, r=joboet 9d9ea42 Rollup merge of rust-lang#130568 - eduardosm:const-float-methods, r=RalfJung,tgross35 435ce04 Rollup merge of rust-lang#129794 - Ayush1325:uefi-os-expand, r=joboet bfd32fa Refactor `floating` macro and nofloat panic message 7d1457e Auto merge of rust-lang#131723 - matthiaskrgr:rollup-krcslig, r=matthiaskrgr 148ed85 Rename debug! macro to impl_Debug! db2efb0 Combine impl_int and impl_uint 1897d05 Make some float methods unstable `const fn` 76342d9 Auto merge of rust-lang#131724 - matthiaskrgr:rollup-ntgkkk8, r=matthiaskrgr da7ca22 Rollup merge of rust-lang#131706 - GKFX:fix-const-hacks, r=tgross35 54072ab Rollup merge of rust-lang#131496 - bjoernager:const-make-ascii, r=dtolnay 1695b0a Rollup merge of rust-lang#130608 - YohDeadfall:cstr-from-into-str, r=workingjubilee f1ee2cd Rollup merge of rust-lang#131339 - HeroicKatora:set_ptr_value-documentation, r=Mark-Simulacrum ffc4a6c Rollup merge of rust-lang#122670 - beetrees:non-unicode-option-env-error, r=compiler-errors cc7730e Auto merge of rust-lang#129458 - EnzymeAD:enzyme-frontend, r=jieyouxu eeab9d4 Stabilise 'const_make_ascii' ec0b0df Add a `const_sockaddr_setters` feature e788410 Mark LazyCell::into_inner unstably const acaf7e2 Run most core::num tests in const context too 63f3836 Fix two const-hacks 34d920c `rt::Argument`: elide lifetimes ecb3830 Rollup merge of rust-lang#131384 - saethlin:precondition-tests, r=ibraheemdev ea7a0c6 Rollup merge of rust-lang#129424 - coolreader18:stabilize-pin_as_deref_mut, r=dtolnay 843c9e9 Auto merge of rust-lang#131672 - matthiaskrgr:rollup-gyzysj4, r=matthiaskrgr 3b92996 uefi: Implement getcwd and chdir 8d35aa9 Rollup merge of rust-lang#131616 - RalfJung:const_ip, r=tgross35 b6cfaeb Rollup merge of rust-lang#131274 - workingjubilee:stabilize-the-one-that-got-away, r=scottmcm 6d8235e Rollup merge of rust-lang#130629 - Dirbaio:net-from-octets, r=tgross35 88634c8 Rollup merge of rust-lang#128967 - devnexen:get_path_fbsd_upd, r=joboet d6318f3 Auto merge of rust-lang#126557 - GrigorenkoPV:vec_track_caller, r=joboet d11e388 Auto merge of rust-lang#131662 - matthiaskrgr:rollup-r1wkfxw, r=matthiaskrgr 089c495 rename rcbox in other places as per review comments 2cfa6d0 core/net: use hex for ipv6 doctests for consistency. 9ae0e8b core/net: add Ipv[46]Addr::from_octets, Ipv6Addr::from_segments da6c63c Rollup merge of rust-lang#131646 - RalfJung:unix-miri-fallbacks, r=joboet 87ea4bb Rollup merge of rust-lang#131644 - RalfJung:win-miri, r=joboet 928b99c library: xous: mark alloc as `FIXME(static_mut_refs)` dde2ff0 xous: ffi: correct syscall number for adjust_process c3955e4 net: fix dead code warning 3919c4f std: xous: add support for args and env 9c1e162 Auto merge of rust-lang#125679 - clarfonthey:escape_ascii, r=joboet 262c3fb unwind: update unwinding dependency to 0.2.3 4c63749 sys/unix: add comments for some Miri fallbacks e3f701c remove outdated comment now that Miri is on CI e2c210e sys/windows: remove miri hack that is only needed for win7 1799481 switch unicode-data back to 'static' ddfd2ea merge const_ipv4 / const_ipv6 feature gate into 'ip' feature gate b6c0376 Rollup merge of rust-lang#131418 - coolreader18:wasm-exc-use-stdarch, r=bjorn3 1ee9b69 Rollup merge of rust-lang#131120 - tgross35:stabilize-const_option, r=RalfJung 6fc4b1a Fix bug where `option_env!` would return `None` when env var is present but not valid Unicode d72915f Fix typo thing->thin referring to pointer a2d85a1 Stabilize `const_option` 4a9ad4a Rollup merge of rust-lang#131617 - RalfJung:const_cow_is_borrowed, r=tgross35 113c6c0 Rollup merge of rust-lang#131503 - theemathas:stdin_read_line_docs, r=Mark-Simulacrum 7a51595 remove const_cow_is_borrowed feature gate 7420c36 Rollup merge of rust-lang#131233 - joboet:stdout-before-main, r=tgross35 08e7188 Rollup merge of rust-lang#130954 - workingjubilee:stabilize-const-mut-fn, r=RalfJung 3febfb3 std: fix stdout-before-main 3b820ee library: Stabilize `const_replace` ee21064 library: Stabilize `const_ptr_write` 36ff2c8 library: Stabilize `const_intrinsic_forget` 4f124de Rollup merge of rust-lang#131289 - RalfJung:duration_consts_float, r=tgross35 de76914 Rollup merge of rust-lang#130962 - nyurik:opts-libs, r=cuviper 76ce3a9 Rollup merge of rust-lang#124874 - jedbrown:float-mul-add-fast, r=saethlin de18ce1 Avoid superfluous UB checks in `IndexRange` eb8ff20 Rollup merge of rust-lang#131463 - bjoernager:const-char-encode-utf8, r=RalfJung 964c91b Rollup merge of rust-lang#131287 - RalfJung:const_result, r=tgross35 a8b0950 Rollup merge of rust-lang#131109 - tgross35:stabilize-debug_more_non_exhaustive, r=joboet 637b515 Rollup merge of rust-lang#131065 - Voultapher:port-sort-test-suite, r=thomcc eeb881d intrinsics.fmuladdf{16,32,64,128}: expose llvm.fmuladd.* semantics 2b6b22c Single commit implementing the enzyme/autodiff frontend 00785c0 stabilize const_result 12b8028 stabilize duration_consts_float c8d357c Rollup merge of rust-lang#131512 - j7nw4r:master, r=jhpratt 34f7831 rename RcBox in other places too cd0a8f5 rename RcBox to RcInner for consistency dd6dd70 Fixing rustDoc for LayoutError. 7fdd545 Rollup merge of rust-lang#130741 - mrkajetanp:detect-b16b16, r=Amanieu 77f7b2f Rollup merge of rust-lang#130538 - ultrabear:ultrabear_const_from_ref, r=workingjubilee fca0919 More clearly document Stdin::read_line e4a9064 Stabilise 'const_char_encode_utf8'; 8547f51 allocate before calling T::default in <Arc<T>>::default() 669e255 allocate before calling T::default in <Box<T>>::default() 5ef6f83 rustc_target: Add sme-b16b16 as an explicit aarch64 target feature 74264e3 stdarch: Bump stdarch submodule a5529ee Clean up is_aligned_and_not_null db5a9a7 Add more precondition check tests 528dda2 Allow zero-size reads/writes on null pointers 86c7526 Optimize escape_ascii 36a90d7 Rollup merge of rust-lang#131462 - cuviper:open_buffered-error, r=RalfJung 49220cd Rollup merge of rust-lang#131449 - nickrum:wasip2-net-decouple-fd, r=alexcrichton ff37c08 Rollup merge of rust-lang#131383 - AngelicosPhosphoros:better_doc_for_slice_slicing_at_ends, r=cuviper 136ec3a Rollup merge of rust-lang#130827 - fmease:library-mv-obj-save-dyn-compat, r=ibraheemdev 8cdea8c Add "not guaranteed to be equal" db9377d Mention allocation errors for `open_buffered` 7e225fa Apply suggestions from code review 0ce4f76 Expand `ptr::fn_addr_eq()` documentation. 885e3d1 Library: Rename "object safe" to "dyn compatible" 5f495ee Decouple WASIp2 sockets from WasiFd 78670fb stabilize `{slice,array}::from_mut` 7153288 Update library/std/src/sys/pal/unix/process/process_vxworks.rs cd0d5be fix ref in process_vxworks.rs 01e7f5f Update library/std/src/sys/pal/unix/process/process_unix.rs fbb514c Change a few `&Option<T>` into `Option<&T>` cc1e8b5 Use throw intrinsic from stdarch in wasm libunwind bc755bb Stabilize Pin::as_deref_mut fcc990d Stabilize `isqrt` feature b946b83 Add docs about slicing slices at the ends 9ca739e cfg out checks in add and sub but not offset 8293e74 Add precondition checks to ptr::offset, ptr::add, ptr::sub c65244c Rollup merge of rust-lang#131308 - mati865:gnullvm-f16-f128, r=tgross35 6a809c7 Rollup merge of rust-lang#128399 - mammothbane:master, r=Amanieu,tgross35 723693e liballoc: introduce String, Vec const-slicing fee7e5e Auto merge of rust-lang#128651 - folkertdev:naked-asm-macro-v2, r=Amanieu 61eff8f Expand set_ptr_value / with_metadata_of docs 7c3b7e7 Rollup merge of rust-lang#131335 - dacianpascu06:fix-typo, r=joboet 8e3076e Rollup merge of rust-lang#131307 - YohDeadfall:prctl-set-name-dbg-assert, r=workingjubilee b8c51a6 grammar fix 4ca50c3 disallow `asm!` in `#[naked]` functions cc09cb0 implement `naked_asm` macro dbb2281 Rollup merge of rust-lang#131316 - programmerjake:patch-4, r=Noratrieb 4b276e6 Auto merge of rust-lang#131314 - tgross35:update-builtins, r=tgross35 5dc3e7c Fix typo in primitive_docs.rs 686d25d Auto merge of rust-lang#130540 - veera-sivarajan:fix-87525, r=estebank 9555c10 Update `compiler-builtins` to 0.1.133 0f71b38 enable f16 and f128 on windows-gnullvm targets d14d771 Auto merge of rust-lang#131302 - matthiaskrgr:rollup-56kbpzx, r=matthiaskrgr b8dd441 Android: Debug assertion after setting thread name fcd199d Rollup merge of rust-lang#131281 - RalfJung:const-cell, r=Amanieu 71aa514 Auto merge of rust-lang#131221 - XrXr:bump-compiler-builtins, r=tgross35 b7c90c6 library: Stabilize const `MaybeUninit::assume_init_mut` 0418d54 Add a Lint for Pointer to Integer Transmutes in Consts 460459d Rollup merge of rust-lang#131256 - RalfJung:f16-f128-const, r=ibraheemdev a818a4d Rollup merge of rust-lang#131094 - joboet:lazy_once_box, r=ibraheemdev 2ed6282 make Cell unstably const 575391b move f16/f128 const fn under f16/f128 feature gate b3da4ed Stabilize `const_slice_split_at_mut` and `const_slice_first_last_chunk` bbe8bf7 Rollup merge of rust-lang#131267 - okaneco:bufread_skip_until, r=tgross35 65049d1 Rollup merge of rust-lang#131105 - slanterns:literal_c_str, r=petrochenkov 7001dd5 Rollup merge of rust-lang#130403 - eduardosm:stabilize-const_slice_from_raw_parts_mut, r=workingjubilee 0f43ffb Update compiler-builtins to 0.1.132 7d4319e Rollup merge of rust-lang#131177 - workingjubilee:stabilize-const-mut-referees, r=tgross35 6709307 Rollup merge of rust-lang#130518 - scottmcm:stabilize-controlflow-extra, r=dtolnay b732d23 Stabilize `BufRead::skip_until` eb2806b Auto merge of rust-lang#130157 - eduardosm:stabilize-const_float_classify, r=RalfJung c822d33 update libc version 26b231b std::fs::get_path freebsd update. 1bd16cd Rollup merge of rust-lang#131197 - EFanZh:avoid-emptyness-check-in-peekmut-pop, r=Amanieu 8cfa0ca Avoid emptiness check in `PeekMut::pop` 86fa474 Rollup merge of rust-lang#131163 - JakenHerman:master, r=Nadrieril 6b57e57 Auto merge of rust-lang#128711 - clarfonthey:default-iters-hash, r=dtolnay 254af0b Add `get_line` confusable to `Stdin::read_line()` f89b8dc impl Default for Hash{Map,Set} iterators that don't already have it 0c22ea8 Auto merge of rust-lang#127912 - joboet:tls_dtor_thread_current, r=cuviper 2b4f6ec Auto merge of rust-lang#131148 - Urgau:hashbrown-0.15, r=Amanieu 26013cd library: Stabilize `const_slice_first_last` 51ed903 library: Stabilize `const_unsafecell_get_mut` cd6c1cc library: Stabilize `const_ptr_as_ref` ecb0f03 library: Stabilize `const_str_as_mut` 78ad293 library: Stabilize `const_str_from_utf8_unchecked_mut` db56087 std: make `thread::current` available in all `thread_local!` destructors d5599a7 Rollup merge of rust-lang#131141 - RalfJung:mpmc-test, r=Amanieu 487946f Update hashbrown to 0.15 and adjust some methods 0d19119 mpmc doctest: make sure main thread waits for child threads a7d53da Auto merge of rust-lang#130829 - Urgau:option_array_transpose, r=ibraheemdev 7c896fc Auto merge of rust-lang#128204 - GuillaumeGomez:integers-opti, r=workingjubilee f19cac1 std: replace `LazyBox` with `OnceBox` e2ebf04 Stabilize `const_slice_from_raw_parts_mut` a575a8b Auto merge of rust-lang#131111 - matthiaskrgr:rollup-n6do187, r=matthiaskrgr 82e1372 Rollup merge of rust-lang#130773 - bjoernager:master, r=thomcc b33d815 Rollup merge of rust-lang#130229 - RalfJung:ptr-offset-unsigned, r=scottmcm bf40ab2 Implemented FromStr for CString and TryFrom<CString> for String ea51d16 Stabilize `debug_more_non_exhaustive` f8db877 update `Literal`'s intro bcfd953 Auto merge of rust-lang#131098 - GuillaumeGomez:rollup-kk74was, r=GuillaumeGomez 3a8939e Rollup merge of rust-lang#131085 - RalfJung:miri-slow-test, r=tgross35 90d63b1 Auto merge of rust-lang#126839 - obeis:mpmc, r=Amanieu 4451aee Remove the need to provide the maximum number of digits to `impl_Display` macro 85c1cec Simplify `impl_Display` macro c4be3da Small optimization for integers Display implementation 82014ee make test_lots_of_insertions test take less long in Miri f688d7d Enable `f16` tests on non-GNU Windows e97c379 Rollup merge of rust-lang#130966 - RalfJung:ptr-metadata-const-stable, r=scottmcm e4d621e Rollup merge of rust-lang#130961 - tgross35:f16-x86-apple, r=thomcc 3c9808b Rollup merge of rust-lang#130914 - compiler-errors:insignificant-dtor, r=Amanieu 99e9853 Rollup merge of rust-lang#129638 - nickrum:wasip2-net, r=alexcrichton e2a020e Add multi-producer, multi-consumer channel (mpmc) cbc9e28 Port sort-research-rs test suite Rust stdlib tests b362019 Rollup merge of rust-lang#130972 - RalfJung:const_cell_into_inner, r=dtolnay 109f270 Rollup merge of rust-lang#129003 - Voultapher:improve-ord-docs, r=workingjubilee 07542a5 Rollup merge of rust-lang#123932 - adamse:global-alloc-safety-preconds-positive, r=tgross35 2332c3d Rollup merge of rust-lang#130931 - GuillaumeGomez:standalone-crate, r=notriddle faa018e Rename doctest attribute `standalone-crate` into `standalone_crate` for coherency e36be64 Rollup merge of rust-lang#130743 - YohDeadfall:net-nonblocking-doc, r=Mark-Simulacrum a31f882 Rollup merge of rust-lang#130416 - BatmanAoD:130122-sort-by-docs, r=Mark-Simulacrum 08ac3a0 Remove duplicate section b4307a5 Auto merge of rust-lang#128321 - BatmanAoD:catch-unwind-doc-update, r=Mark-Simulacrum 9ae087c Fix std tests for wasm32-wasip2 target b0cc902 Hook up std::net to wasi-libc on wasm32-wasip2 target 7311aa8 Auto merge of rust-lang#123778 - jhorstmann:optimize-upper-lower-auto-vectorization, r=the8472 c3d3d1a Enable `f16` tests on x86 Apple platforms 3aae770 Auto merge of rust-lang#129385 - tgross35:more-platforms-enable-f16, r=Mark-Simulacrum 2640736 Auto merge of rust-lang#130792 - tgross35:update-builtins, r=Amanieu 383f0de Rename `standalone` doctest attribute into `standalone-crate` 1f8a773 Update compiler_builtins to 0.1.130 7a5052a Rollup merge of rust-lang#128778 - RalfJung:atomic-read-read-races, r=Mark-Simulacrum 098ada1 Auto merge of rust-lang#130964 - matthiaskrgr:rollup-suriuub, r=matthiaskrgr 81fcbcd Further clarificarion for atomic and UnsafeCell docs: e7c99a7 allow mixed-size atomic reads addd05e atomics: allow atomic and non-atomic reads to race b8c2a2a stabilize const_cell_into_inner 7946445 make ptr metadata functions callable from stable const fn 9f50f5a Auto merge of rust-lang#130897 - workingjubilee:dump-hexes-with-class, r=thomcc e66058d Rollup merge of rust-lang#130922 - tyilo:udp-unspecified, r=ibraheemdev 1bd2532 Rollup merge of rust-lang#125404 - a1phyr:fix-read_buf-uses, r=workingjubilee 288b9ca Update Unicode escapes; 05590f7 Enable `f16` on platforms that were missing conversion symbols 3a00bff Auto merge of rust-lang#130946 - matthiaskrgr:rollup-ia4mf0y, r=matthiaskrgr c2bd1e3 Rollup merge of rust-lang#130926 - ChrisDenton:cc-1-1-22, r=tgross35 7ddd566 Rollup merge of rust-lang#129087 - slanterns:option_get_or_insert_default, r=dtolnay 93916ed Mark some more smart pointers as insignificant 118d2e4 Mark some more types as having insignificant dtor 9b4776b Add 'from_ref' and 'from_mut' constructors to 'core::ptr::NonNull'; 56523a9 Update Cargo.lock aabd713 Apply review feedback df28bde Apply round 1 of review comments cb0529a Fix mistake in example a9eb97b Improve Ord docs 04d9145 Reference UNSPECIFIED instead of INADDR_ANY in join_multicast_v4 edc72ca Rollup merge of rust-lang#130892 - tgross35:library-cargo-update, r=Noratrieb fdf84bf Rollup merge of rust-lang#130875 - folkertdev:naked-asm-bootstrap, r=tgross35 1b3f488 Rollup merge of rust-lang#130846 - ChrisDenton:revert-break, r=Noratrieb 89c9ef6 Rollup merge of rust-lang#130313 - c410-f3r:unlock-rfc-2011, r=thomcc ea82a96 Rollup merge of rust-lang#130880 - RalfJung:const-hack, r=scottmcm be1d9d6 Rollup merge of rust-lang#130861 - cuviper:sun-path-offset, r=ibraheemdev c1c0a1b Rollup merge of rust-lang#130845 - RalfJung:utf8chunk, r=tgross35 805d196 Rollup merge of rust-lang#130279 - theemathas:manually-drop-docs, r=thomcc,traviscross f40ec5a library: Compute `RUST_EXCEPTION_CLASS` from native-endian bytes eae051b Partially update `library/Cargo.lock` 532cd85 Add `sun_path` to the fake doc `sockaddr_un` f0660de add missing FIXME(const-hack) 0580e66 Add `[Option<T>; N]::transpose` 1341724 update `compiler_builtins` to `0.1.126` cd704d4 add a bootstrap variant of `naked_asm` a781a4a Stabilize the `map`/`value` methods on `ControlFlow` ff45313 Use `&raw` in the standard library 3d03634 Use `mem::offset_of!` for `sockaddr_un.sun_path` f50b2ba Rollup merge of rust-lang#130842 - Noratrieb:tracking-issue-inprogress, r=jieyouxu c50befe Rollup merge of rust-lang#130832 - RalfJung:sort-cfg-mess, r=workingjubilee d50c54a Rollup merge of rust-lang#130819 - bjoernager:char-must-use-len-utf, r=Noratrieb 811ce77 Rollup merge of rust-lang#130811 - RalfJung:random, r=joboet 275fb0e Revert Break into the debugger on panic (129019) f560508 Utf8Chunks: add link to Utf8Chunk 8847429 Add tracking issue for io_error_inprogress fa38b29 fix some cfg logic around optimize_for_size and 16-bit targets b9ef35a Auto merge of rust-lang#130816 - matthiaskrgr:rollup-jy25phv, r=matthiaskrgr e4f89ec Add 'must_use' attribute to 'char::len_utf8' and 'char::len_utf16'; bcb9d23 Rollup merge of rust-lang#130810 - kromych:master, r=workingjubilee a5a32e2 Rollup merge of rust-lang#130595 - no1wudi:master, r=ibraheemdev 6a06555 Rollup merge of rust-lang#130549 - biabbas:riscv32_wrs_vxworks, r=nnethercote f67efdd add link from random() helper fn to extensive DefaultRandomSource docs 4a7aeff Auto merge of rust-lang#130803 - cuviper:file-buffered, r=joshtriplett 54834b6 Don't trap into the debugger on panics under Linux 2c408b1 Rollup merge of rust-lang#130789 - aviramha:add_inprogress, r=Noratrieb 8849d13 Rollup merge of rust-lang#130788 - tgross35:memchr-pinning, r=Noratrieb,Mark-Simulacrum 2ab86f0 Add a tracking issue for `file_buffered` 963cefb Dogfood `feature(file_buffered)` 15d69c9 Pre-allocate buffers in `File::open_buffered` and `create_buffered` eb07a61 Add `File::open_buffered` and `create_buffered` 92d5cef Auto merge of rust-lang#129587 - Voultapher:opt-for-size-variants-of-sort-impls, r=cuviper c86f1ce add InProgress ErrorKind gated behind io_error_inprogress feature 6d8f5d8 Pin memchr to 2.5.0 in the library rather than rustc_ast 194bbc7 Auto merge of rust-lang#130738 - bjoernager:const-make-ascii, r=jhpratt c47920f Initial std library support for NuttX 622d08c Mark and implement 'make_ascii_uppercase' and 'make_ascii_lowercase' in '[u8]' and 'str' as const; 668b21a Rollup merge of rust-lang#130762 - RalfJung:const_intrinsic_copy, r=dtolnay 43a4d34 Rollup merge of rust-lang#129545 - notriddle:notriddle/toolbar-v2, r=GuillaumeGomez 57557c9 Add a comment to `Read::read_buf` 4a11249 Add tests f342675 Fix `io::default_read_to_end` uses of `read_buf` 57f279d Fix `io::BufReader` uses of `read_buf` 8472204 Fix `io::Take::read_buf` db0f337 stabilize const_intrinsic_copy 27136c4 Add fast path for ascii to ascii in str::replace fc983ba Fix up standard library intro 6d41b99 Clarifications for set_nonblocking methods f5406a5 Improve autovectorization of to_lowercase / to_uppercase functions bab810c random: add tracking issue, address other comments 849258c std: switch to faster random sources on macOS and most BSDs a095a76 std: implement the `random` feature ba6158c Rollup merge of rust-lang#130723 - D0liphin:master, r=workingjubilee 776d9ef Rollup merge of rust-lang#130713 - bjoernager:const-char-make-ascii, r=Noratrieb 337c634 Rollup merge of rust-lang#130659 - bjoernager:const-char-encode-utf16, r=dtolnay 8ffc170 Rollup merge of rust-lang#129550 - kornelski:boxasstr, r=joshtriplett,dtolnay a28cdff Reformat using the new identifier sorting from rustfmt 07a62f4 reword edge-conditions documentation on all slice 'sort' functions; resolves rust-lang#130122 9bcb2d9 Add test for `available_parallelism()` 474b9af Mark 'make_ascii_uppercase' and 'make_ascii_lowercase' in 'u8' as const; Rename 'const_char_make_ascii' feature gate to 'const_make_ascii'; b3d4fde Rollup merge of rust-lang#130692 - RalfJung:result-flatten, r=Noratrieb 55becb0 Rollup merge of rust-lang#130670 - the8472:read-to-end-heuristics, r=ChrisDenton 202df81 Rollup merge of rust-lang#130658 - EqualMa:patch-1, r=scottmcm 9c26e05 Auto merge of rust-lang#130697 - bjoernager:const-char-make-ascii, r=dtolnay 36b115f Mark 'make_ascii_uppercase' and 'make_ascii_lowercase' in 'char' as const; 98aba66 make unstable Result::flatten a const fn d098993 Rollup merge of rust-lang#130653 - RalfJung:result-abi-compat, r=traviscross 2953dee Rollup merge of rust-lang#130408 - okaneco:into_lossy_refactor, r=Noratrieb 94105e8 wait for two short reads before uncapping the max read size dea467a Mark and implement 'char::encode_utf16' as const; Rewrite 'encode_utf16_raw'; 49128a4 Fix docs of compare_bytes db6427b ABI compatibility: mention Result guarantee 1632f8f Reword ManuallyDrop+Box interaction 4969ea8 Rollup merge of rust-lang#129718 - lolbinarycat:remove_dir-docs, r=Noratrieb c11b3aa Avoid re-validating UTF-8 in `FromUtf8Error::into_utf8_lossy` 93f5e21 Auto merge of rust-lang#130631 - GuillaumeGomez:rollup-jpgy1iv, r=GuillaumeGomez a7aac1e Remove double spaces 74935ec Rollup merge of rust-lang#130624 - theemathas:vec_as_non_null, r=Noratrieb 2c9a4e3 Rollup merge of rust-lang#130611 - bjoernager:const-char-encode-utf8, r=dtolnay 25ab8ef Rollup merge of rust-lang#130526 - eholk:pin-reborrow, r=compiler-errors 97c4937 Rollup merge of rust-lang#128209 - beetrees:no-macos-10.10, r=jieyouxu 3e5c662 Auto merge of rust-lang#124895 - obeis:static-mut-hidden-ref, r=compiler-errors 31d575b Add `Vec::as_non_null` 54e23b5 Address diagnostics regression for 'const_char_encode_utf8'; 557a0b8 Allow unused unsafe for vxworks in alligned_malloc to resolve build errors 7ae6827 [Clippy] Remove final std paths for diagnostic item 7b1c5e8 Allow shortening reborrows 86240c7 Add `#[track_caller]` to allocating methods of `Vec` & `VecDeque` 3394557 Rollup merge of rust-lang#130554 - ShE3py:unsupported-exitcode, r=Noratrieb 17b0e39 Rollup merge of rust-lang#130553 - GnomedDev:remove-clippy-paths, r=compiler-errors 64a5984 Rollup merge of rust-lang#128001 - Krappa322:master, r=scottmcm 81c4805 Add str.as_str() for easy dereferencing of Box<str> 4ea6b82 `pal::unsupported::process::ExitCode`: use an `u8` instead of a `bool` cb771b2 [Clippy] Swap `open_options` to use diagnostic items instead of paths 04bd505 [Clippy] Swap `iter_over_hash_type` to use diagnostic items instead of paths 8147cf4 [Clippy] Swap `non_octal_unix_permissions` to use diagnostic item instead of path 1b0be2a [Clippy] Swap `unnecessary_owned_empty_strings` to use diagnostic item instead of path 9edfe1d [Clippy] Swap `manual_strip` to use diagnostic items instead of paths 995238c [Clippy] Swap `unnecessary_to_owned` to use diagnostic item instead of path c1a4a69 [Clippy] Swap `instant_subtraction` to use diagnostic item instead of path beaebb5 [Clippy] Swap `waker_clone_wake` to use diagnostic item instead of path 925c1c4 [Clippy] Swap `filter_map_bool_then` to use diagnostic item instead of path 7bc30a7 [Clippy] Swap `manual_while_let_some` to use diagnostic items instead of paths 08b676d [Clippy] Swap `repeat_vec_with_capacity` to use diagnostic item instead of path b95bef0 [Clippy] Swap `VecArgs::hir` to use diagnostic items instead of paths 6906fa9 [Clippy] Swap `single_char_add_str`/`format_push_string` to use diagnostic items instead of paths b2dc66e [Clippy] Swap `manual_main_separator_str` to use diagnostic item instead of path a61b7b7 [Clippy] Swap `redundant_clone` to use diagnostic items instead of paths 3310a0b [Clippy] Swap `float_equality_without_abs` to use diagnostic items instead of paths 6ef72c4 [Clippy] Swap `option_as_ref_deref` to use diagnostic items instead of paths b8c0c3b [Clippy] Swap `lines_filter_map_ok` to use a diagnostic item instead of path 116e527 [Clippy] Swap `map_entry` to use diagnostic items instead of paths 03ff0df Auto merge of rust-lang#130547 - workingjubilee:rollup-tw30khz, r=workingjubilee 6210ecb Auto merge of rust-lang#130511 - bjoernager:const-char-encode-utf8, r=dtolnay ccb31b8 run `x.py fmt` 9510c76 remove feature attributes as const_maybe_uninit_as_mut_ptr is stabilized c12546b stabilize `const_maybe_uninit_as_mut_ptr` e94c080 Mark and implement 'char::encode_utf8' as const. 1509944 Rollup merge of rust-lang#130522 - GnomedDev:clippy-manual-retain-paths, r=compiler-errors 8a9576c Rollup merge of rust-lang#130513 - shekhirin:fs-write-doc-comment, r=cuviper d53d48a Rollup merge of rust-lang#130487 - cuviper:min-llvm-18, r=nikic f63c0c1 Rollup merge of rust-lang#130476 - workingjubilee:more-lazy-methods-take-2, r=Amanieu 09e36ad Rollup merge of rust-lang#129934 - ChrisDenton:remove-dir-all3, r=Amanieu 5480d57 Rollup merge of rust-lang#97524 - ibraheemdev:thread-raw, r=ibraheemdev 886fc13 Revert "Add a hack to prevent proc_macro misopt in CI" 56704d4 Begin experimental support for pin reborrowing 262a08b library: Call it really_init_mut to avoid name collisions 51023b5 library: Destabilize Lazy{Cell,Lock}::{force,deref}_mut ff51d9f [Clippy] Swap `manual_retain` to use diagnostic items instead of paths 28695bf Auto merge of rust-lang#130497 - saethlin:alloc-zeroed-is-unstable, r=bjorn3 8f6ca5b Clarify docs for std::fs::File::write b19bf06 Auto merge of rust-lang#129491 - StackOverflowExcept1on:master, r=m-ou-se 37eb770 Auto merge of rust-lang#129845 - scottmcm:redo-layout, r=Noratrieb cc10a76 Take more advantage of the `isize::MAX` limit in `Layout` d740b8d read_volatile __rust_no_alloc_shim_is_unstable in alloc_zeroed c4fe01a add `Thread::{into_raw, from_raw}` e65d8e8 Rollup merge of rust-lang#130481 - krtab:clamp_partial_ord, r=cuviper f3a53b7 Auto merge of rust-lang#130483 - matthiaskrgr:rollup-q1r0g0y, r=matthiaskrgr 46a0aa8 Remove uneeded PartialOrd bound in cmp::Ord::clamp c83fbfd Rollup merge of rust-lang#130467 - RalfJung:miri-sync, r=RalfJung 6893990 Rollup merge of rust-lang#129674 - matthewpipie:rc-arc-new-cyclic-in, r=dtolnay a0f4a4b Implement ACP 429: add `Lazy{Cell,Lock}::get[_mut]` and `force_mut` 7505e29 Rollup merge of rust-lang#128535 - mmvanheusden:master, r=workingjubilee 8a5922f Auto merge of rust-lang#130145 - fee1-dead-contrib:repeatn, r=lcnr,workingjubilee c15d489 Merge from rustc e80d16c Rollup merge of rust-lang#130448 - alilleybrinker:master, r=workingjubilee cd8a7af Update library/alloc/src/sync.rs 2819604 Auto merge of rust-lang#127633 - SamuelMarks:eq-exit-code, r=dtolnay 49a855d fix: Remove duplicate `LazyLock` example. 9af97fc Rollup merge of rust-lang#127879 - kornelski:bad-pointer-printf, r=workingjubilee 2c1bd02 Merge from rustc fc9c900 Auto merge of rust-lang#130220 - RalfJung:float-classify, r=workingjubilee 35edcb6 update docs for `catch_unwind` & related funcs ee67105 Rollup merge of rust-lang#130339 - CAD97:unwind-choice, r=dtolnay f396849 simplify abort_unwind b66efdd Rollup merge of rust-lang#129439 - okaneco:vec_string_lossy, r=Noratrieb af73374 Rollup merge of rust-lang#130381 - workingjubilee:sometimes-code-really-is-self-descriptive, r=Noratrieb 524402a Rollup merge of rust-lang#130118 - RalfJung:unwrap_unchecked, r=Noratrieb 3dccb86 Rollup merge of rust-lang#129195 - RalfJung:const-mut-refs, r=fee1-dead 524a5e1 also stabilize const_refs_to_cell 29c8eef const_refs_to_cell: dont let mutable references sneak past the interior mutability check 5671193 stabilize const_mut_refs 085baa2 library: Compute Rust exception class from its string repr fc53427 Rollup merge of rust-lang#130214 - RalfJung:zeroed, r=Mark-Simulacrum 0e7d343 Rollup merge of rust-lang#130061 - theemathas:box_vec_non_null, r=MarkSimulacrum,workingjubilee 09f1d40 Rollup merge of rust-lang#130042 - lolbinarycat:bufreaker_peek_eof, r=Amanieu 0fd6e23 Add tracking issue number for `box_vec_non_null` d38c59a Rollup merge of rust-lang#130290 - passcod:stabilise-entry-insert, r=ChrisDenton 96b5b7c Rollup merge of rust-lang#130268 - RalfJung:simd-shuffle-idx-vector, r=compiler-errors 79d937d simd_shuffle: require index argument to be a vector 857ad22 Rollup merge of rust-lang#130053 - glowcoil:next_if-docs, r=jhpratt 9c71d4e add std::panic::abort_unwind 91ebe06 add core::panic::abort_unwind f30a0ad Merge from rustc 24fa8b9 Rustfmt 4f3d542 [`cfg_match`] Generalize inputs 80f8aeb Fix awkward wording. 84d77be Address WaffleLapkin's comments 84da2fc Update tests for hidden references to mutable static 34e22e8 Rollup merge of rust-lang#130245 - RalfJung:miri-alloc-backtrace, r=Amanieu ba73022 Stabilize entry_insert 283ce13 Auto merge of rust-lang#130281 - matthiaskrgr:rollup-1b2ibs8, r=matthiaskrgr ac68273 Rollup merge of rust-lang#130101 - RalfJung:const-cleanup, r=fee1-dead 6695a56 Document subtleties of `ManuallyDrop` 1128894 Stabilize `const_float_classify` 0de0540 Auto merge of rust-lang#129992 - alexcrichton:update-compiler-builtins, r=tgross35 553ca3f also update the wrapping_ docs to use similar wording 27049a0 Rollup merge of rust-lang#130160 - Scripter17:fix-slice-first_mut-doc, r=Amanieu 03dedd9 Rollup merge of rust-lang#125060 - ChrisJefferson:pathbuf-doc, r=workingjubilee abe63f6 simplify float::classify logic 34e4b6d Fixup docs for PathBuf 22ffa3d Expand PathBuf documentation 4afc77f Merge from rustc 5997b68 Auto merge of rust-lang#130183 - Marcondiro:unicode-16.0.0, r=Manishearth 60b4cf8 Rollup merge of rust-lang#130248 - nyurik:fix-129895, r=workingjubilee 136504a Rollup merge of rust-lang#130168 - juliusl:pr/fix-win-fs-change-time-links, r=ChrisDenton e9cd33c Rollup merge of rust-lang#130077 - madsmtm:watchos-arm-unwind, r=workingjubilee 0ff8428 Rollup merge of rust-lang#129835 - RalfJung:float-tests, r=workingjubilee 15a8ea1 Rollup merge of rust-lang#129696 - RalfJung:stdarch, r=Amanieu e977a44 Limit `libc::link` usage to `nto70` target only, not NTO OS acd2526 various updates based on review dbf585c make basic allocation functions track_caller in Miri for nicer backtraces 3e2ea2b chore: remove struct details 6ff27d2 Rollup merge of rust-lang#130207 - GrigorenkoPV:ERROR_CANT_RESOLVE_FILENAME, r=ChrisDenton 0a47644 Rollup merge of rust-lang#130206 - GrigorenkoPV:WSAEDQUOT, r=ChrisDenton 61a646b Rollup merge of rust-lang#129866 - root-goblin:patch-1, r=workingjubilee bfe2669 docs: remove struct info 3c00ffa ptr::add/sub: these are *not* equivalent to offset(count as isize) e8ddc86 update stdarch a55bf34 MaybeUninit::zeroed: mention that padding is not zeroed 04c4ab4 clean up internal comments about float semantics fc9b01f these tests seem to work fine on i586 these days 95de48b Auto merge of rust-lang#129403 - scottmcm:only-array-simd, r=compiler-errors 95f9af0 Clarify docs for std::collections cc0044c Map `ERROR_CANT_RESOLVE_FILENAME` to `ErrorKind::FilesystemLoop` fde9f6b Map `WSAEDQUOT` to `ErrorKind::FilesystemQuotaExceeded` 22c4e8e Auto merge of rust-lang#130025 - Urgau:missing_docs-expect, r=petrochenkov 0eb5d75 Bump unicode printable to version 16.0.0 17e1039 Bump unicode_data to version 16.0.0 4d5609f Auto merge of rust-lang#130179 - workingjubilee:rollup-l78cv44, r=workingjubilee d9d3751 Ban non-array SIMD 7e4cfbc Rollup merge of rust-lang#130164 - RalfJung:const_ptr_as_ref, r=dtolnay 3fdbce0 Rollup merge of rust-lang#130146 - folkertdev:bootstrap-naked-asm, r=Amanieu 0bbb25d Rollup merge of rust-lang#130132 - sunshowers:illumos-sigsegv, r=Noratrieb ec7fd8a Rollup merge of rust-lang#128316 - GrigorenkoPV:io_error_a_bit_more, r=dtolnay 237b11d Auto merge of rust-lang#129778 - RalfJung:interp-lossy-typed-copy, r=saethlin b47535f chore: removing supporting links in favor of existing doc-comment style b6f9e80 maint: update docs for change_time ext and doc links f7b7aa3 Rollup merge of rust-lang#130154 - okaneco:stabilize_char_min, r=cuviper 5a87e4c Rollup merge of rust-lang#130067 - madsmtm:clean-up-fs-test, r=ChrisDenton 41cd571 move const fn with a null check into const_ptr_is_null gate f28b1d1 move some const fn out of the const_ptr_as_ref feature 4b1440a Fix slice::first_mut docs pointer -> reference 2bc7f6c Stabilize `char::MIN` d257159 fix UB in a test 931d271 Add missing `#[allow(missing_docs)]` on hack functions in alloc 4f77831 `RepeatN`: use MaybeUninit 0414a2e bootstrap `naked_asm!` for `compiler-builtins` 2582bbb Rollup merge of rust-lang#130115 - eduardosm:needless-returns-libs, r=workingjubilee e8d9b85 Rollup merge of rust-lang#130107 - RalfJung:const-ptr-is-null, r=oli-obk 2e128a2 Rollup merge of rust-lang#130090 - RalfJung:result-copied, r=Noratrieb 2ee8304 Rollup merge of rust-lang#130087 - RalfJung:option-const-iter, r=workingjubilee af9a77d [illumos] enable SIGSEGV handler to detect stack overflows 1b763fc remove const_slice_index annotations, it never had a feature gate anyway 9849587 add FIXME(const-hack) 565b336 move Option::unwrap_unchecked into const_option feature gate f9a9560 Remove needless returns detected by clippy in libraries cc4242b const: make ptr.is_null() stop execution on ambiguity 295946c Option, Result: put the &mut variants of 'copied' under the same feature as the '&' variants 4caabcd Auto merge of rust-lang#130002 - orlp:better-div-floor-ceil, r=thomcc 55f602f Auto merge of rust-lang#129019 - kromych:master, r=workingjubilee 84184ab Fix linking error when compiling for 32-bit watchOS e954412 remove pointless rustc_const_unstable on trait impls 0dc4621 add some FIXME(const-hack) 796ae33 Auto merge of rust-lang#130091 - matthiaskrgr:rollup-kalu1cs, r=matthiaskrgr 64afc03 Rollup merge of rust-lang#130047 - ChrisDenton:win-dbghelp, r=wesleywiser 9448662 Rollup merge of rust-lang#130046 - RalfJung:const_str_as_mut, r=dtolnay 2feca1e Rollup merge of rust-lang#129555 - RalfJung:const_float_bits_conv, r=dtolnay 72723d7 make Result::copied unstably const 5011671 remove 'const' from 'Option::iter' 3a53537 str: make as_mut_ptr and as_bytes_mut unstably const 9469575 restate GlobalAlloc method safety preconditions in terms of what the caller has to do for greater clarity ff7b661 Remove now redundant check in symlink_hard_link test 459f246 Add `NonNull` convenience methods to `Vec` a2e7f8b Add `NonNull` convenience methods to `Box` d1005f5 fix doc comments for Peekable::next_if(_eq) a9cf084 Remove duplicate impl 7b61eea remove the Clone requirement d6e859b Win: Add dbghelp to the list of import libraries 335236c properly handle EOF in BufReader::peek b2d6fdd [library/std/src/process.rs] Remove `Eq` `derive` 678165e Break into the debugger (if attached) on panics (Windows, macOS, Linux, FreeBSD) b947f0a better implementation of signed div_floor/ceil 355445b [library/std/src/process.rs] Update docstring with @joshtriplett's replacement text 0d4a80e Update compiler-builtins to 0.1.125 5446229 Use non-overlapping swap for inner heapsort loop 670630d Select tiny sorts for 16-bit platforms cd3d6e8 Shrink heapsort further by combining sift_down loops bea61da Drop bubble_sort 83938b9 Remove macOS 10.10 dynamic linker bug workaround be2b964 Win: Open dir for sync access in remove_dir_all a4c4e23 stabilize const_float_bits_conv 3a754b1 Improve documentation for <integer>::from_str_radix 24eca28 add new_cyclic_in for Arc 88d85a8 improve comments 3e677e3 fix new_cyclic_in for rc 7d4ef17 fix fmt 717e3aa Use simpler branchy swap logic in tiny merge sort 5fa71af add guarantee about remove_dir and remove_file error kinds ea236f0 add new_cyclic_in for rc ae57bdf Use last swap optimization in bubblesort 2fa330e Convert cfg blocks to cfg_if f46fcfe Reduce code duplication by moving partition_lomuto_branchless_simple into quicksort module 1805c29 Add binary-size optimized variants for stable and unstable sort as well as select_nth_unstable 4bc6b1f Pass `fmt::Arguments` by reference to `PanicInfo` and `PanicMessage` 1339c1b Implement feature `string_from_utf8_lossy_owned` 9b21aa0 Document futility of printing temporary pointers 028104e Refer to other docs e0fe4a7 Add unordered list with possible values for each const 84ea721 Format std::env::consts docstrings 7921401 stabilize `option_get_or_insert_default` 8744732 Partially stabilize `io_error_more` 79855bb [library/std/src/process.rs] `PartialEq` & `Eq` for `ExitCode` git-subtree-dir: library git-subtree-split: 771d77c
tautschnig
added a commit
to tautschnig/verify-rust-std
that referenced
this pull request
Jan 17, 2025
b102eb97611 Rollup merge of #135003 - RalfJung:deprecate-allowed-through-unstable, r=davidtwco
09ccac89813 Rollup merge of #132654 - joboet:lazy_main, r=ChrisDenton
9a5f11b6bdc Auto merge of #135525 - jhpratt:rollup-4gu2wpm, r=jhpratt
808a28bb2e5 Rollup merge of #134678 - zachs18:offset-ptr-update, r=tgross35
038b55923da Rollup merge of #134338 - tgross35:overflowing-c-safe-ret, r=bjorn3,antoyo
afb7906d983 Rollup merge of #134143 - nyurik:err-nul, r=dtolnay
09f7f735638 intrinsics: deprecate calling them via the unstable std::intrinsics path
b1bab8efb30 Update ReadDir::next in std::sys::pal::unix::fs to use `&raw const (*ptr).field` instead of `ptr.offset(...).cast()`.
6b3eb0e11bc Update compiler-builtins to 0.1.143
c26fde2487d Rollup merge of #135423 - compiler-errors:enforce-const-trait-syntactical, r=oli-obk,RalfJung
d4e61054fa0 Enforce syntactical stability of const traits in HIR
8cba3108c65 Update compiler-builtins to 0.1.141
72304171451 add comments explaining main thread identification
de1528ca1d5 std: lazily allocate the main thread handle
7d65632251e Revert "Remove the Arc rt::init allocation for thread info"
1938ccffee3 Auto merge of #135473 - matthiaskrgr:rollup-ksnst4l, r=matthiaskrgr
e57af4cc513 Rollup merge of #135381 - cod10129:vec-splice-doc, r=tgross35
4b1f813eb19 Auto merge of #135359 - RalfJung:lang-start-unwind, r=joboet
3a1522edb09 Auto merge of #135465 - jhpratt:rollup-7p93bct, r=jhpratt
d68853badd5 Rollup merge of #135393 - Ayush1325:uefi-helper-path, r=thomcc
2583e5e939e Add another `Vec::splice` example
e53c5c9c5db uefi: helpers: Introduce OwnedDevicePath
f17b1628cec Rollup merge of #135405 - Ayush1325:path-is-absolute, r=tgross35
41ac367ffc7 path: Move is_absolute check to sys::path
44a9def9f39 Auto merge of #135420 - GuillaumeGomez:rollup-93vepka, r=GuillaumeGomez
242154d7a56 Auto merge of #135384 - saethlin:inline-copy-from-slice, r=joboet
d76bc765c20 Update the explanation for why we use box_new in vec!
a8314e3425d Auto merge of #135402 - matthiaskrgr:rollup-cz7hs13, r=matthiaskrgr
736f71506f1 Rollup merge of #135379 - steffahn:uniquerc-invariant, r=Mark-Simulacrum
f1fd86b54fa Add inherent versions of MaybeUninit methods for slices
50cffd12adb Add #[inline] to copy_from_slice
221253c726d Auto merge of #135360 - RalfJung:structural-partial-eq, r=compiler-errors
8853a8d51d2 Make UniqueRc invariant for soundness
5c997f2acdc avoid nesting the user-defined main so deeply on the stack
1f09d97cbf0 use a single large catch_unwind in lang_start
3093827de07 update and clarify StructuralPartialEq docs
e2f8a108b9a Rename `pos` to `position`
c6dff32f287 Convert `struct FromBytesWithNulError` into enum
e47fc56aa4a Rollup merge of #135347 - samueltardieu:push-qvyxtxsqyxyr, r=jhpratt
d8923fc714a Rollup merge of #135324 - Ayush1325:uefi-fs-unsupported, r=joboet
9709d9bad5d Rollup merge of #135236 - scottmcm:more-mcp807-library-updates, r=ChrisDenton
849afc40e34 Improve the safety documentation on new_unchecked
2add857ca03 Use `NonNull::without_provenance` within the standard library
2764b7e14ab alloc: remove unsound `IsZero` for raw pointers
c577821efe2 Rollup merge of #134693 - SpriteOvO:proc-macro-use-to-tokens-in-quote, r=tgross35
7dbc3bcab16 Rollup merge of #132607 - YohDeadfall:pthread-name-fn-with-result, r=tgross35
ab71837c330 Update a bunch of library types for MCP807
4052574937d Initial fs module for uefi
946c19e04cb Rollup merge of #134908 - madsmtm:ptr-from_ref-docs, r=ibraheemdev
01372432cbb Rollup merge of #134619 - hkBst:patch-7, r=jhpratt
c22148b767f Fix `proc_macro::quote!` for raw ident
c421c1a946a Append `TokenTree` with `ToTokens` in `proc_macro::quote!`
c283b86cc76 Used pthread name functions returning result for FreeBSD and DragonFly
668cb10cba5 Auto merge of #135268 - pietroalbini:pa-bump-stage0, r=Mark-Simulacrum
f3f0119335a Rollup merge of #135269 - estebank:unneeded-into, r=compiler-errors
d7dd4a6bc58 Rollup merge of #135242 - RalfJung:nonnull-provenance, r=jhpratt
a34edcbbb60 Remove some unnecessary `.into()` calls
661c077ae5b fmt
9d29620a31a update cfg(bootstrap)
60fa1562951 update version placeholders
c0e33bf31ca add missing provenance APIs on NonNull
830ee4bb4d6 Rollup merge of #135176 - kornelski:env-example, r=cuviper
790735e2a6d Rollup merge of #134389 - rust-wasi-web:condvar-no-threads, r=m-ou-se
b3fa835baa8 Rollup merge of #133057 - tisonkun:into-chars, r=Amanieu
3987eb22905 Avoid naming variables `str`
7c71ffcfa97 Rollup merge of #135139 - c410-f3r:8-years-rfc, r=jhpratt
6536ec2d9b0 Rollup merge of #131830 - hoodmane:emscripten-wasm-eh, r=workingjubilee
e44be94c9eb More compelling env_clear() examples
5db91e58005 Rollup merge of #135153 - crystalstall:master, r=workingjubilee
cb8cf0fa5d0 Add support for wasm exception handling to Emscripten target
a1da07b21df chore: remove redundant words in comment
b2b55f6bdae Rollup merge of #135111 - tgross35:float-doc-aliases, r=Noratrieb
0bd45849186 [generic_assert] Constify methods used by the formatting system
c200a189c66 Rollup merge of #135121 - okaneco:const_slice_reverse, r=jhpratt
e03872bb30a Mark `slice::reverse` unstably const
0e581b92097 Clarified the documentation on core::iter::from_fn and core::iter::successors
320482169fb Rollup merge of #135110 - matthiaskrgr:adler, r=workingjubilee
e7ca1049aa7 Rollup merge of #135104 - the8472:disable-in-place-iter-for-flatten, r=Mark-Simulacrum
8ffc4e84463 Rollup merge of #134996 - bdbai:uwp-support, r=jieyouxu,ChrisDenton
fee42729979 Add doc aliases for `libm` and IEEE names
f4b33a3e46f library: fix adler{-> 2}.debug
2e05379f866 add regression test for unsound Flatten/FlatMap specialization
9467350f844 do not in-place-iterate over flatmap/flatten
6346a915b55 Rollup merge of #135091 - workingjubilee:backtrace-0.3.75, r=workingjubilee
3ef2891d388 Rollup merge of #135070 - klensy:backtrace-deps, r=workingjubilee
24366d36dce Rollup merge of #135046 - RalfJung:rustc_box_intrinsic, r=compiler-errors
307f559c6c4 Rollup merge of #133964 - joboet:select_unpredictable, r=tgross35
0b2fd26bdc8 Bump backtrace to 0.3.75
3d624d66f11 Rollup merge of #133420 - thesummer:rtems-unwind, r=workingjubilee
6137ccc52ac sync to actual dep verions of backtrace
318269a33f4 turn rustc_box into an intrinsic
bd743cec036 Auto merge of #135059 - matthiaskrgr:rollup-0ka9o3h, r=matthiaskrgr
e74ac082b32 Rollup merge of #134241 - liigo:patch-16, r=dtolnay
53e41a6a5a7 Auto merge of #134692 - GrigorenkoPV:sync_poision, r=tgross35
366ac34fa96 Fix UWP build
cd6c49f49b5 Bump backtrace to rust-lang/backtrace-rs@4d7906b
98ee6c8c68c Auto merge of #122565 - Zoxc:atomic-panic-msg, r=the8472
ffaa2184220 path in detail
aa0e6e8bd1a Move some things to `std::sync::poison` and reexport them in `std::sync`
b8087f526a0 fix doc for missing Box allocator consistency
40434b2c26c Auto merge of #135005 - matthiaskrgr:rollup-5ubuitt, r=matthiaskrgr
32614550fb9 Rollup merge of #134985 - mgsloan:remove-unnecessary-qualification-in-Ord-trait-docs, r=Noratrieb
d5f262cc53a Rename the internal simpler `quote` macro to `minimal_quote`
6c8e14169a9 Auto merge of #134080 - kleisauke:avoid-lfs64-emscripten, r=Noratrieb
33b4b03fe6a Try to write the panic message with a single `write_all` call
8795c3547eb std::fs::DirEntry.metadata(): prefer use of lstat() on Emscripten
fb895251bd9 Avoid use of LFS64 symbols on Emscripten
ed5888769c6 Auto merge of #134969 - Marcondiro:master, r=jhpratt,programmerjake
c1b709541e2 Rollup merge of #131439 - mu001999-contrib:cleanup/static-mut, r=estebank
847cd898006 Remove qualification of `std::cmp::Ordering` in `Ord` doc
e38fc1b0843 Auto merge of #132195 - clarfonthey:bigint-mul, r=scottmcm
4f7e5a623be Auto merge of #134966 - matthiaskrgr:rollup-lmhmgsv, r=matthiaskrgr
aff952b674c char to_digit: avoid unnecessary casts to u64
9e0a6b0a3c4 Rollup merge of #134953 - DiuDiu777:unaligned-doc, r=RalfJung
b003e5812c2 Auto merge of #134620 - ChrisDenton:line-writer, r=tgross35
8b8fd2d5855 Rollup merge of #134930 - RalfJung:ptr-docs-valid-access, r=jhpratt
d487d12d362 Rollup merge of #134927 - DaniPopes:const-as_flattened_mut, r=scottmcm
bfe0d0f6000 fix doc for read write unaligned in zst operation
99ca6ca7611 Auto merge of #134757 - RalfJung:const_swap, r=scottmcm
316349488dc ptr docs: make it clear that we are talking only about memory accesses
b7b6a5d0649 Make slice::as_flattened_mut unstably const
0b1d0d95c67 Fix ptr::from_ref documentation example comment
f26cc531ab6 Rollup merge of #134884 - calciumbe:patch1, r=jieyouxu
b7620c7c1d9 Rollup merge of #134870 - geofft:patch-1, r=jhpratt
9adc4a11633 fix: typos
f5e949debed Rollup merge of #134851 - lukas-code:alloc-ffi, r=tgross35
309cb6599b7 Fix sentence fragment in `pin` module docs
d086afd99b8 docs: inline `alloc::ffi::c_str` types to `alloc::ffi`
15137457840 Auto merge of #134547 - SUPERCILEX:unify-copy, r=thomcc
5807d879643 Rollup merge of #134832 - tgross35:update-builtins, r=tgross35
c6c4ae7c842 Tidy up bigint mul methods
a9e94810233 Rollup merge of #134823 - chloefeal:fix, r=tgross35,dtolnay
0e23de8b41d Update library/alloc/tests/sort/tests.rs
c94032f1779 Update `compiler-builtins` to 0.1.140
a41400395c5 Rollup merge of #133663 - scottmcm:carrying_mul_add, r=Amanieu
764af3bad24 Override `carrying_mul_add` in cg_llvm
18ee1da10b9 Move `{widening, carrying}_mul` to an intrinsic with fallback MIR
559fdf03383 Fix typos
acfeed3d3df Auto merge of #134822 - jieyouxu:rollup-5xuaq82, r=jieyouxu
5fb4df97165 Rollup merge of #134819 - ChrisDenton:trunc, r=Mark-Simulacrum
68b148643ac Rollup merge of #134622 - ChrisDenton:write-file-utf8, r=Mark-Simulacrum
6f23131fac2 Rollup merge of #134606 - RalfJung:ptr-copy-docs, r=Mark-Simulacrum
e290e70bdc1 Auto merge of #134786 - ChrisDenton:fix-rename-symlink, r=tgross35
5cf455ff60d Fix renaming symlinks on Windows
0a3943e9496 Fix mistake in windows file open
051ece2a59c Rollup merge of #134791 - notriddle:notriddle/inline-ffi-error-types, r=tgross35
3a2ca84c46f Rollup merge of #134789 - betrusted-io:bump-unwinding-to-0.25.0, r=Mark-Simulacrum
3cbbd43963e Rollup merge of #134782 - wtlin1228:docs/iter-rposition, r=Mark-Simulacrum
1e8a843e7fd Rollup merge of #134728 - deltragon:barrier-doc, r=tgross35
9b632c12457 Rollup merge of #134649 - SUPERCILEX:statx-remember, r=thomcc
a9b12533594 Rollup merge of #134644 - kpreid:duplicates, r=Mark-Simulacrum
7d72bc6894b Rollup merge of #134379 - bjoernager:slice-as-array, r=dtolnay
c988c5c469a docs: inline `core::ffi::c_str` types to `core::ffi`
f3a43e876b3 docs: inline `std::ffi::c_str` types to `std::ffi`
ef9344328ea unwinding: bump version to fix asm
b5a7e1cb2c3 Impl FromIterator for tuples with arity 1-12
97a492b242e Fix formatting
7bb71817d2d docs: update code example for Iterator#rposition
838b01dae5e stabilize const_alloc_layout
7c4bb0b875d rename typed_swap → typed_swap_nonoverlapping
3d7df0fa2cb stabilize const_swap
adefdcb1aaf Auto merge of #134729 - oliveredget:typo, r=jieyouxu
a76414742c2 Auto merge of #134722 - ChrisDenton:trunc, r=Amanieu
7102c61d871 Auto merge of #134333 - daxpedda:stdarch-bump, r=daxpedda
781fb68dbba Fix compilation issues on other unixes
2b6589fec62 Bump `stdarch`
301f4c8ba3f chore: fix typos
b3642490a4a Use scoped threads in `std::sync::Barrier` examples
efbda65a57a Windows: Use FILE_ALLOCATION_INFO for truncation
0429732714d Rollup merge of #134689 - RalfJung:ptr-swap-test, r=oli-obk
f71f75d522a Rollup merge of #134662 - ionicmc-rs:any-safety-docs, r=Amanieu
6fc5a515b01 core: fix const ptr::swap_nonoverlapping when there are pointers at odd offsets in the type
2a7c4107dd3 Rollup merge of #134363 - estebank:derive-default, r=SparrowLii
6a41c5bd0cd Rollup merge of #134672 - Zalathar:revert-coverage-attr, r=wesleywiser
00523c6df55 Use `#[derive(Default)]` instead of manually implementing it
7a6c4cf81d9 Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser"
1d47e6a5af8 Auto merge of #134666 - matthiaskrgr:rollup-whe0chp, r=matthiaskrgr
47eacac789d Auto merge of #131311 - rust-lang:cargo_update, r=clubby789
08311d3b105 Rollup merge of #134642 - kpreid:pointerlike-cell, r=compiler-errors
49d33b15720 Rollup merge of #134583 - Enselic:maybe-uninit-transmute, r=workingjubilee
ce16d167b68 Rollup merge of #130289 - intgr-forks:Permissions-readonly-vs-unix-root, r=ChrisDenton
5ec57233686 Fixes safety docs for `dyn Any + Send {+ Sync}`
e31ed41f4ba Implement `PointerLike` for `isize`, `NonNull`, `Cell`, `UnsafeCell`, and `SyncUnsafeCell`.
736e842fc2a Auto merge of #134330 - scottmcm:no-more-rvalue-len, r=matthewjasper
1a45918d751 docs: Permissions.readonly() also ignores root user special permissions
e15ef644395 Improve prose around `as_slice` example of IterMut
d03b67c2429 Specify only that duplicates are discarded, not the order.
e70cbb149f5 Auto merge of #131193 - EFanZh:asserts-vec-len, r=the8472
619365dce13 Delete `Rvalue::Len`
f913021f500 docs: `transmute<&mut T, &mut MaybeUninit<T>>` is unsound when exposed to safe code
0233b4ec888 Impl String::into_chars
56cc86af99f Rollup merge of #134602 - kpreid:pointerlike-doc, r=tgross35
9549c0c5306 Fix forgetting to save statx availability on success
c50706f5f04 Auto merge of #134640 - matthiaskrgr:rollup-xlstm3o, r=matthiaskrgr
42621a94cbe Document collection `From` and `FromIterator` impls that drop duplicate keys.
22c6dcd7b19 Rollup merge of #134630 - fifty-six:master, r=workingjubilee
9c5420a144f Auto merge of #130733 - okaneco:is_ascii, r=scottmcm
a5f05c31739 cargo update
88936d663d5 Eliminate redundant statx syscalls
ae80bcc9736 Rollup merge of #134325 - theemathas:is_null-docs, r=RalfJung
37803ed66ad Rollup merge of #131072 - Fulgen301:windows-rename-posix-semantics, r=ChrisDenton
3edae543ffa Use `&raw` for `ptr` primitive docs
9f89bf55fb2 Unify fs::copy and io::copy
8f6317d2b8a Windows: Use WriteFile to write to a UTF-8 console
dca1911ca13 Avoid short writes in LineWriter
10f58801c5e Document CTFE behavior of methods that call is_null
52c70cefc4e Correctly document is_null CTFE behavior.
8240334bbea ptr::copy: fix docs for the overlapping case
3d7ea928c48 Rollup merge of #134593 - kornelski:less-unwrap, r=jhpratt
8d44917bb2b Rollup merge of #134579 - hkBst:patch-6, r=jhpratt
d1a3570e402 Rollup merge of #134577 - hkBst:patch-5, r=jhpratt
797d88a4f6e Rollup merge of #134576 - hkBst:patch-4, r=jhpratt
0d4f2977e8f Document `PointerLike` implementation restrictions.
39c036dacf9 Less unwrap() in documentation
9eacbacb845 Rollup merge of #123604 - michaelvanstraten:proc_thread_attribute_list, r=ChrisDenton
605e793d35f Rollup merge of #134573 - lukas-code:unimpl-dyn-pointerlike, r=compiler-errors
03b554d4296 Rollup merge of #134570 - hkBst:patch-3, r=joboet
cb9fd5abb2d Rollup merge of #134560 - RalfJung:miri-thread-spawn, r=jhpratt
8ef4e1708c6 Improve prose around into_slice example of IterMut
490893e4337 Improve prose around `as_slice` example of Iter
346bb96231a Improve prose around basic examples of Iter and IterMut
b2c67187209 remove reference to dangling from slice::Iter
8a76ac07549 fix `PointerLike` docs
ea624faa800 unimplement `PointerLike` for trait objects
0348754b8e8 split up `#[rustc_deny_explicit_impl]` attribute
83961772930 mri: add track_caller to thread spawning methods for better backtraces
47c18d11c25 Rollup merge of #134518 - hltj:typo-fix, r=tgross35
a407b54ba53 Rollup merge of #132830 - wr7:substr_range_documentation, r=tgross35
1e42e55ad7f Rollup merge of #126118 - jan-ferdinand:docs_for_vec_set_len, r=the8472
325c2c83a7d fix typos in the example code in the doc comments of `Ipv4Addr::from_bits()`, `Ipv6Addr::from_bits()` & `Ipv6Addr::to_bits()`
2a30c761db7 build: Update libc version
ff8e6c7266c Rollup merge of #134490 - hong9lol:typo, r=jhpratt
1ef2006c9ff Rollup merge of #132056 - weiznich:diagnostic_do_not_recommend_final_tests, r=compiler-errors
36dec866386 fix typo in ptr/mod.rs
ba3898d82f3 Auto merge of #134443 - joshtriplett:use-field-init-shorthand, r=lqd,tgross35,nnethercote
815119ea508 Rollup merge of #134452 - jalil-salame:fix-lazy-cell-docs, r=tgross35
e5a64b47a53 Add 'into_array' conversion destructors for 'Box', 'Rc', and 'Arc';
1e20f65b874 Implement Condvar::wait_timeout for targets without threads
0d4be900a97 Auto merge of #134425 - clubby789:cargo-update, r=jieyouxu
e94636ef1eb fix(LazyCell): documentation of get[_mut] was wrong
9552b94e220 Stabilize `#[diagnostic::do_not_recommend]`
8f6473ca201 Use field init shorthand where possible
4dd1bd84b80 Rollup merge of #134426 - hkBst:patch-3, r=lqd
439ea50e256 Rollup merge of #133265 - the8472:extract-if-ranges, r=cuviper
5b50e4a613b compiler & tools dependencies: Updating allocator-api2 v0.2.20 -> v0.2.21 Updating annotate-snippets v0.11.4 -> v0.11.5 Updating anyhow v1.0.93 -> v1.0.94 Updating bstr v1.11.0 -> v1.11.1 Updating chrono v0.4.38 -> v0.4.39 Updating clap v4.5.21 -> v4.5.23 Updating clap_builder v4.5.21 -> v4.5.23 Updating clap_complete v4.5.38 -> v4.5.39 Updating clap_lex v0.7.3 -> v0.7.4 Updating colored v2.1.0 -> v2.2.0 Updating console v0.15.8 -> v0.15.10 Updating crossbeam-channel v0.5.13 -> v0.5.14 Updating crossbeam-deque v0.8.5 -> v0.8.6 Updating crossbeam-utils v0.8.20 -> v0.8.21 Updating encode_unicode v0.3.6 -> v1.0.0 Updating fastrand v2.2.0 -> v2.3.0 Updating home v0.5.9 -> v0.5.11 Updating js-sys v0.3.74 -> v0.3.76 Updating libc v0.2.167 -> v0.2.168 Updating miniz_oxide v0.8.0 -> v0.8.1 Updating pest v2.7.14 -> v2.7.15 Updating pest_derive v2.7.14 -> v2.7.15 Updating pest_generator v2.7.14 -> v2.7.15 Updating pest_meta v2.7.14 -> v2.7.15 Updating redox_syscall v0.5.7 -> v0.5.8 Updating rustc-stable-hash v0.1.0 -> v0.1.1 Updating rustix v0.38.41 -> v0.38.42 Updating self_cell v1.0.4 -> v1.1.0 Updating semver v1.0.23 -> v1.0.24 Updating serde v1.0.215 -> v1.0.216 Updating serde_derive v1.0.215 -> v1.0.216 Adding thiserror v2.0.7 Adding thiserror-impl v2.0.7 Updating time v0.3.36 -> v0.3.37 Updating time-macros v0.2.18 -> v0.2.19 Updating tokio v1.41.1 -> v1.42.0 Updating wasm-bindgen v0.2.97 -> v0.2.99 Updating wasm-bindgen-backend v0.2.97 -> v0.2.99 Updating wasm-bindgen-macro v0.2.97 -> v0.2.99 Updating wasm-bindgen-macro-support v0.2.97 -> v0.2.99 Updating wasm-bindgen-shared v0.2.97 -> v0.2.99 Updating wasm-encoder v0.221.0 -> v0.221.2 Updating wasmparser v0.221.0 -> v0.221.2 Updating wast v221.0.0 -> v221.0.2 Updating wat v1.221.0 -> v1.221.2
fbac32d2761 Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser
f8d5f2f5031 Fix typo in uint_macros.rs
773ce8e12e0 Rollup merge of #134202 - nnethercote:rm-existing_doc_keyword, r=GuillaumeGomez
1ea6333e43b Remove `rustc::existing_doc_keyword` lint.
879b904eae9 Move `doc(keyword = "while")`.
d655fd187d6 Stabilize #[coverage] attribute
7adb8ab561b remove obsolete comment and pub(super) visibility
71740c5e592 remove bounds from vec and linkedlist ExtractIf
f5981cec754 Add a range argument to vec.extract_if
f0297f13dde Rollup merge of #134277 - notriddle:notriddle/inline-into, r=GuillaumeGomez
e88df256c16 Auto merge of #134332 - Zalathar:rollup-oe23hkw, r=Zalathar
93329f34b67 Rollup merge of #134310 - tkr-sh:master, r=Noratrieb
ab4f84cae3e Rollup merge of #133406 - EFanZh:lock-value-accessors, r=Noratrieb
69756988c15 Rollup merge of #130361 - devnexen:sock_cloexec_solaris, r=cuviper
114f5e2c405 Auto merge of #133223 - zachs18:uniquerc-impls, r=Noratrieb
cd6542897cb Asserts the maximum value that can be returned from `Vec::len`
9d2ca9a3477 Auto merge of #134258 - bjorn3:no_public_specialization, r=petrochenkov
66b6e751301 Rollup merge of #134022 - shahn:doc_clarify_extend_for_tuple_version, r=tgross35
3aa32597ed9 Rollup merge of #133986 - olishmollie:tracking-issue-127154-documentation, r=tgross35
b35e7babfbf Correct spelling of CURRENT_RUSTC_VERSION
dca96f2d618 Replace i32 by char in `split_at` & `_unchecked`
5c0062fd6ba Add clarity to the "greater" of `VecDeque::insert`
36d2006d1e1 Replace i32 by char to add clarity
f9d5fcf495e Auto merge of #134296 - matthiaskrgr:rollup-o0sxozj, r=matthiaskrgr
5416be5795f Add documentation for anonymous pipe module
bd52a6d6b8d Rollup merge of #133942 - BD103:black-box-docs, r=saethlin
1d8c71769ac Rollup merge of #134255 - bjoernager:master, r=Noratrieb
cd53ef86a04 Rollup merge of #134254 - hermit-os:hermit-c_char, r=workingjubilee
feb218aac4a Rollup merge of #134252 - hermit-os:hermit-is_absolute, r=tgross35
78ef2d597d4 rustdoc-search: let From and Into be unboxed
c1f85483921 Rollup merge of #134229 - purplesyringa:provenance-docs, r=saethlin
d03fb91bd4d Rollup merge of #134140 - compiler-errors:unsafe-binders-ast, r=oli-obk
c90e7e3ca98 Remove support for specializing ToString outside the standard library
1c55c9fbc60 Auto merge of #134047 - saethlin:inline-fmt-rt, r=m-ou-se
12a12d4f161 Update includes in '/library/core/src/error.rs';
5a5d80fb80a Fix building `std` for Hermit after `c_char` change
bfe81248fa4 Fix `Path::is_absolute` on Hermit
5d2388da58b Reword prelude for AsyncFn stabilization
9731c019cbe Stabilize async closures
fd9b9cd330a Fix typos in docs on provenance
7837903093e feat: clarify how to use `black_box()`
0c7c57b9e3c Add unwrap_unsafe_binder and wrap_unsafe_binder macro operators
72e40f07dfe Rollup merge of #134179 - zachs18:align_offset_mut_ptr_doc, r=workingjubilee
67ef22c7127 Rollup merge of #134178 - ehuss:stabilize-2024-prelude, r=amanieu,traviscross,tgross35
0834c1f1db0 Rollup merge of #134155 - sthibaul:unsafe_op_in_unsafe_fn, r=tgross35
09d16d15513 Rollup merge of #133859 - bjorn3:move_tests_to_alloctests, r=tgross35
94ec2233bd0 Rollup merge of #122003 - mati865:gnullvm-build-libunwind, r=petrochenkov
fa1541a5660 Stabilize the Rust 2024 prelude
6942ce52e34 Auto merge of #134177 - matthiaskrgr:rollup-hgp8q60, r=matthiaskrgr
3a1745b09e5 Rollup merge of #133598 - ChayimFriedman2:get-many-mut-detailed-err, r=scottmcm
566ea0f3dd8 Rollup merge of #132975 - arichardson:ffi-c-char, r=tgross35
ed224f8c25a Remove consteval note from <*mut T>::align_offset docs.
197f4744559 Rollup merge of #134079 - tbu-:pr_doc_x8_to_from_xe_bytes, r=jhpratt
ff50c42ded8 Add a note saying that `{u8,i8}::from_{be,le,ne}_bytes` is meaningless
809dc2d9649 Forbid unsafe_op_in_unsafe_fn in hurd-specific os and sys files
420c83c0cd8 Rollup merge of #134116 - RalfJung:const_nonnull_new, r=jhpratt
bb71e111888 Rollup merge of #134100 - eholk:noop-rustc-const-stable, r=dtolnay
d846ee80d9e Add references to the specific ABI documents
faa946af9e7 Remove l4re from the unsigned char operating system list
c589942e7af De-duplicate and improve definition of core::ffi::c_char
f5dfac33df4 stabilize const_nonnull_new
e24f63040e1 Rollup merge of #133472 - rust-wasi-web:master, r=joboet
0c9c5edf2d9 Rollup merge of #133456 - clubby789:cargo-update, r=ChrisDenton
1079f47e289 Rollup merge of #133184 - osiewicz:wasm-fix-infinite-loop-in-remove-dir-all, r=Noratrieb
577c96562be Remove rustc_const_stable attribute on const NOOP
7234c4f09e7 Rollup merge of #134032 - snprajwal:fix-docs, r=joboet
24e395ad1ab core: use public method instead of instrinsic
3a36268f22b core: improve comments
a09c0403f2d Auto merge of #134052 - matthiaskrgr:rollup-puxwqrk, r=matthiaskrgr
a9c38ee0d29 Rollup merge of #134050 - RalfJung:miri-sync, r=RalfJung
6fa0126c89c Rollup merge of #133880 - ChrisDenton:homedir, r=Mark-Simulacrum
0e491a9a3b1 Rollup merge of #133789 - rossmacarthur:then-with-doc-alias, r=Mark-Simulacrum
ed50cd40ea2 Switch inline(always) in core/src/fmt/rt.rs to plain inline
886328011ef Downgrade cc
e9bfb10f867 Rollup merge of #134013 - BLANKatGITHUB:intrinsic, r=saethlin
4e0eec33e6f Adds new intrinsic declaration
c1d57f82a0e Rollup merge of #133987 - Will-Low:DefineTlsAcronym, r=workingjubilee
8f4016eba75 docs: better examples for `std::ops::ControlFlow`
a73f6c64a01 Merge from rustc
fd6e8d7358e Auto merge of #133978 - matthiaskrgr:rollup-6gh1iho, r=matthiaskrgr
069b38123a6 Merge from rustc
5852362e5d1 Define acronym for thread local storage
70e63e17b2c Auto merge of #118159 - EliasHolzmann:formatting_options, r=m-ou-se
3bcad5cb18b Rollup merge of #132187 - shahn:extend_more_tuples, r=dtolnay
f761e9c676f Rollup merge of #130254 - GrigorenkoPV:QuotaExceeded, r=dtolnay
ef4c4ae6b50 Rollup merge of #130209 - GrigorenkoPV:CrossesDevices, r=dtolnay
11e4cd165ae Auto merge of #133089 - eholk:stabilize-noop-waker, r=dtolnay
aa5fc647d04 core: implement `bool::select_unpredictable`
70153836edd Rollup merge of #133790 - HypheX:improve-vec-docs, r=harudagondi,workingjubilee
ca5965a8639 Merge from rustc
706da00d0ff Rollup merge of #133821 - Kobzol:replace-black-with-ruff, r=onur-ozkan
debbad652d9 Stabilize noop_waker
fa414d5787d Access members of `FormattingOptions` directly instead of via getters/setters
02156e9faf6 Removed constness for methods receiving a `&mut` parameter
a0526432656 Added better reason for exposing `flags` and `get_flags` as unstable
9492becae41 Formatted
322c8b766b2 Refactored FormattingOptions to use a bitmask for storing flags
a1b4810cfcf Revert "Turned public+unstable+hidden functions into private functions"
8bd8c11c06a Turned public+unstable+hidden functions into private functions
177d5fac526 Made all fns const
b06f16ba681 impl Default for fmt::FormattingOptions
157c4f662e0 Fixed copy+paste error in comment
8fe085f1349 fmt::FormattingOptions: Renamed `alignment` to `align`
7de3770f6c6 Formatter::with_options: Use different lifetimes
3d16495ff6c Fixed another broken test
4d3d0470d23 Added struct `fmt::FormattingOptions`
29f1b2498b6 Formatter: Access members via getter methods wherever possible
7f0a865ead6 Improve documentation
4155a213e3e Add libc funcitons only for wasm32-wasip1-threads.
a58d30811b5 Fix compilation for wasm32-wasip1 (without threads).
2834b3e1213 Rollup merge of #133882 - jyn514:doc-backtraces, r=saethlin
37f75ad5a08 Rollup merge of #133844 - RalfJung:simd_relaxed_fma-nondet, r=workingjubilee
b89e20d1e5e Rollup merge of #127565 - esp-rs:xtensa-vaargs, r=workingjubilee
7af25276b17 Rollup merge of #133863 - oli-obk:push-pystoxvtvssx, r=lqd
f4ab4b484fe Rollup merge of #118833 - Urgau:lint_function_pointer_comparisons, r=cjgillot
db3e689077b Improve comments for the default backtrace printer
8874ede0208 Expand home_dir docs
33345baf830 Reformat Python code with `ruff`
6cfe2423972 Rename `core_pattern_type` and `core_pattern_types` lib feature gates to `pattern_type_macro`
8d19d7cf046 Move some alloc tests to the alloctests crate
b75783a7146 clarify simd_relaxed_fma non-determinism
04abf699af3 Rollup merge of #133651 - scottmcm:nonnull-nonzero-no-field-projection, r=oli-obk
59c58640a80 Auto merge of #133818 - matthiaskrgr:rollup-iav1wq7, r=matthiaskrgr
6bebe1c8423 Rollup merge of #133726 - joshtriplett:breakpoint, r=oli-obk
57dbb716624 Rollup merge of #132937 - xmh0511:master, r=m-ou-se
1a1fa731d58 Update `NonZero` and `NonNull` to not field-project (per MCP807)
8df6841cf41 Rollup merge of #133796 - TDecking:borrowing-sub, r=tgross35
5248edd2723 Rollup merge of #133762 - RalfJung:const-size-of-val, r=workingjubilee
97f98da1fce Rollup merge of #133696 - RalfJung:const-hashmap, r=cuviper
592d87fafca Use UNIX thread_local implementation for WASI.
0b39639fa39 Update the definition of `borrowing_sub`
2f0494f936b Teach rust core about Xtensa VaListImpl and add a custom lowering of vaarg for xtensa.
fb668a45993 Add `core::arch::breakpoint` and test
1ae06991054 Add doc alias 'then_with' for `then` method on `bool`
04e41db91f5 ./x miri: fix sysroot build
a351bae8511 Rollup merge of #133395 - calebzulawski:simd_relaxed_fma, r=workingjubilee
6dd07606b78 Rollup merge of #133763 - Urgau:f16-midpoint-const-feat, r=Amanieu
7ef9e82c0ea Rollup merge of #133701 - kornelski:c-str, r=workingjubilee
e5e10c242ac Rollup merge of #131713 - tgross35:stabilize-const_maybe_uninit_write, r=RalfJung,dtolnay
eb96f323fa0 stabilize const_{size,align}_of_val
2b42df79e1a Stabilize `const_maybe_uninit_write`
7b043597c80 Use c"lit" for CStrings without unwrap
b06cd98bd77 Allow fn pointers comparisons lint in library
3d21446fa49 Fix `f16::midpoint` const feature gate
072ea73a1f6 Rollup merge of #133743 - bjoernager:slice-as-array, r=joboet
21529533fde stabilize const_collections_with_hasher and build_hasher_default_const_new
166cfb13136 Auto merge of #133728 - jhpratt:rollup-k1i60pg, r=jhpratt
ec43e851a59 Fix docs for '<[T]>::as_array';
4a95157e48e Rollup merge of #133678 - Urgau:stabilize-ptr_fn_addr_eq, r=jhpratt
f7d558398a2 Rollup merge of #133672 - RalfJung:const-stability-cleanup, r=jhpratt
cf34b1540ea Rollup merge of #133711 - cod10129:master, r=Noratrieb
45418e9d2a6 Rollup merge of #131784 - Urgau:stabilize-midpoint, r=dtolnay
0ba4fb63cc1 Rollup merge of #131416 - okaneco:const_copy, r=RalfJung
58b87f49645 Mark `slice::copy_from_slice` unstably const
50363a21191 add isatty alias for is_terminal
06c9316079c Rollup merge of #133674 - scottmcm:chain-carrying-add, r=Amanieu
b2f5848193a Rollup merge of #133669 - RalfJung:const_swap_splitup, r=dtolnay
833dd81deba Run `cargo update` and update licenses
5c2d5ca1784 Stabilize unsigned `num_midpoint` feature
f4630c8d109 Rollup merge of #133686 - samueltardieu:push-xkxwxzxqokuu, r=compiler-errors
487eef7a511 Rollup merge of #133622 - mkroening:exception-blog, r=cuviper
84b80170276 Rollup merge of #133602 - SanchithHegde:fix-pathbuf-example-codeblocks, r=cuviper
2bfc089b74f Rollup merge of #133515 - SteveLauC:fix/hurd, r=ChrisDenton
964c0c061fe Rollup merge of #128184 - joboet:refactor_pthread_sync, r=workingjubilee
7b3ae4b14e8 Auto merge of #133684 - RalfJung:rollup-j2tmrg7, r=RalfJung
b7abc7692ff Switch rtems target to panic unwind
afea5597238 Add diagnostic item for `std::ops::ControlFlow`
d17c5979b26 Rollup merge of #133670 - RalfJung:hashbrown, r=Amanieu
6965d9c1b06 Auto merge of #133659 - jieyouxu:rollup-576gh4p, r=jieyouxu
e142fe090ef std: clarify comments about initialization
0236bd2058d Stabilize `ptr::fn_addr_eq`
a54b5c85a48 Add value accessor methods to `Mutex` and `RwLock`
ec760c9108f fix: hurd build, stat64.st_fsid was renamed to st_dev
550bfc05b24 rustc_allow_const_fn_unstable is not used in proc_macro
1ccf19dc122 get rid of a bunch of unnecessary rustc_const_unstable
70183029716 Fix chaining `carrying_add`s
dd29fadf097 add test for bytewise ptr::swap of a pointer
a7f3a3cc076 remove a whole bunch of unnecessary const feature gates
943aa44906f Abstract `ProcThreadAttributeList` into its own struct
e6a732b0db2 move swap_nonoverlapping constness to separate feature gate
9d56b9dbedd bump hashbrown version
e423a339a39 move slice::swap_unchecked constness to slice_swap_unchecked feature gate
46851ab5cc9 Rollup merge of #133548 - cuviper:btreeset-entry-api, r=Mark-Simulacrum
b6bb042b28c Rollup merge of #133496 - rust-wasi-web:wasi-available-parallelism, r=Amanieu
5e218fe390d Rollup merge of #133106 - BLANKatGITHUB:intrinsic, r=RalfJung
3b2bca7e9f0 Rollup merge of #132515 - kornelski:home_fix, r=jhpratt
407d5985ad5 Rollup merge of #133625 - RalfJung:custom-mir-debug-info, r=compiler-errors
a0b4e2ff644 Rollup merge of #116161 - Soveu:varargs2, r=cjgillot
eeb808edfce Auto merge of #133533 - BoxyUwU:bump-boostrap, r=jieyouxu,Mark-Simulacrum
2992ba7e050 refine mir debuginfo docs
bf4636bee39 Doc comment custom MIR debuginfo.
547854bab55 update link to "C++ Exceptions under the hood" blog
c145db8fec3 Rollup merge of #133530 - timvisee:master, r=jhpratt
3ccd6102eae Rollup merge of #133466 - aksh1618:patch-1, r=thomcc
e5e4ec16636 fix: fix codeblocks in `PathBuf` example
069a3f311a4 Auto merge of #123244 - Mark-Simulacrum:share-inline-never-generics, r=saethlin
aa2609a583f Change `GetManyMutError` to match T-libs-api decision
e97ec53b763 Share inline(never) generics across crates
68d3ed3d908 Also use zero when referencing to capacity or length
657e081ba8f Use consistent wording in docs, use zero instead of 0
e97f024d14b Auto merge of #133561 - GuillaumeGomez:rollup-g4upmv4, r=GuillaumeGomez
c8ce91a5e34 Rollup merge of #133543 - mustartt:aix-lgammaf_r-shim, r=cuviper
3d06a7c117e Rollup merge of #133512 - bjoernager:slice-as-array, r=Amanieu
5a2e12351d7 Rollup merge of #129409 - grinapo:patch-1, r=Amanieu
64d66ce14ba Rollup merge of #133498 - GuillaumeGomez:missing-examples, r=joboet
95afca906a6 Stabilize `extended_varargs_abi_support`
8416a6beeca Fill in a `BTreeSet::entry` example
32276df18d5 Add a tracking issue for `btree_set_entry`
0b8b46754ae Add `BTreeSet` entry APIs to match `HashSet`
de67dab738c fmt
b255bcd4709 update cfgs
d5ee74c8b2c Implement code review
cc94a61244f replace placeholder version
ea762e31d64 Auto merge of #133369 - Zalathar:profiler-builtins-no-core, r=jieyouxu
be4d7f97a51 Rollup merge of #133449 - joboet:io_const_error, r=tgross35
fddc6136036 Rollup merge of #133402 - compiler-errors:drop-and-destruct, r=lcnr
b5baaaa3d2a Auto merge of #133505 - compiler-errors:rollup-xjp8hdi, r=compiler-errors
11a4630ce28 chore: Improve doc comments
d3ade682724 Add '<[T]>::as_array', '<[T]>::as_mut_array', '<*const [T]>::as_array', and '<*mut [T]>::as_mut_array' conversion methods;
cdf278252ad std: update internal uses of `io::const_error!`
182e0fde338 Rollup merge of #133435 - RalfJung:test_downgrade_observe, r=tgross35
6e22739b070 Rollup merge of #133282 - tgross35:maybe-uninit-debug, r=Amanieu
585dfc5b52e Rollup merge of #133136 - ChayimFriedman2:get-many-mut, r=Amanieu
75101ecc49d Rollup merge of #133042 - cuviper:btreemap-insert_entry, r=Amanieu
c590ef03caa Rollup merge of #133464 - RalfJung:whitespace-panic, r=joboet
b0910ed9eec Rollup merge of #133419 - CromFr:add-path-strip_prefix-test-example, r=Amanieu
ec61c1e49a2 Add missing code examples on `LocalKey`
c8c96e00fdc thread::available_parallelism for wasm32-wasip1-threads
85ceea5ea32 Refactor ReadDir into a state machine
9e9b5eeb86b Run TLS destructors for wasm32-wasip1-threads
2dec6432dc5 Fix typos in pin.rs
02b3316cbb9 std::thread: avoid leading whitespace in some panic messages
ee91620dbef Constify Drop and Destruct
7abb3262e5d std: expose `const_io_error!` as `const_error!`
786c3e18dcb Auto merge of #133247 - GuillaumeGomez:reduce-integer-display-impl, r=workingjubilee
992b1d2573c Support ranges in `<[T]>::get_many_mut()`
41bd055eaed miri: disable test_downgrade_observe test on macOS
ca2246ba724 Rollup merge of #132982 - suaviloquence:2-doc-changed-alloc-methods, r=Mark-Simulacrum
6e2012f32d9 Rollup merge of #132533 - SUPERCILEX:patch-4, r=Mark-Simulacrum
ed2598bafce fix `Allocator` method names in `alloc` free function docs
fd68d3e37ee Rollup merge of #133298 - n0toose:remove-dir-all-but-not-paths, r=Noratrieb
74f078b7290 Rollup merge of #133260 - compiler-errors:deref, r=fee1-dead
d1cf863b68f Rollup merge of #132730 - joboet:after_main_sync, r=Noratrieb
3f9124b0cf3 Added a doc test for std::path::strip_prefix
cea713a6711 Rollup merge of #133389 - eduardosm:stabilize-const_float_methods, r=RalfJung
04dab39dbea Rollup merge of #133301 - GuillaumeGomez:add-example-wrapping-neg, r=workingjubilee
dd7b253bb5d changes old intrinsic declaration to new declaration
ce181b51151 Auto merge of #132611 - compiler-errors:async-prelude, r=ibraheemdev
9fc2c20cb23 Auto merge of #132597 - lukas-code:btree-plug-leak, r=jhpratt
7f63ef45955 Make profiler_builtins `#![no_core]` instead of just `#![no_std]`
75fe14cbea0 Remove unnecessary `#![allow(unused_features)]`
8ff9319664c Sort and separate lint/feature attributes in `profiler_builtins`
000c27de7b8 Constify Deref and DerefMut
e105ad36675 Match simd_relaxed_fma documentation to fmuladd intrinsic
bc1b909d1cf Auto merge of #133379 - jieyouxu:rollup-00jxo71, r=jieyouxu
a0222ed6f11 Add simd_relaxed_fma intrinsic
18a772c0abf Stabilize `const_float_methods`
1fa5b7136ba Auto merge of #133377 - jieyouxu:rollup-n536hzq, r=jieyouxu
5048c462f73 Improve code by using `unsigned_abs`
e8829bde64b Rollup merge of #133237 - fee1-dead-contrib:constadd, r=compiler-errors
4151e360996 Rollup merge of #133332 - bjoernager:const-array-as-mut-slice, r=jhpratt
842ed39a839 Rollup merge of #131505 - madsmtm:darwin_user_temp_dir, r=dtolnay
0b0403aade1 Auto merge of #132994 - clubby789:cc-bisect, r=Kobzol
44de774c840 Auto merge of #133360 - compiler-errors:rollup-a2o38tq, r=compiler-errors
6ea276ef35c Rollup merge of #133264 - lolbinarycat:os-string-truncate, r=joboet
5a6926c6a54 Auto merge of #132329 - compiler-errors:fn-and-destruct, r=lcnr
8cace9e9e4d Shorten the `MaybeUninit` `Debug` implementation
9fff2a79a89 aix: create shim for lgammaf_r
0c2dadaf889 Add code example for `wrapping_neg` method for signed integers
b0893a5fb1d Deduplicate checking drop terminator
25cfe493429 Gate const drop behind const_destruct feature, and fix const_precise_live_drops post-drop-elaboration check
df5f774cf44 Auto merge of #133339 - jieyouxu:rollup-gav0nvr, r=jieyouxu
fd9dfbfa58e Rollup merge of #133337 - ColinFinck:thread-scoped-fix-typo, r=joboet
6ca197967f0 Rollup merge of #133330 - RalfJung:close, r=the8472
8cec9604aec Rollup merge of #133313 - thesummer:fix-arc4random, r=cuviper
bd8c70b7603 Rollup merge of #133288 - bjoernager:const-array-each-ref, r=jhpratt
c9a80ad59f4 Rollup merge of #133238 - heiher:loong-stdarch-rexport, r=Amanieu
0eb96d1dc9c Auto merge of #130867 - michirakara:steps_between, r=dtolnay
c57bc831f1c Fix typo in `std::thread::Scope::spawn` documentation.
b621e5886f5 Mark '<[T; N]>::as_mut_slice' as 'const';
01df57db50c library: update comment around close()
125a43354b7 Don't try to use confstr in Miri
dc9cd998086 Auto merge of #129238 - umgefahren:stabilize-ipv6-unique-local, r=dtolnay
e515d5fdd20 distinguish overflow and unimplemented in Step::steps_between
7e9c665fcec Use arc4random of libc for RTEMS target
fb92c4e9f3f Mention that std::fs::remove_dir_all fails on files
7edd22c19b6 Mark and implement 'each_ref' and 'each_mut' in '[T; N]' as const;
e411c3361f6 constify `Add`
956d316aa96 Rollup merge of #131736 - hoodmane:emscripten-wasm-bigint, r=workingjubilee
8defa07da76 implement OsString::truncate
9dd9ebdafe5 Rollup merge of #133226 - compiler-errors:opt-in-pointer-like, r=lcnr
c3a7a9ea54d Rollup merge of #130800 - bjoernager:const-mut-cursor, r=joshtriplett
05d96c22b33 Rollup merge of #129838 - Ayush1325:uefi-process-args, r=joboet
7691bc11882 Make PointerLike opt-in as a trait
5c581c3aadf Reduce integer `Display` implementation size
c819ed39def Stabilize const_pin_2
bb443655059 re-export `is_loongarch_feature_detected`
63a5059a757 Rollup merge of #132732 - gavincrawford:as_ptr_attribute, r=Urgau
f48d6a9b1d9 UniqueRc: platform-specific AsFd/Handle/etc impls to mirror Rc
e3055f65ed6 UniqueRc: PinCoerceUnsized and DerefPure
f53e523d3c8 UniqueRc: comparisons and Hash
5f8f1a32611 Rollup merge of #133183 - n0toose:improve-remove-dir-docs, r=joboet
88965979fa9 Rollup merge of #125405 - m-ou-se:thread-add-spawn-hook, r=WaffleLapkin
4da0cb33032 Rollup merge of #123947 - zopsicle:vec_deque-Iter-as_slices, r=Amanieu
31096758b3f UniqueRc: Add more trait impls.
4f1707779d3 Update doc comments for spawn hook.
e7cb7389192 Address review comments.
595f0d9f0f8 Fix tracking issue.
4fe82dfc2b3 Add tracking issue.
56ea82557bd Use Send + Sync for spawn hooks.
977c4c304f2 Add thread Builder::no_hooks().
e253c673db1 Update thread spawn hooks.
053640f6f35 Use add_spawn_hook for libtest's output capturing.
2a846d803f4 Add std::thread::add_spawn_hook.
525dab97bb6 Correct comments concerning updated dangling pointer lint
d2430399b75 Auto merge of #133205 - matthiaskrgr:rollup-xhhhp5u, r=matthiaskrgr
3c67ef9e5a2 Rollup merge of #133200 - RalfJung:miri-rwlock-test, r=tgross35
3516801bae2 ignore an occasionally-failing test in Miri
207627c1104 Rollup merge of #133182 - RalfJung:const-panic-inline, r=tgross35
fb525301a5f Rollup merge of #132758 - nnethercote:improve-get_key_value-docs, r=cuviper
3bd5a7f4276 Mention std::fs::remove_dir_all in std::fs::remove_dir
40ecf6c22bf wasi/fs: Improve stopping condition for <ReadDir as Iterator>::next
6da3fda3593 Bump `stdarch` to the latest master
d70eaaa68ec const_panic: inline in bootstrap builds to avoid f16/f128 crashes
1da1cc9cf07 std: allow after-main use of synchronization primitives
307d6f22226 Auto merge of #133160 - jhpratt:rollup-wzj9q15, r=jhpratt
e09425b475c Rollup merge of #133145 - kornelski:static-mutex, r=traviscross
58da10b98d8 Auto merge of #128219 - connortsui20:rwlock-downgrade, r=tgross35
997906157b4 rename rustc_const_stable_intrinsic -> rustc_intrinsic_const_stable_indirect
601132a1007 Improve `{BTreeMap,HashMap}::get_key_value` docs.
2e135b01a22 Document alternatives to `static mut`
bde38e315d0 Auto merge of #120370 - x17jiri:likely_unlikely_fix, r=saethlin
b407a672d3c Likely unlikely fix
f1532b9b5b2 Rollup merge of #133126 - ohno418:fix-String-doc, r=jhpratt
91ab1736cfe Rollup merge of #133116 - RalfJung:const-null-ptr, r=dtolnay
6f53685158e alloc: fix `String`'s doc
61efdcc7741 clean up const stability around UB checks
c313f7e9291 stabilize const_ptr_is_null
6aced621042 Rollup merge of #132449 - RalfJung:is_val_statically_known, r=compiler-errors
0250296af6c Rollup merge of #131717 - tgross35:stabilize-const_atomic_from_ptr, r=RalfJung
d27c37b4c4a reduce threads in downgrade test
8619ddabd64 fix `DOWNGRADED` bit unpreserved
45a5a4e3f1d fix memory ordering bug + bad test
525248ca5db add safety comments for queue implementation
e2543ddca9c add `downgrade` to `queue` implementation
c05bcc9c7fb modify queue implementation documentation
ddd48e97263 add `downgrade` to `futex` implementation
f9bcdb4474d add simple `downgrade` implementations
54967218559 add `downgrade` method onto `RwLockWriteGuard`
dcda8df4676 add `RwLock` `downgrade` tests
49b742da57d Rollup merge of #133050 - tgross35:inline-f16-f128, r=saethlin
9b405001aa8 Rollup merge of #133048 - cyrgani:ptr-doc-update, r=Amanieu
3357615fc72 Rollup merge of #133019 - sorairolake:add-missing-period-and-colon, r=tgross35
7e17a11e61d Rollup merge of #132984 - sunshowers:pipe2, r=tgross35
e8a67ba743b Rollup merge of #132977 - cberner:fix_solaris, r=tgross35
dbd5fb14b17 Rollup merge of #132790 - aDotInTheVoid:ioslice-asslice-rides-again, r=cuviper
1b4ad7703eb Pass `f16` and `f128` by value in `const_assert!`
e4c94766246 Remove one stray space.
58c02681d8f use `&raw` in `{read, write}_unaligned` documentation
1239f03791f btree: add `{Entry,VacantEntry}::insert_entry`
9aa607df7aa Auto merge of #132709 - programmerjake:optimize-charto_digit, r=joshtriplett
78626b047b6 Rollup merge of #133027 - no1wudi:master, r=jhpratt
c6347be9b59 Auto merge of #133026 - workingjubilee:rollup-q8ig6ah, r=workingjubilee
28f9f7f6736 Fix a copy-paste issue in the NuttX raw type definition
c1bd3483194 Rollup merge of #133008 - onur-ozkan:update-outdated-comment, r=jieyouxu
51884ccd46d Rollup merge of #133004 - cuviper:unrecover-btree, r=ibraheemdev
9d1b5289926 Rollup merge of #133003 - zachs18:clonetouninit-dyn-compat-u8, r=dtolnay
275fab34cf3 Rollup merge of #132907 - BLANKatGITHUB:intrinsic, r=saethlin
265f69fd7de Rollup merge of #131304 - RalfJung:float-core, r=tgross35
521d06b1f3a Auto merge of #122770 - iximeow:ixi/int-formatting-optimization, r=workingjubilee
0874a0035d0 docs: Fix missing colon in methods for primitive types
524cbdaf3b7 docs: Fix missing period in methods for integer types
948e53de4bb Auto merge of #133006 - matthiaskrgr:rollup-dz6oiq5, r=matthiaskrgr
4a5f8c13225 update outdated comment about test-float-parse
5b9d092b2cf Rollup merge of #126046 - davidzeng0:mixed_integer_ops_unsigned_sub, r=Amanieu
0ec0a66f5ca Auto merge of #132662 - RalfJung:const-panic-inlining, r=tgross35
3a28e6e022a Update core CloneToUninit tests
35e1775fe1f btree: simplify the backdoor between set and map
0495cd155b6 Bump `cc`
ec80ac9760a Fix compilation error on Solaris due to flock usage
cdcb1d2d589 Auto merge of #132556 - clubby789:cargo-update, r=Mark-Simulacrum
a66f410edcd Run `cargo update` and update licenses
1cccc6a94cc const_panic: don't wrap it in a separate function
f79ecc84837 [illumos] use pipe2 to create anonymous pipes
46925ba44db Auto merge of #132883 - LaihoE:vectorized_is_sorted, r=thomcc
4ccf16b1eb0 Auto merge of #132972 - matthiaskrgr:rollup-456osr7, r=matthiaskrgr
fe508063c28 Rollup merge of #132970 - tyilo:nonzero-u-div-ceil-issue, r=tgross35
e35eeacfc3e Rollup merge of #132966 - RalfJung:const_option_ext, r=jhpratt
d1b467ef3b0 Rollup merge of #132948 - RalfJung:const_unicode_case_lookup, r=Noratrieb
5a207560656 Rollup merge of #132851 - chansuke:update-comment, r=thomcc
ff8020378de Auto merge of #132870 - Noratrieb:inline-int-parsing, r=tgross35
7f43800757b Add tracking issue number to unsigned_nonzero_div_ceil feature
dfdaf4d0da8 Make `CloneToUninit` dyn-compatible
a6ab20eb090 stabilize const_option_ext
aef6c7529bf Rollup merge of #132541 - RalfJung:const-stable-extern-crate, r=compiler-errors
9792fc3fa32 stabilize const_unicode_case_lookup
7cd4be6ea3f Stabilize `Ipv6Addr::is_unique_local` and `Ipv6Addr::is_unicast_link_local`
15b4af14a52 adds new declaration to codegen
513cbf8297b Auto merge of #132943 - matthiaskrgr:rollup-164l3ej, r=matthiaskrgr
a636ccb7e8c Rollup merge of #132914 - rcorre:cell-grammar, r=tgross35
5af9cd39bdb Rollup merge of #132895 - scottmcm:generalize-nonnull-from-raw-parts, r=ibraheemdev
bd35c207e83 remove no-longer-needed abs_private
71c0928f8e5 allow rustc_private feature in force-unstable-if-unmarked crates
2d1521ec8d3 Rollup merge of #132929 - cuviper:check-alloc_zeroed, r=tgross35
ba37edb8236 Rollup merge of #132869 - lolbinarycat:library-fix-too_long_first_doc_paragraph, r=tgross35
c3aa0fd6d20 Rollup merge of #132847 - RalfJung:addr-dont-expose, r=Mark-Simulacrum
7b678a96b68 Auto merge of #132919 - matthiaskrgr:rollup-ogghyvp, r=matthiaskrgr
fe2df9994be a release operation synchronizes with an acquire operation
59ea28527ec Check for null in the `alloc_zeroed` example
422c4e8dc6b new intrinsic declaration
be313a69b63 new intrinsic declaration
bf896164821 Rollup merge of #132144 - adetaylor:receiver-trait-itself, r=wesleywiser
95128df8753 Rollup merge of #120077 - SUPERCILEX:set-entry, r=Amanieu
5b2d93dadf0 Update dangling pointer tests
ed8add25d55 Tag relevant functions with #[rustc_as_ptr] attribute
eee61579d6d Auto merge of #132902 - matthiaskrgr:rollup-43qgg3t, r=matthiaskrgr
6bc254b09ed Update grammar in std::cell docs.
bae8842bd22 Emscripten: link with -sWASM_BIGINT
6bc8a98cbb4 Rollup merge of #130999 - cberner:flock_pr, r=joboet
2e3a4db79e1 Auto merge of #127589 - notriddle:notriddle/search-sem-3, r=GuillaumeGomez
08e1228e615 Generalize `NonNull::from_raw_parts` per ACP362
f9a5ed02f86 vectorize slice::is_sorted
318b54e4aa4 `#[inline]` integer parsing functions
2b0fd040446 split up the first paragraph of doc comments for better summaries
863ba5a66b4 Update the doc comment of `ASCII_CASE_MASK`
192601ab1ba elem_offset / subslice_range: use addr() instead of 'as usize'
458dbbd00c3 Rollup merge of #132136 - RalfJung:target-feature-abi-compat, r=Mark-Simulacrum
29571c684a7 honor rustc_const_stable_indirect in non-staged_api crate with -Zforce-unstable-if-unmarked
f1e6a403adc Improve documentation of `element_offset` and related methods
6a9d2a411f5 Rename `elem_offset` to `element_offset`
310a91d1a6a Add as_slice/into_slice for IoSlice/IoSliceMut.
450aa1288bd Rollup merge of #132778 - lolbinarycat:io-Error-into_inner-docs, r=cuviper
e53a11a5e8f update io::Error::into_inner to acknowlage io::Error::other
3a3ed52ed1d Address review comments
70d11b2f164 Update library/std/src/sys/pal/windows/fs.rs
87dd8ff600f Auto merge of #132717 - RalfJung:rustc_safe_intrinsic, r=compiler-errors
d51ad86fa5a remove support for rustc_safe_intrinsic attribute; use rustc_intrinsic functions instead
362e652f6c6 Rollup merge of #132738 - cuviper:channel-heap-init, r=ibraheemdev
ca7caf9db4c mark is_val_statically_known intrinsic as stably const-callable
36fd72193f9 Rollup merge of #132696 - fortanix:raoul/rte-235-fix_fmodl_missing_symbol_issue, r=tgross35
256a7ced72c Rollup merge of #132639 - RalfJung:intrinsics, r=workingjubilee,Amanieu
79569ee933c Initialize channel `Block`s directly on the heap
db2b12c9066 core: move intrinsics.rs into intrinsics folder
0fa9a6c6c9e Auto merge of #132714 - mati865:update-memchr, r=tgross35
6d60a72a8d9 Rollup merge of #132715 - tabokie:fix-lazy-lock-doc, r=Noratrieb
17e5d3b5522 Rollup merge of #132665 - tyilo:nonzero-u-div-ceil, r=joboet
da1331d6c40 Separate f128 `%` operation to deal with missing `fmodl` symbol
57cef21786e Auto merge of #132705 - kornelski:inline-repeat, r=tgross35
7802368a477 fix lazylock comment
a5d839dc87d Auto merge of #131888 - ChrisDenton:deopt, r=ibraheemdev
64f77df1882 unpin and update memchr
2d7984a960f optimize char::to_digit and assert radix is at least 2
7317cd4555d Inline str::repeat
8446e1a5f47 Rollup merge of #132617 - uellenberg:fix-rendered-doc, r=cuviper
df1594bbcf8 Auto merge of #131721 - okaneco:const_eq_ignore_ascii_case, r=m-ou-se
7e7f9ed6a32 Add `is_ascii` function optimized for x86-64 for [u8]
b76ab440a07 Auto merge of #132500 - RalfJung:char-is-whitespace-const, r=jhpratt
a442ac02b25 Add new implementation benchmark
5c39de3744c Add new unstable feature `const_eq_ignore_ascii_case`
3adbc621669 Auto merge of #132664 - matthiaskrgr:rollup-i27nr7i, r=matthiaskrgr
8ddab887db1 Change some code blocks to quotes in rendered std doc
ef47b33a8cb Rollup merge of #131261 - clarfonthey:unsafe-cell-from-mut, r=m-ou-se
dc052ced3b7 Auto merge of #132661 - matthiaskrgr:rollup-npytbl6, r=matthiaskrgr
9be5c2dc1de Implement div_ceil for NonZero<unsigned>
b39a2860435 Rollup merge of #132571 - RalfJung:const_eval_select_macro, r=oli-obk
3a28e6ad6b1 Rollup merge of #132473 - ZhekaS:core_fmt_radix_no_panic, r=joboet
46c3034cd24 Rollup merge of #132153 - bjoernager:const-char-encode-utf16, r=dtolnay
d52956082bc add const_eval_select macro to reduce redundancy
9250b4c4b59 Rollup merge of #132609 - NotWearingPants:patch-1, r=Amanieu
54bd3adf0e3 Rollup merge of #132606 - eduardosm:char-slice-str-pattern-doc, r=tgross35
6b9a5af164d most const intrinsics don't need an explicit rustc_const_unstable any more
49143b3b622 add new rustc_const_stable_intrinsic attribute for const-stable intrinsics
031f9c28368 convert all const-callable intrinsics into the new form (without extern block)
127883633f8 docs: fix grammar in doc comment at unix/process.rs
ff59429bddf Improve example of `impl Pattern for &[char]`
a68e38323fc Add AsyncFn* to to the prelude in all editions
b8fe4fde115 Fixed typo, rebased
29a8fc997da Updated SAFETY comment to address underflow
008a74c9f20 Replace checked slice indexing by unchecked to support panic-free code
ceac65d1adf Rollup merge of #132579 - RalfJung:rustc-std-workspace-crates, r=Amanieu
2ccb95e8380 btree: don't leak value if destructor of key panics
27c96552095 Stabilise 'const_char_encode_utf16';
509dd073b69 Auto merge of #132586 - workingjubilee:rollup-qrmn49a, r=workingjubilee
4926ac05cdf update rustc-std-workspace crates
8d4546d424f Rollup merge of #132423 - RalfJung:const-eval-align-offset, r=dtolnay
ae28b877064 Auto merge of #132434 - tgross35:f128-tests, r=workingjubilee
b82b6a45cf7 Fix and undeprecate home_dir()
db581d1e2bf Enable `f128` tests on all non-buggy platforms 🎉
9e03f8084c3 Auto merge of #132581 - workingjubilee:rollup-4wj318p, r=workingjubilee
c506c0279ef Update `compiler_builtins` to 0.1.138 and pin it
4a3b0948bbe Rollup merge of #132563 - frectonz:master, r=Amanieu
803847138ff Auto merge of #123723 - madsmtm:apple-std-os, r=dtolnay
f2175096363 Auto merge of #132479 - compiler-errors:fx-feat-yeet, r=fee1-dead
caacc66a634 Rename the FIXMEs, remove a few that dont matter anymore
8bb7ce8a697 Auto merge of #132542 - RalfJung:const_panic, r=tgross35
72beb748321 remove const-support for align_offset
48f72455d35 Modify `NonZero` documentation to reference the underlying integer type
b10bc73da0a Rollup merge of #132511 - RalfJung:const_arguments_as_str, r=dtolnay
dee386e7977 Rollup merge of #132503 - RalfJung:const-hash-map, r=Amanieu
028616a5bca Rollup merge of #132499 - RalfJung:unicode_data.rs, r=tgross35
a04ae3433a7 Rollup merge of #132393 - zedddie16:issue-131865-fix, r=tgross35
99edf316755 Rollup merge of #131377 - rick-de-water:nonzero-exp, r=dtolnay
141ffe504bd Rollup merge of #129329 - eduardosm:rc-from-mut-slice, r=dtolnay
0f4c0ab62ba add const_panic macro to make it easier to fall back to non-formatting panic in const
0bad6557b73 stabilize const_arguments_as_str
c77491eb408 Auto merge of #132458 - RalfJung:rustc-const-unstable, r=Amanieu
39157edbc09 Rustdoc: added brief colon explanation
e4225758db0 Add Set entry API
578b3ff91b0 Add BorrowedBuf::into_filled{,_mut} methods to allow returning buffer with original lifetime
2037eace73d Rollup merge of #132495 - Houtamelo:remove_unintended_link, r=jieyouxu
31a805b08cf Rollup merge of #132493 - Houtamelo:doc_type-ref_html-tag, r=jieyouxu
c2f25cd880d Rollup merge of #132482 - lukas-code:stab-attrs, r=Noratrieb
cc5191d1d82 remove const_hash feature leftovers
2728af9203a const_with_hasher test: actually construct a usable HashMap
a4a50b1b672 make char::is_whitespace unstably const
970eae4d52b unicode_data.rs: show command for generating file
f5f55442e3f get rid of a whole bunch of unnecessary rustc_const_unstable attributes
b14c6792db7 Rollup merge of #132398 - krtab:add_doc_link, r=Noratrieb
6f094ac1107 Remove unintended link
a74274e4c08 Fix type reference in documents which was being confused with html tags.
033cb2e7928 fix some stability annotations
bd16467dcc4 Rollup merge of #132459 - RalfJung:byte_sub_ptr, r=scottmcm
e145c80b018 Rollup merge of #132455 - RalfJung:const_alloc_layout, r=dtolnay
c22c341e06a Rollup merge of #132451 - RalfJung:less-rustc_allow_const_fn_unstable, r=tgross35
3bbba3d8bab Rollup merge of #132445 - RalfJung:const-unchecked-shifts, r=tgross35
7df01bee11b Rollup merge of #132413 - lolbinarycat:offset_of_nested-docs, r=workingjubilee
0579de67e47 remove no-longer-needed attribute
b56688f9d64 add missing safety comments
d12f27d4ef9 adjust test gating for f16/f128
d80df07dc04 float types: move copysign, abs, signum to libcore
5f86b1888e2 offset_from / sub_ptr docs: emphasize that pointers must be in the same allocation
c34766cbcdc feat(byte_sub_ptr): add ptr::byte_sub_ptr
080a2e20906 make const_alloc_layout feature gate only about functions that are already stable
e12063485b9 unchecked_shifts, unchecked_neg are safe-to-const-expose-on-stable, so we can get rid of a bunch of attributes
53bc80ca335 remove some unnecessary rustc_allow_const_fn_unstable
9661266001a Auto merge of #132206 - tgross35:update-builtins, r=wesleywiser
c5d1f3effc7 use semantic line break
804ea40144f update offset_of! docs to reflect the stablization of nesting
1f1310db6fc Add intra-doc link in str::xxx_char_boundary
93963fe694b Add a `collect_into` tuple test case
e19e4426450 Don't impl Extend for 13-tuples
86598670051 rustdoc-search: simplify rules for generics and type params
ea2ceffe08d Remove do_not_const_check from Iterator methods
f7e46bc4e8d Add intra-doc link in str::xxx_prefix
ad90a435921 Auto merge of #132238 - Urgau:midpoint-i64-hackers-impl, r=joboet
b1a8ad0421e Implement `From<&mut {slice}>` for `Box/Rc/Arc<{slice}>`
de81c2cfd47 Auto merge of #132326 - matthiaskrgr:rollup-ngyw18g, r=matthiaskrgr
c52ccba99aa Rollup merge of #132321 - betrusted-io:xous/fix-rustc_const_stable-attribute, r=joboet
8148aa07cca Auto merge of #132231 - lukas-code:rc-plug-leaks, r=tgross35
8c010b9c476 xous: sync: remove `rustc_const_stable` attribute
129f8e8c883 Win: rename: Use offset_of! in struct size calculation
38ae7fe6247 Rollup merge of #132270 - yakiimoninja:fs-truncate-docs, r=Noratrieb
94b192d0f13 Rollup merge of #132233 - WaffleLapkin:box-module-split, r=workingjubilee
16b2c9a2db5 Rollup merge of #131520 - zachs18:const-str-split, r=Noratrieb
5a311c1d378 Auto merge of #132277 - workingjubilee:rollup-5e6q6e4, r=workingjubilee
f1a9b205273 Stabilize `const_atomic_from_ptr`
2525108f4c5 Auto merge of #128985 - GrigorenkoPV:instantly-dangling-pointer, r=Urgau
5e9f5b7bb19 Rc destructor: tweak inlining
70e917c03c0 Split `boxed.rs` into a few modules
fedcb7c717f Rollup merge of #131441 - SpriteOvO:proc-macro-to-tokens-trait, r=dtolnay
f156bce99c2 clarified std::fs truncate doc
1050cdf4056 Auto merge of #132145 - RalfJung:stdarch, r=Amanieu
ace4a33dfbb clarified doc for `std::fs::OpenOptions.truncate()`
47fa409434a std: refactor `pthread`-based synchronization
b1d5523119b New lint: `dangling_pointers_from_temporaries`
64c9d4f1857 Rollup merge of #131391 - ChaiTRex:isqrt, r=scottmcm,tgross35
53780a64b4c we can now enable the 'const stable fn must be stable' check
1f1a027091f bump stdarch
56e3763facb Auto merge of #132251 - jieyouxu:rollup-mtv9mpd, r=jieyouxu
4d02c63de8e Auto merge of #132200 - Mark-Simulacrum:strengthen-cross-lang, r=RalfJung
17cb40d2ccc Support `char::is_digit` in const contexts
77075c6dbc8 Use Hacker's Delight impl in `i64::midpoint` instead of wide `i128` impl
8ce9b1cfab9 Rc/Arc: don't leak the allocation if drop panics
99da8532715 add test for panicking drop in Box/Rc/Arc
b737edbfba5 Auto merge of #131284 - dingxiangfei2009:rename-smart-ptr-to-coerce-referent, r=compiler-errors
01a07cd4871 Auto merge of #132191 - Urgau:midpoint_signed_towards_zero, r=dtolnay
c3b9a53453f Add a new trait `proc_macro::ToTokens`
3dd1c135709 Update compiler-builtins to 0.1.136
dc9b4671988 Auto merge of #131715 - tgross35:add-const_sockaddr_setters, r=Amanieu
c40fc128e80 Make clearer that guarantees in ABI compatibility are for Rust only
9be44cb8f7b Add test for all midpoint expectations
c4cdbf7fbb1 Simplify documentation for Extend impl for tuples
c528f49e40c Round negative signed integer towards zero in `iN::midpoint`
a60439c0bce Rollup merge of #132019 - daboross:document-partialeq-oncelock, r=Mark-Simulacrum
c1f1caa4131 Add Extend impls for tuples of arity 1 through 12
b0fc28c0c8b Auto merge of #131349 - RalfJung:const-stability-checks, r=compiler-errors
ac13eae8512 Rollup merge of #132137 - RalfJung:behavior, r=Noratrieb
a8f0d49ac66 get rid of the internal unlikely macro
752b4f49c6f Re-do recursive const stability checks
58397bb1fdd Arbitrary self types v2: (unused) Receiver trait
8ebd2382ca1 library: consistently use American spelling for 'behavior'
75eb49968ea ABI compatibility: remove section on target features
31b83431cee Rollup merge of #131457 - kpreid:fnaddr, r=dtolnay
3e063d045dc Auto merge of #132121 - workingjubilee:rollup-yrtn33e, r=workingjubilee
60585ca1420 Rollup merge of #132113 - LaihoE:pattern_as_utf8_default_impl, r=workingjubilee
b6a311980d5 Rollup merge of #132101 - youknowone:thread_local-gyneiene, r=tgross35
798bde442ca Rollup merge of #132048 - mustartt:aix-random-impl, r=workingjubilee
6feac64de56 Rollup merge of #131851 - sunshowers:musl-posix, r=workingjubilee
f5ccf0690b8 Avoid use imports in thread_local_inner! in statik
2e8a2eb7e08 Auto merge of #132116 - matthiaskrgr:rollup-3a0ia4r, r=matthiaskrgr
2a751f0ecfb Rollup merge of #131790 - nmathewson:doc_socketaddr_representation, r=tgross35
7315f476515 Auto merge of #131985 - compiler-errors:const-pred, r=fee1-dead
deebbdb006e provide default impl for as_utf8_pattern
478357c2879 Auto merge of #123550 - GnomedDev:remove-initial-arc, r=Noratrieb
2ed812b6ba9 Document textual format of SocketAddrV{4,6}
2dd5cd15ed1 Remove associated type based effects logic
c50af69cc05 [musl] use posix_spawn if a directory change was requested
ec9c62c5d8b Rollup merge of #130225 - adetaylor:rename-old-receiver, r=wesleywiser
58baa6b1017 Rollup merge of #132066 - tifv:ptr-docs-typo, r=Amanieu
4eafd5f88bf Rollup merge of #132065 - tifv:dangling-docs, r=Noratrieb
a351830dc1e Rollup merge of #132060 - joshtriplett:innermost-outermost, r=jieyouxu
726032a41a5 Rollup merge of #132039 - a1phyr:vecdeque_read_exact, r=Noratrieb
52be5ab2eba Rollup merge of #130991 - LaihoE:vectorized_slice_contains, r=Noratrieb
ed7dcef9363 const fn str::split_at*
908c430f90b const fn str::is_char_boundary
3804ceb5928 vectorized SliceContains
dab8a07e0c6 s/SmartPointer/CoerceReferent/g
be2e2520a8f fix a typo in documentation of pointer::sub_ptr()
4489ada2533 fix documentation of ptr::dangling() function
beb0813c0f9 "innermost", "outermost", "leftmost", and "rightmost" don't need hyphens
e5207dc3e2f Specialize `read_exact` and `read_buf_exact` for `VecDeque`
57241596b67 Rollup merge of #132031 - slanterns:rc_default, r=ibraheemdev
cdf7373322d Rollup merge of #131707 - clarfonthey:constify-core-tests, r=thomcc
a723e9945c0 Auto merge of #131929 - LaihoE:replace_default_capacity, r=joboet
e4fc33d4c2b AIX use /dev/urandom for impl
c0f78b0fd64 better default capacity for str::replace
6cb2df2e4f2 Rename Receiver -> LegacyReceiver
44957966850 refactor `Arc<T>::default`
82498152f13 optimize `Rc<T>::default`
cd6cb9b77a8 Rollup merge of #131697 - ShE3py:rt-arg-lifetimes, r=Amanieu
9d53c3d831f Document PartialEq impl for OnceLock
f03c8c01999 Rollup merge of #132003 - RalfJung:abi-compat-docs, r=traviscross
4066a64f143 Rollup merge of #130350 - RalfJung:strict-provenance, r=dtolnay
bda4d9a08c4 update ABI compatibility docs for new option-like rules
f215166548f move strict provenance lints to new feature gate, remove old feature gates
f623dd3510b stabilize Strict Provenance and Exposed Provenance
f6c9bdee93a fix docs
8ca8d1c2840 replace FindFirstFileW with FindFirstFileExW and apply optimization
ec7fd656204 replace FindFirstFileW with FindFirstFileExW and regenerate bindings
fe800fec874 Auto merge of #131948 - matthiaskrgr:rollup-c9rvzu6, r=matthiaskrgr
cbce52d7930 Support lock() and lock_shared() on async IO Files
337589b47fe Rollup merge of #131921 - klensy:statx_all, r=ChrisDenton
a18ec462803 Rollup merge of #131772 - GnomedDev:remove-proc_macro-todo, r=petrochenkov
2de2bb8c725 Auto merge of #131907 - saethlin:update-compiler-builtins, r=tgross35
27da9878375 Update `compiler-builtins` to 0.1.134
4926eaf8eb3 Rollup merge of #131919 - RalfJung:zero-sized-accesses, r=jhpratt
128a16b2582 Rollup merge of #131890 - printfn:precise-capturing-docs, r=traviscross
482e00e978e Rollup merge of #127462 - Ayush1325:uefi-env, r=joboet
5b58eaf4c04 Remove the Arc rt::init allocation for thread info
907235305db Auto merge of #131816 - Zalathar:profiler-feature, r=Kobzol
50b999587c3 replace STATX_ALL with (STATX_BASIC_STATS | STATX_BTIME) as former is deprecated
e10007c801c zero-sized accesses are fine on null pointers
c839b06e6f7 Update `use` keyword docs to describe precise capturing
52d741650e3 std: uefi: Use common function for UEFI shell
ee906dc299f std: uefi: Add basic Env variables
bcb8c74ac6d Auto merge of #131895 - jieyouxu:rollup-jyt3pic, r=jieyouxu
ec7185ea142 Rollup merge of #126207 - devnexen:stack_overflow_libc_upd, r=joboet
d490861f932 Auto merge of #131841 - paulmenage:futex-abstraction, r=joboet
321ed487b43 Revert using `HEAP` static in Windows alloc
9f4792a0c17 Rollup merge of #131866 - jieyouxu:thread_local, r=jhpratt
70a07c3e85c Rollup merge of #131858 - AnthonyMikh:AnthonyMikh/repeat_n-is-not-that-special-anymore, r=jhpratt
397c893fc1a Rollup merge of #131809 - collinoc:fix-retain-mut-docs, r=jhpratt
958ce90f8b5 Rollup merge of #131774 - thesummer:rtems-add-getentropy, r=joboet
a02fe2c3ab7 Rollup merge of #130136 - GKFX:stabilize-const-pin, r=dtolnay
b75a761783d Add entropy source for RTEMS
ee0238f6983 Rollup merge of #131850 - lexeyOK:master, r=compiler-errors
2fb1b3123dc Rollup merge of #131823 - thesummer:bump-libc-0.2.160, r=workingjubilee
bad79f7adeb Rollup merge of #131654 - betrusted-io:xous-various-fixes, r=thomcc
5c57b583a5e Avoid shadowing user provided types or type aliases in `thread_local!`
3d6e29ab956 remove outdated documentation for `repeat_n`
2925689b331 Auto merge of #131572 - cuviper:ub-index_range, r=thomcc
7e5438a1c0e Bump libc to 0.2.161
11e5ea4617e std::unix::stack_overflow::drop_handler addressing todo through libc update
f7bd16a03cc Missing parenthesis
1df22fb2b27 Abstract the state type for futexes
704ed799ad7 Rollup merge of #131835 - ferrocene:amanjeev/add-missing-attribute-unwind, r=Noratrieb
afedc50a999 Rollup merge of #131833 - c-ryan747:patch-1, r=Noratrieb
55231fc463a Auto merge of #130223 - LaihoE:faster_str_replace, r=thomcc
e3b067b3d5c Do not run test where it cannot run
96406cc04ba Add must_use to CommandExt::exec
ff3476a0445 Make `profiler_builtins` an optional dependency of sysroot, not std
f94af194acf Remove TODO in proc_macro now `const_refs_to_static` is stable
31b63e6cd04 Fix predicate signatures in retain_mut docs
bfca7d41a5f Win: Remove special casing of the win7 target for `std::fs::rename`
85ffa8b1c0d Auto merge of #131797 - matthiaskrgr:rollup-lzpze2k, r=matthiaskrgr
ea93b310074 Partially stabilize const_pin
5f8ad4da356 Rollup merge of #131730 - zlfn:master, r=tgross35
354887191ca Auto merge of #131792 - matthiaskrgr:rollup-480nwg4, r=matthiaskrgr
828d995efd6 Rollup merge of #130822 - bjoernager:non-null-from-ref, r=dtolnay
0d4e8ae492a Auto merge of #131767 - cuviper:bump-stage0, r=Mark-Simulacrum
3fc0b3dd5ab Rollup merge of #131746 - slanterns:once_box_order, r=joboet
1e8ad2f6796 Rollup merge of #131712 - tgross35:const-lazy_cell_into_inner, r=joboet
67981579caa Auto merge of #131460 - jwong101:default-placement-new, r=ibraheemdev
c38229a1748 update bootstrap configs
0a1c9a389b5 replace placeholder version
9f57bef95bb relax a memory order in `once_box`
fa35f4afd1d Rollup merge of #131521 - jdonszelmann:rc, r=joboet
466bf5e0288 Rollup merge of #130568 - eduardosm:…
briansmith
added a commit
to briansmith/once_cell
that referenced
this pull request
Mar 15, 2025
See the analogous change in rust-lang/rust#131746 and the discussion in matklad#220. What is the effect of this change? Consider this example: ```diff #[no_mangle] fn foo1(y: &mut i32) -> bool { - let r = X.compare_exchange(0, 1, Ordering::AcqRel, Ordering::Acquire).is_ok(); + let r = X.compare_exchange(0, 1, Ordering::Release, Ordering::Acquire).is_ok(); r } ``` On x86_64, there is no change. Here is the generated code before and after: ``` foo1: mov rcx, qword ptr [rip + example::X::h9e1b81da80078af7@GOTPCREL] mov edx, 1 xor eax, eax lock cmpxchg dword ptr [rcx], edx sete al ret example::X::h9e1b81da80078af7: .zero 4 ``` On AArch64, regardless of whether atomics are outlined or not, there is no change. Here is the generated code with inlined atomics: ``` foo1: adrp x8, :got:example::X::h40b04fb69d714de3 ldr x8, [x8, :got_lo12:example::X::h40b04fb69d714de3] .LBB0_1: ldaxr w9, [x8] cbnz w9, .LBB0_4 mov w0, matklad#1 stlxr w9, w0, [x8] cbnz w9, .LBB0_1 ret .LBB0_4: mov w0, wzr clrex ret example::X::h40b04fb69d714de3: .zero 4 ``` For 32-bit ARMv7, with inlined atomics, the resulting diff in the object code is: ```diff @@ -10,14 +10,13 @@ mov r0, matklad#1 strex r2, r0, [r1] cmp r2, #0 - beq .LBB0_5 + bxeq lr ldrex r0, [r1] cmp r0, #0 beq .LBB0_2 .LBB0_4: - mov r0, #0 clrex -.LBB0_5: + mov r0, #0 dmb ish bx lr .LCPI0_0: @@ -54,4 +53,3 @@ example::X::h47e2038445e1c648: .zero 4 ```
briansmith
added a commit
to briansmith/once_cell
that referenced
this pull request
Mar 15, 2025
See the analogous change in rust-lang/rust#131746 and the discussion in matklad#220. What is the effect of this change? Consider this example: ```diff #[no_mangle] fn foo1(y: &mut i32) -> bool { - let r = X.compare_exchange(0, 1, Ordering::AcqRel, Ordering::Acquire).is_ok(); + let r = X.compare_exchange(0, 1, Ordering::Release, Ordering::Acquire).is_ok(); r } ``` On x86_64, there is no change. Here is the generated code before and after: ``` foo1: mov rcx, qword ptr [rip + example::X::h9e1b81da80078af7@GOTPCREL] mov edx, 1 xor eax, eax lock cmpxchg dword ptr [rcx], edx sete al ret example::X::h9e1b81da80078af7: .zero 4 ``` On AArch64, regardless of whether atomics are outlined or not, there is no change. Here is the generated code with inlined atomics: ``` foo1: adrp x8, :got:example::X::h40b04fb69d714de3 ldr x8, [x8, :got_lo12:example::X::h40b04fb69d714de3] .LBB0_1: ldaxr w9, [x8] cbnz w9, .LBB0_4 mov w0, matklad#1 stlxr w9, w0, [x8] cbnz w9, .LBB0_1 ret .LBB0_4: mov w0, wzr clrex ret example::X::h40b04fb69d714de3: .zero 4 ``` For 32-bit ARMv7, with inlined atomics, the resulting diff in the object code is: ```diff @@ -10,14 +10,13 @@ mov r0, matklad#1 strex r2, r0, [r1] cmp r2, #0 - beq .LBB0_5 + bxeq lr ldrex r0, [r1] cmp r0, #0 beq .LBB0_2 .LBB0_4: - mov r0, #0 clrex -.LBB0_5: + mov r0, #0 dmb ish bx lr .LCPI0_0: @@ -54,4 +53,3 @@ example::X::h47e2038445e1c648: .zero 4 ```
briansmith
added a commit
to briansmith/once_cell
that referenced
this pull request
Mar 15, 2025
…ease`. See the analogous change in rust-lang/rust#131746 and the discussion in matklad#220. What is the effect of this change? Not much, because before we ever execute the `compare_exchange`, we do a load with `Ordering::Acquire`; the `compare_exchange` is in the `#[cold]` path already. Thus, this just mostly clarifies our expectations. How does this change the code gen? Consider this analogous example: ```diff #[no_mangle] fn foo1(y: &mut i32) -> bool { - let r = X.compare_exchange(0, 1, Ordering::AcqRel, Ordering::Acquire).is_ok(); + let r = X.compare_exchange(0, 1, Ordering::Release, Ordering::Acquire).is_ok(); r } ``` On x86_64, there is no change. Here is the generated code before and after: ``` foo1: mov rcx, qword ptr [rip + example::X::h9e1b81da80078af7@GOTPCREL] mov edx, 1 xor eax, eax lock cmpxchg dword ptr [rcx], edx sete al ret example::X::h9e1b81da80078af7: .zero 4 ``` On AArch64, regardless of whether atomics are outlined or not, there is no change. Here is the generated code with inlined atomics: ``` foo1: adrp x8, :got:example::X::h40b04fb69d714de3 ldr x8, [x8, :got_lo12:example::X::h40b04fb69d714de3] .LBB0_1: ldaxr w9, [x8] cbnz w9, .LBB0_4 mov w0, matklad#1 stlxr w9, w0, [x8] cbnz w9, .LBB0_1 ret .LBB0_4: mov w0, wzr clrex ret example::X::h40b04fb69d714de3: .zero 4 ``` For 32-bit ARMv7, with inlined atomics, the resulting diff in the object code is: ```diff @@ -10,14 +10,13 @@ mov r0, matklad#1 strex r2, r0, [r1] cmp r2, #0 - beq .LBB0_5 + bxeq lr ldrex r0, [r1] cmp r0, #0 beq .LBB0_2 .LBB0_4: - mov r0, #0 clrex -.LBB0_5: + mov r0, #0 dmb ish bx lr .LCPI0_0: @@ -54,4 +53,3 @@ example::X::h47e2038445e1c648: .zero 4 ```
briansmith
added a commit
to briansmith/once_cell
that referenced
this pull request
Mar 17, 2025
…ease`. See the analogous change in rust-lang/rust#131746 and the discussion in matklad#220. What is the effect of this change? Not much, because before we ever execute the `compare_exchange`, we do a load with `Ordering::Acquire`; the `compare_exchange` is in the `#[cold]` path already. Thus, this just mostly clarifies our expectations. See the non-doc comment added under the module's doc comment for the reasoning. How does this change the code gen? Consider this analogous example: ```diff #[no_mangle] fn foo1(y: &mut i32) -> bool { - let r = X.compare_exchange(0, 1, Ordering::AcqRel, Ordering::Acquire).is_ok(); + let r = X.compare_exchange(0, 1, Ordering::Release, Ordering::Acquire).is_ok(); r } ``` On x86_64, there is no change. Here is the generated code before and after: ``` foo1: mov rcx, qword ptr [rip + example::X::h9e1b81da80078af7@GOTPCREL] mov edx, 1 xor eax, eax lock cmpxchg dword ptr [rcx], edx sete al ret example::X::h9e1b81da80078af7: .zero 4 ``` On AArch64, regardless of whether atomics are outlined or not, there is no change. Here is the generated code with inlined atomics: ``` foo1: adrp x8, :got:example::X::h40b04fb69d714de3 ldr x8, [x8, :got_lo12:example::X::h40b04fb69d714de3] .LBB0_1: ldaxr w9, [x8] cbnz w9, .LBB0_4 mov w0, matklad#1 stlxr w9, w0, [x8] cbnz w9, .LBB0_1 ret .LBB0_4: mov w0, wzr clrex ret example::X::h40b04fb69d714de3: .zero 4 ``` For 32-bit ARMv7, with inlined atomics, the resulting diff in the object code is: ```diff @@ -10,14 +10,13 @@ mov r0, matklad#1 strex r2, r0, [r1] cmp r2, #0 - beq .LBB0_5 + bxeq lr ldrex r0, [r1] cmp r0, #0 beq .LBB0_2 .LBB0_4: - mov r0, #0 clrex -.LBB0_5: + mov r0, #0 dmb ish bx lr .LCPI0_0: @@ -54,4 +53,3 @@ example::X::h47e2038445e1c648: .zero 4 ```
briansmith
added a commit
to briansmith/once_cell
that referenced
this pull request
Mar 17, 2025
…ease`. See the analogous change in rust-lang/rust#131746 and the discussion in matklad#220. What is the effect of this change? Not much, because before we ever execute the `compare_exchange`, we do a load with `Ordering::Acquire`; the `compare_exchange` is in the `#[cold]` path already. Thus, this just mostly clarifies our expectations. See the non-doc comment added under the module's doc comment for the reasoning. How does this change the code gen? Consider this analogous example: ```diff #[no_mangle] fn foo1(y: &mut i32) -> bool { - let r = X.compare_exchange(0, 1, Ordering::AcqRel, Ordering::Acquire).is_ok(); + let r = X.compare_exchange(0, 1, Ordering::Release, Ordering::Acquire).is_ok(); r } ``` On x86_64, there is no change. Here is the generated code before and after: ``` foo1: mov rcx, qword ptr [rip + example::X::h9e1b81da80078af7@GOTPCREL] mov edx, 1 xor eax, eax lock cmpxchg dword ptr [rcx], edx sete al ret example::X::h9e1b81da80078af7: .zero 4 ``` On AArch64, regardless of whether atomics are outlined or not, there is no change. Here is the generated code with inlined atomics: ``` foo1: adrp x8, :got:example::X::h40b04fb69d714de3 ldr x8, [x8, :got_lo12:example::X::h40b04fb69d714de3] .LBB0_1: ldaxr w9, [x8] cbnz w9, .LBB0_4 mov w0, matklad#1 stlxr w9, w0, [x8] cbnz w9, .LBB0_1 ret .LBB0_4: mov w0, wzr clrex ret example::X::h40b04fb69d714de3: .zero 4 ``` For 32-bit ARMv7, with inlined atomics, the resulting diff in the object code is: ```diff @@ -10,14 +10,13 @@ mov r0, matklad#1 strex r2, r0, [r1] cmp r2, #0 - beq .LBB0_5 + bxeq lr ldrex r0, [r1] cmp r0, #0 beq .LBB0_2 .LBB0_4: - mov r0, #0 clrex -.LBB0_5: + mov r0, #0 dmb ish bx lr .LCPI0_0: @@ -54,4 +53,3 @@ example::X::h47e2038445e1c648: .zero 4 ```
briansmith
added a commit
to briansmith/once_cell
that referenced
this pull request
Mar 17, 2025
…ease`. See the analogous change in rust-lang/rust#131746 and the discussion in matklad#220. What is the effect of this change? Not much, because before we ever execute the `compare_exchange`, we do a load with `Ordering::Acquire`; the `compare_exchange` is in the `#[cold]` path already. Thus, this just mostly clarifies our expectations. See the non-doc comment added under the module's doc comment for the reasoning. How does this change the code gen? Consider this analogous example: ```diff #[no_mangle] fn foo1(y: &mut i32) -> bool { - let r = X.compare_exchange(0, 1, Ordering::AcqRel, Ordering::Acquire).is_ok(); + let r = X.compare_exchange(0, 1, Ordering::Release, Ordering::Acquire).is_ok(); r } ``` On x86_64, there is no change. Here is the generated code before and after: ``` foo1: mov rcx, qword ptr [rip + example::X::h9e1b81da80078af7@GOTPCREL] mov edx, 1 xor eax, eax lock cmpxchg dword ptr [rcx], edx sete al ret example::X::h9e1b81da80078af7: .zero 4 ``` On AArch64, regardless of whether atomics are outlined or not, there is no change. Here is the generated code with inlined atomics: ``` foo1: adrp x8, :got:example::X::h40b04fb69d714de3 ldr x8, [x8, :got_lo12:example::X::h40b04fb69d714de3] .LBB0_1: ldaxr w9, [x8] cbnz w9, .LBB0_4 mov w0, matklad#1 stlxr w9, w0, [x8] cbnz w9, .LBB0_1 ret .LBB0_4: mov w0, wzr clrex ret example::X::h40b04fb69d714de3: .zero 4 ``` For 32-bit ARMv7, with inlined atomics, the resulting diff in the object code is: ```diff @@ -10,14 +10,13 @@ mov r0, matklad#1 strex r2, r0, [r1] cmp r2, #0 - beq .LBB0_5 + bxeq lr ldrex r0, [r1] cmp r0, #0 beq .LBB0_2 .LBB0_4: - mov r0, #0 clrex -.LBB0_5: + mov r0, #0 dmb ish bx lr .LCPI0_0: @@ -54,4 +53,3 @@ example::X::h47e2038445e1c648: .zero 4 ```
briansmith
added a commit
to briansmith/ring
that referenced
this pull request
Apr 1, 2025
…ease`. [cherry-pick once_cell 2a707eedb459369687ffdb2183ee82fabaa5d97a] See the analogous change in rust-lang/rust#131746 and the discussion in matklad/once_cell#220. What is the effect of this change? Not much, because before we ever execute the `compare_exchange`, we do a load with `Ordering::Acquire`; the `compare_exchange` is in the `#[cold]` path already. Thus, this just mostly clarifies our expectations. See the non-doc comment added under the module's doc comment for the reasoning. How does this change the code gen? Consider this analogous example: ```diff #[no_mangle] fn foo1(y: &mut i32) -> bool { - let r = X.compare_exchange(0, 1, Ordering::AcqRel, Ordering::Acquire).is_ok(); + let r = X.compare_exchange(0, 1, Ordering::Release, Ordering::Acquire).is_ok(); r } ``` On x86_64, there is no change. Here is the generated code before and after: ``` foo1: mov rcx, qword ptr [rip + example::X::h9e1b81da80078af7@GOTPCREL] mov edx, 1 xor eax, eax lock cmpxchg dword ptr [rcx], edx sete al ret example::X::h9e1b81da80078af7: .zero 4 ``` On AArch64, regardless of whether atomics are outlined or not, there is no change. Here is the generated code with inlined atomics: ``` foo1: adrp x8, :got:example::X::h40b04fb69d714de3 ldr x8, [x8, :got_lo12:example::X::h40b04fb69d714de3] .LBB0_1: ldaxr w9, [x8] cbnz w9, .LBB0_4 mov w0, #1 stlxr w9, w0, [x8] cbnz w9, .LBB0_1 ret .LBB0_4: mov w0, wzr clrex ret example::X::h40b04fb69d714de3: .zero 4 ``` For 32-bit ARMv7, with inlined atomics, the resulting diff in the object code is: ```diff @@ -10,14 +10,13 @@ mov r0, #1 strex r2, r0, [r1] cmp r2, #0 - beq .LBB0_5 + bxeq lr ldrex r0, [r1] cmp r0, #0 beq .LBB0_2 .LBB0_4: - mov r0, #0 clrex -.LBB0_5: + mov r0, #0 dmb ish bx lr .LCPI0_0: @@ -54,4 +53,3 @@ example::X::h47e2038445e1c648: .zero 4 ```
briansmith
added a commit
to briansmith/ring
that referenced
this pull request
Apr 5, 2025
…ease`. [cherry-pick once_cell 2a707eedb459369687ffdb2183ee82fabaa5d97a] See the analogous change in rust-lang/rust#131746 and the discussion in matklad/once_cell#220. What is the effect of this change? Not much, because before we ever execute the `compare_exchange`, we do a load with `Ordering::Acquire`; the `compare_exchange` is in the `#[cold]` path already. Thus, this just mostly clarifies our expectations. See the non-doc comment added under the module's doc comment for the reasoning. How does this change the code gen? Consider this analogous example: ```diff #[no_mangle] fn foo1(y: &mut i32) -> bool { - let r = X.compare_exchange(0, 1, Ordering::AcqRel, Ordering::Acquire).is_ok(); + let r = X.compare_exchange(0, 1, Ordering::Release, Ordering::Acquire).is_ok(); r } ``` On x86_64, there is no change. Here is the generated code before and after: ``` foo1: mov rcx, qword ptr [rip + example::X::h9e1b81da80078af7@GOTPCREL] mov edx, 1 xor eax, eax lock cmpxchg dword ptr [rcx], edx sete al ret example::X::h9e1b81da80078af7: .zero 4 ``` On AArch64, regardless of whether atomics are outlined or not, there is no change. Here is the generated code with inlined atomics: ``` foo1: adrp x8, :got:example::X::h40b04fb69d714de3 ldr x8, [x8, :got_lo12:example::X::h40b04fb69d714de3] .LBB0_1: ldaxr w9, [x8] cbnz w9, .LBB0_4 mov w0, #1 stlxr w9, w0, [x8] cbnz w9, .LBB0_1 ret .LBB0_4: mov w0, wzr clrex ret example::X::h40b04fb69d714de3: .zero 4 ``` For 32-bit ARMv7, with inlined atomics, the resulting diff in the object code is: ```diff @@ -10,14 +10,13 @@ mov r0, #1 strex r2, r0, [r1] cmp r2, #0 - beq .LBB0_5 + bxeq lr ldrex r0, [r1] cmp r0, #0 beq .LBB0_2 .LBB0_4: - mov r0, #0 clrex -.LBB0_5: + mov r0, #0 dmb ish bx lr .LCPI0_0: @@ -54,4 +53,3 @@ example::X::h47e2038445e1c648: .zero 4 ```
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
S-waiting-on-bors
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
T-libs
Relevant to the library team, which will review and decide on the PR/issue.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
per #131094 (comment).
In the successful path we don't need
Acquiresince we don't care if the store inf()happened in other threads has become visible to the current thread. We'll use our own results instead and just usingReleaseto ensure other threads can see our store toBoxwhen they fail thecompare_exchangewill suffice.Also took https://marabos.nl/atomics/memory-ordering.html#example-lazy-initialization-with-indirection as a reference.
@rustbot label: +T-libs
r? @ibraheemdev