-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
library: Compute RUST_EXCEPTION_CLASS
from native-endian bytes
#130897
Conversation
This makes it appear correctly in hexdumps on both LE and BE platforms.
Nice. Not going to rollup this in case it causes issues and is needed to be identified in a bisection. @bors r+ rollup=never |
☀️ Test successful - checks-actions |
Finished benchmarking commit (150247c): comparison URL. Overall result: ✅ improvements - no action needed@rustbot label: -perf-regression Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)Results (primary 2.9%, secondary -2.2%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResults (primary -2.5%, secondary 6.8%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 771.075s -> 771.117s (0.01%) |
Note that the Itanium exception ABI says that the convention is that high bit are for vendor and low bits are for language: https://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html. Perhaps put a relnote to say that the langauge is now renamed to MOZ? ;) |
This was changed in upstream Rust recently [1], so change to follow suit. The error message is slightly different between exception from another Rust runtime and a complete foreign exception. (The message for later is a confusing "Rust exception must be rethrown"). Link: rust-lang/rust#130897 [1]
This was changed in upstream Rust recently [1], so change to follow suit. The error message is slightly different between exception from another Rust runtime and a complete foreign exception. (The message for later is a confusing "Rust exception must be rethrown"). Link: rust-lang/rust#130381 [1]
✔️ MOZ from RUST |
More like ZOM, no? "The low 4 bytes" would have a different order on little-endian than on big-endian. If all other languages use |
Cc @rust-lang/libs |
This was changed in upstream Rust recently [1], so change to follow suit. The error message is slightly different between exception from another Rust runtime and a complete foreign exception. (The message for latter is a confusing "Rust exception must be rethrown"). Link: rust-lang/rust#130897 [1]
Given that the class is changed anyway, should it be replaced with |
At the risk of bikeshedding, we could use (Which doesn't do anything about endianness, but shrug.) |
EDIT: Ah sorry, I misremember the PR this is about. |
In other words, we are now deviating from the official spec. That should have been discussed a bit more before it is shipped, IMO. |
I would advise against |
@RalfJung We've already left the building: The only MUST there is that the de facto string includes As we have never exactly done so, it doesn't particularly matter how we handle the string because a C++ implementation won't recognize our exceptions as C++ exceptions, and probably shouldn't. |
Except the Itanium C++ exception ABI is the de facto standard for all unwinding on Linux and it specifies that "low 4 bytes indicate the language"? |
Which is Rust, yes. And here it says:
That's a "will". So our real choices are to either say we're C++... which, again, we've never done, would be somewhat unusual, and we don't really have any proof that it's a good idea... or not. And at that point what matters is that if someone examines the value they won't find "C++\0" in it. |
alternatively, on the subject of vendor vs. language bytes: println!("{}", "🦀".len()) // 4 |
It also says
And this what people do: D sets it to DMD\0D\0\0\0: https://github.com/dlang/dmd/blob/4b94c9facf46a4167acfdc83ed9a92c5bc88c583/druntime/src/rt/dwarfeh.d#L139 This can be useful for telling people what foreign exception is caught when we eventually support catching them. I don't think we gain much for not following the convention here. |
Does anyone pattern match on the language names that aren't their own? |
It's a fairly trivial change, so I'm not particularly fussed by which... ah... end we want to start from. My main drive was to actually compute it from the string data it is (written backwards though it may be) instead of having an inscrutable constant. By the way, the ABI docs mention ...the Itanium was bi-endian, and HP-UX uses big endian. The "convention" they described was, yes, the one that makes sense on a big endian machine. |
I don't think that matters. There is an existing recommendation in the spec, and it is widely followed by implementations. We shouldn't diverge from that without a really good reason, and IMO we don't have a good reason. |
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
Pkgsrc changes compared to rust182: * Remove patches related to rust-lang/rust#130110, which is now integrated upstream. * Remove patch to vendor/cc-1.0.79, now integrated in the current vendored cc crate. * Checksum updates. TODO: * Cross-compilation fails ref. rust-lang/rust#133629 Upstream changes: Version 1.83.0 (2024-11-28) ========================== Language -------- - [Stabilize `&mut`, `*mut`, `&Cell`, and `*const Cell` in const.] (rust-lang/rust#129195) - [Allow creating references to statics in `const` initializers.] (rust-lang/rust#129759) - [Implement raw lifetimes and labels (`'r#ident`).] (rust-lang/rust#126452) - [Define behavior when atomic and non-atomic reads race.] (rust-lang/rust#128778) - [Non-exhaustive structs may now be empty.] (rust-lang/rust#128934) - [Disallow implicit coercions from places of type `!`] (rust-lang/rust#129392) - [`const extern` functions can now be defined for other calling conventions.] (rust-lang/rust#129753) - [Stabilize `expr_2021` macro fragment specifier in all editions.] (rust-lang/rust#129972) - [The `non_local_definitions` lint now fires on less code and warns by default.] (rust-lang/rust#127117) Compiler -------- - [Deprecate unsound `-Csoft-float` flag.] (rust-lang/rust#129897) - Add many new tier 3 targets: - [`aarch64_unknown_nto_qnx700`] (rust-lang/rust#127897) - [`arm64e-apple-tvos`] (rust-lang/rust#130614) - [`armv7-rtems-eabihf`] (rust-lang/rust#127021) - [`loongarch64-unknown-linux-ohos`] (rust-lang/rust#130750) - [`riscv32-wrs-vxworks` and `riscv64-wrs-vxworks`] (rust-lang/rust#130549) - [`riscv32{e|em|emc}-unknown-none-elf`] (rust-lang/rust#130555) - [`x86_64-unknown-hurd-gnu`] (rust-lang/rust#128345) - [`x86_64-unknown-trusty`] (rust-lang/rust#130453) Refer to Rust's [platform support page][platform-support-doc] for more information on Rust's tiered platform support. Libraries --------- - [Implement `PartialEq` for `ExitCode`.] (rust-lang/rust#127633) - [Document that `catch_unwind` can deal with foreign exceptions without UB, although the exact behavior is unspecified.] (rust-lang/rust#128321) - [Implement `Default` for `HashMap`/`HashSet` iterators that don't already have it.] (rust-lang/rust#128711) - [Bump Unicode to version 16.0.0.] (rust-lang/rust#130183) - [Change documentation of `ptr::add`/`sub` to not claim equivalence with `offset`.] (rust-lang/rust#130229). Stabilized APIs --------------- - [`BufRead::skip_until`] (https://doc.rust-lang.org/stable/std/io/trait.BufRead.html#method.skip_until) - [`ControlFlow::break_value`] (https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.break_value) - [`ControlFlow::continue_value`] (https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.continue_value) - [`ControlFlow::map_break`] (https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.map_break) - [`ControlFlow::map_continue`] (https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.map_continue) - [`DebugList::finish_non_exhaustive`] (https://doc.rust-lang.org/stable/core/fmt/struct.DebugList.html#method.finish_non_exhaustive) - [`DebugMap::finish_non_exhaustive`] (https://doc.rust-lang.org/stable/core/fmt/struct.DebugMap.html#method.finish_non_exhaustive) - [`DebugSet::finish_non_exhaustive`] (https://doc.rust-lang.org/stable/core/fmt/struct.DebugSet.html#method.finish_non_exhaustive) - [`DebugTuple::finish_non_exhaustive`] (https://doc.rust-lang.org/stable/core/fmt/struct.DebugTuple.html#method.finish_non_exhaustive) - [`ErrorKind::ArgumentListTooLong`] (https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ArgumentListTooLong) - [`ErrorKind::Deadlock`] (https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.Deadlock) - [`ErrorKind::DirectoryNotEmpty`] (https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.DirectoryNotEmpty) - [`ErrorKind::ExecutableFileBusy`] (https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ExecutableFileBusy) - [`ErrorKind::FileTooLarge`] (https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.FileTooLarge) - [`ErrorKind::HostUnreachable`] (https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.HostUnreachable) - [`ErrorKind::IsADirectory`] (https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.IsADirectory) - [`ErrorKind::NetworkDown`] (https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NetworkDown) - [`ErrorKind::NetworkUnreachable`] (https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NetworkUnreachable) - [`ErrorKind::NotADirectory`] (https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NotADirectory) - [`ErrorKind::NotSeekable`] (https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NotSeekable) - [`ErrorKind::ReadOnlyFilesystem`] (https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ReadOnlyFilesystem) - [`ErrorKind::ResourceBusy`] (https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ResourceBusy) - [`ErrorKind::StaleNetworkFileHandle`] (https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.StaleNetworkFileHandle) - [`ErrorKind::StorageFull`] (https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.StorageFull) - [`ErrorKind::TooManyLinks`] (https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.TooManyLinks) - [`Option::get_or_insert_default`] (https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.get_or_insert_default) - [`Waker::data`] (https://doc.rust-lang.org/stable/core/task/struct.Waker.html#method.data) - [`Waker::new`] (https://doc.rust-lang.org/stable/core/task/struct.Waker.html#method.new) - [`Waker::vtable`] (https://doc.rust-lang.org/stable/core/task/struct.Waker.html#method.vtable) - [`char::MIN`] (https://doc.rust-lang.org/stable/core/primitive.char.html#associatedconstant.MIN) - [`hash_map::Entry::insert_entry`] (https://doc.rust-lang.org/stable/std/collections/hash_map/enum.Entry.html#method.insert_entry) - [`hash_map::VacantEntry::insert_entry`] (https://doc.rust-lang.org/stable/std/collections/hash_map/struct.VacantEntry.html#method.insert_entry) These APIs are now stable in const contexts: - [`Cell::into_inner`] (https://doc.rust-lang.org/stable/core/cell/struct.Cell.html#method.into_inner) - [`Duration::as_secs_f32`] (https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.as_secs_f32) - [`Duration::as_secs_f64`] (https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.as_secs_f64) - [`Duration::div_duration_f32`] (https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.div_duration_f32) - [`Duration::div_duration_f64`] (https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.div_duration_f64) - [`MaybeUninit::as_mut_ptr`] (https://doc.rust-lang.org/stable/core/mem/union.MaybeUninit.html#method.as_mut_ptr) - [`NonNull::as_mut`] (https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.as_mut) - [`NonNull::copy_from`] (https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_from) - [`NonNull::copy_from_nonoverlapping`] (https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_from_nonoverlapping) - [`NonNull::copy_to`] (https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_to) - [`NonNull::copy_to_nonoverlapping`] (https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_to_nonoverlapping) - [`NonNull::slice_from_raw_parts`] (https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.slice_from_raw_parts) - [`NonNull::write`] (https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.write) - [`NonNull::write_bytes`] (https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.write_bytes) - [`NonNull::write_unaligned`] (https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.write_unaligned) - [`OnceCell::into_inner`] (https://doc.rust-lang.org/stable/core/cell/struct.OnceCell.html#method.into_inner) - [`Option::as_mut`] (https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.as_mut) - [`Option::expect`] (https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.expect) - [`Option::replace`] (https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.replace) - [`Option::take`] (https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.take) - [`Option::unwrap`] (https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.unwrap) - [`Option::unwrap_unchecked`] (https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.unwrap_unchecked) - [`Option::<&_>::copied`] (https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.copied) - [`Option::<&mut _>::copied`] (https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.copied-1) - [`Option::<Option<_>>::flatten`] (https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.flatten) - [`Option::<Result<_, _>>::transpose`] (https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.transpose) - [`RefCell::into_inner`] (https://doc.rust-lang.org/stable/core/cell/struct.RefCell.html#method.into_inner) - [`Result::as_mut`] (https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.as_mut) - [`Result::<&_, _>::copied`] (https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.copied) - [`Result::<&mut _, _>::copied`] (https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.copied-1) - [`Result::<Option<_>, _>::transpose`] (https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.transpose) - [`UnsafeCell::get_mut`] (https://doc.rust-lang.org/stable/core/cell/struct.UnsafeCell.html#method.get_mut) - [`UnsafeCell::into_inner`] (https://doc.rust-lang.org/stable/core/cell/struct.UnsafeCell.html#method.into_inner) - [`array::from_mut`] (https://doc.rust-lang.org/stable/core/array/fn.from_mut.html) - [`char::encode_utf8`] (https://doc.rust-lang.org/stable/core/primitive.char.html#method.encode_utf8) - [`{float}::classify`] (https://doc.rust-lang.org/stable/core/primitive.f64.html#method.classify) - [`{float}::is_finite`] (https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_finite) - [`{float}::is_infinite`] (https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_infinite) - [`{float}::is_nan`] (https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_nan) - [`{float}::is_normal`] (https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_normal) - [`{float}::is_sign_negative`] (https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_sign_negative) - [`{float}::is_sign_positive`] (https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_sign_positive) - [`{float}::is_subnormal`] (https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_subnormal) - [`{float}::from_bits`] (https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_bits) - [`{float}::from_be_bytes`] (https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_be_bytes) - [`{float}::from_le_bytes`] (https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_le_bytes) - [`{float}::from_ne_bytes`] (https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_ne_bytes) - [`{float}::to_bits`] (https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_bits) - [`{float}::to_be_bytes`] (https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_be_bytes) - [`{float}::to_le_bytes`] (https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_le_bytes) - [`{float}::to_ne_bytes`] (https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_ne_bytes) - [`mem::replace`] (https://doc.rust-lang.org/stable/core/mem/fn.replace.html) - [`ptr::replace`] (https://doc.rust-lang.org/stable/core/ptr/fn.replace.html) - [`ptr::slice_from_raw_parts_mut`] (https://doc.rust-lang.org/stable/core/ptr/fn.slice_from_raw_parts_mut.html) - [`ptr::write`] (https://doc.rust-lang.org/stable/core/ptr/fn.write.html) - [`ptr::write_unaligned`] (https://doc.rust-lang.org/stable/core/ptr/fn.write_unaligned.html) - [`<*const _>::copy_to`] (https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to) - [`<*const _>::copy_to_nonoverlapping`] (https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to_nonoverlapping) - [`<*mut _>::copy_from`] (https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_from) - [`<*mut _>::copy_from_nonoverlapping`] (https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_from_nonoverlapping) - [`<*mut _>::copy_to`] (https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to-1) - [`<*mut _>::copy_to_nonoverlapping`] (https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to_nonoverlapping-1) - [`<*mut _>::write`] (https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.write) - [`<*mut _>::write_bytes`] (https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.write_bytes) - [`<*mut _>::write_unaligned`] (https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.write_unaligned) - [`slice::from_mut`] (https://doc.rust-lang.org/stable/core/slice/fn.from_mut.html) - [`slice::from_raw_parts_mut`] (https://doc.rust-lang.org/stable/core/slice/fn.from_raw_parts_mut.html) - [`<[_]>::first_mut`] (https://doc.rust-lang.org/stable/core/primitive.slice.html#method.first_mut) - [`<[_]>::last_mut`] (https://doc.rust-lang.org/stable/core/primitive.slice.html#method.last_mut) - [`<[_]>::first_chunk_mut`] (https://doc.rust-lang.org/stable/core/primitive.slice.html#method.first_chunk_mut) - [`<[_]>::last_chunk_mut`] (https://doc.rust-lang.org/stable/core/primitive.slice.html#method.last_chunk_mut) - [`<[_]>::split_at_mut`] (https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut) - [`<[_]>::split_at_mut_checked`] (https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut_checked) - [`<[_]>::split_at_mut_unchecked`] (https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut_unchecked) - [`<[_]>::split_first_mut`] (https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_first_mut) - [`<[_]>::split_last_mut`] (https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_last_mut) - [`<[_]>::split_first_chunk_mut`] (https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_first_chunk_mut) - [`<[_]>::split_last_chunk_mut`] (https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_last_chunk_mut) - [`str::as_bytes_mut`] (https://doc.rust-lang.org/stable/core/primitive.str.html#method.as_bytes_mut) - [`str::as_mut_ptr`] (https://doc.rust-lang.org/stable/core/primitive.str.html#method.as_mut_ptr) - [`str::from_utf8_unchecked_mut`] (https://doc.rust-lang.org/stable/core/str/fn.from_utf8_unchecked_mut.html) Cargo ----- - [Introduced a new `CARGO_MANIFEST_PATH` environment variable, similar to `CARGO_MANIFEST_DIR` but pointing directly to the manifest file.] (rust-lang/cargo#14404) - [Added `package.autolib` to the manifest, allowing `[lib]` auto-discovery to be disabled.] (rust-lang/cargo#14591) - [Declare support level for each crate in Cargo's Charter / crate docs.] (rust-lang/cargo#14600) - [Declare new Intentional Artifacts as 'small' changes.] (rust-lang/cargo#14599) Rustdoc ------- - [The sidebar / hamburger menu table of contents now includes the `# headers` from the main item's doc comment] (rust-lang/rust#120736). This is similar to a third-party feature provided by the rustdoc-search-enhancements browser extension. Compatibility Notes ------------------- - [Warn against function pointers using unsupported ABI strings.] (rust-lang/rust#128784) - [Check well-formedness of the source type's signature in fn pointer casts.] (rust-lang/rust#129021) This partly closes a soundness hole that comes when casting a function item to function pointer - [Use equality instead of subtyping when resolving type dependent paths.] (rust-lang/rust#129073) - Linking on macOS now correctly includes Rust's default deployment target. Due to a linker bug, you might have to pass `MACOSX_DEPLOYMENT_TARGET` or fix your `#[link]` attributes to point to the correct frameworks. See <rust-lang/rust#129369>. - [Rust will now correctly raise an error for `repr(Rust)` written on non-`struct`/`enum`/`union` items, since it previous did not have any effect.] (rust-lang/rust#129422) - The future incompatibility lint `deprecated_cfg_attr_crate_type_name` [has been made into a hard error] (rust-lang/rust#129670). It was used to deny usage of `#![crate_type]` and `#![crate_name]` attributes in `#![cfg_attr]`, which required a hack in the compiler to be able to change the used crate type and crate name after cfg expansion. Users can use `--crate-type` instead of `#![cfg_attr(..., crate_type = "...")]` and `--crate-name` instead of `#![cfg_attr(..., crate_name = "...")]` when running `rustc`/`cargo rustc` on the command line. Use of those two attributes outside of `#![cfg_attr]` continue to be fully supported. - Until now, paths into the sysroot were always prefixed with `/rustc/$hash` in diagnostics, codegen, backtrace, e.g. ``` thread 'main' panicked at 'hello world', map-panic.rs:2:50 stack backtrace: 0: std::panicking::begin_panic at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:616:12 1: map_panic::main::{{closure}} at ./map-panic.rs:2:50 2: core::option::Option<T>::map at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/option.rs:929:29 3: map_panic::main at ./map-panic.rs:2:30 4: core::ops::function::FnOnce::call_once at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/ops/function.rs:248:5 note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. ``` [RFC 3127 said] (https://rust-lang.github.io/rfcs/3127-trim-paths.html#changing-handling-of-sysroot-path-in-rustc) > We want to change this behaviour such that, when `rust-src` source files can be discovered, the virtual path is discarded and therefore the local path will be embedded, unless there is a `--remap-path-prefix` that causes this local path to be remapped in the usual way. [#129687](rust-lang/rust#129687) implements this behaviour, when `rust-src` is present at compile time, `rustc` replaces `/rustc/$hash` with a real path into the local `rust-src` component with best effort. To sanitize this, users must explicitly supply `--remap-path-prefix=<path to rust-src>=foo` or not have the `rust-src` component installed. - The allow-by-default `missing_docs` lint used to disable itself when invoked through `rustc --test`/`cargo test`, resulting in `#[expect(missing_docs)]` emitting false positives due to the expectation being wrongly unfulfilled. This behavior [has now been removed] (rust-lang/rust#130025), which allows `#[expect(missing_docs)]` to be fulfilled in all scenarios, but will also report new `missing_docs` diagnostics for publicly reachable `#[cfg(test)]` items, [integration test] (https://doc.rust-lang.org/cargo/reference/cargo-targets.html#integration-tests) crate-level documentation, and publicly reachable items in integration tests. - [The `armv8r-none-eabihf` target now uses the Armv8-R required set of floating-point features.] (rust-lang/rust#130295) - [Fix a soundness bug where rustc wouldn't detect unconstrained higher-ranked lifetimes in a `dyn Trait`'s associated types that occur due to supertraits.] (rust-lang/rust#130367) - [Update the minimum external LLVM version to 18.] (rust-lang/rust#130487) - [Remove `aarch64-fuchsia` and `x86_64-fuchsia` target aliases in favor of `aarch64-unknown-fuchsia` and `x86_64-unknown-fuchsia` respectively.] (rust-lang/rust#130657) - [The ABI-level exception class of a Rust panic is now encoded with native-endian bytes, so it is legible in hex dumps.] (rust-lang/rust#130897) - [Visual Studio 2013 is no longer supported for MSVC targets.] (rust-lang/rust#131070) - [The sysroot no longer contains the `std` dynamic library in its top-level `lib/` dir.] (rust-lang/rust#131188)
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [rust](https://github.com/rust-lang/rust) | minor | `1.82.0` -> `1.83.0` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>rust-lang/rust (rust)</summary> ### [`v1.83.0`](https://github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1830-2024-11-28) [Compare Source](rust-lang/rust@1.82.0...1.83.0) \========================== <a id="1.83.0-Language"></a> ## Language - [Stabilize `&mut`, `*mut`, `&Cell`, and `*const Cell` in const.](rust-lang/rust#129195) - [Allow creating references to statics in `const` initializers.](rust-lang/rust#129759) - [Implement raw lifetimes and labels (`'r#ident`).](rust-lang/rust#126452) - [Define behavior when atomic and non-atomic reads race.](rust-lang/rust#128778) - [Non-exhaustive structs may now be empty.](rust-lang/rust#128934) - [Disallow implicit coercions from places of type `!`](rust-lang/rust#129392) - [`const extern` functions can now be defined for other calling conventions.](rust-lang/rust#129753) - [Stabilize `expr_2021` macro fragment specifier in all editions.](rust-lang/rust#129972) - [The `non_local_definitions` lint now fires on less code and warns by default.](rust-lang/rust#127117) <a id="1.83.0-Compiler"></a> ## Compiler - [Deprecate unsound `-Csoft-float` flag.](rust-lang/rust#129897) - Add many new tier 3 targets: - [`aarch64_unknown_nto_qnx700`](rust-lang/rust#127897) - [`arm64e-apple-tvos`](rust-lang/rust#130614) - [`armv7-rtems-eabihf`](rust-lang/rust#127021) - [`loongarch64-unknown-linux-ohos`](rust-lang/rust#130750) - [`riscv32-wrs-vxworks` and `riscv64-wrs-vxworks`](rust-lang/rust#130549) - [`riscv32{e|em|emc}-unknown-none-elf`](rust-lang/rust#130555) - [`x86_64-unknown-hurd-gnu`](rust-lang/rust#128345) - [`x86_64-unknown-trusty`](rust-lang/rust#130453) Refer to Rust's \[platform support page]\[platform-support-doc] for more information on Rust's tiered platform support. <a id="1.83.0-Libraries"></a> ## Libraries - [Implement `PartialEq` for `ExitCode`.](rust-lang/rust#127633) - [Document that `catch_unwind` can deal with foreign exceptions without UB, although the exact behavior is unspecified.](rust-lang/rust#128321) - [Implement `Default` for `HashMap`/`HashSet` iterators that don't already have it.](rust-lang/rust#128711) - [Bump Unicode to version 16.0.0.](rust-lang/rust#130183) - [Change documentation of `ptr::add`/`sub` to not claim equivalence with `offset`.](rust-lang/rust#130229) <a id="1.83.0-Stabilized-APIs"></a> ## Stabilized APIs - [`BufRead::skip_until`](https://doc.rust-lang.org/stable/std/io/trait.BufRead.html#method.skip_until) - [`ControlFlow::break_value`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.break_value) - [`ControlFlow::continue_value`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.continue_value) - [`ControlFlow::map_break`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.map_break) - [`ControlFlow::map_continue`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.map_continue) - [`DebugList::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugList.html#method.finish_non_exhaustive) - [`DebugMap::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugMap.html#method.finish_non_exhaustive) - [`DebugSet::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugSet.html#method.finish_non_exhaustive) - [`DebugTuple::finish_non_exhaustive`](https://doc.rust-lang.org/stable/core/fmt/struct.DebugTuple.html#method.finish_non_exhaustive) - [`ErrorKind::ArgumentListTooLong`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ArgumentListTooLong) - [`ErrorKind::Deadlock`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.Deadlock) - [`ErrorKind::DirectoryNotEmpty`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.DirectoryNotEmpty) - [`ErrorKind::ExecutableFileBusy`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ExecutableFileBusy) - [`ErrorKind::FileTooLarge`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.FileTooLarge) - [`ErrorKind::HostUnreachable`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.HostUnreachable) - [`ErrorKind::IsADirectory`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.IsADirectory) - [`ErrorKind::NetworkDown`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NetworkDown) - [`ErrorKind::NetworkUnreachable`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NetworkUnreachable) - [`ErrorKind::NotADirectory`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NotADirectory) - [`ErrorKind::NotSeekable`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.NotSeekable) - [`ErrorKind::ReadOnlyFilesystem`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ReadOnlyFilesystem) - [`ErrorKind::ResourceBusy`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.ResourceBusy) - [`ErrorKind::StaleNetworkFileHandle`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.StaleNetworkFileHandle) - [`ErrorKind::StorageFull`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.StorageFull) - [`ErrorKind::TooManyLinks`](https://doc.rust-lang.org/stable/std/io/enum.ErrorKind.html#variant.TooManyLinks) - [`Option::get_or_insert_default`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.get_or_insert_default) - [`Waker::data`](https://doc.rust-lang.org/stable/core/task/struct.Waker.html#method.data) - [`Waker::new`](https://doc.rust-lang.org/stable/core/task/struct.Waker.html#method.new) - [`Waker::vtable`](https://doc.rust-lang.org/stable/core/task/struct.Waker.html#method.vtable) - [`char::MIN`](https://doc.rust-lang.org/stable/core/primitive.char.html#associatedconstant.MIN) - [`hash_map::Entry::insert_entry`](https://doc.rust-lang.org/stable/std/collections/hash_map/enum.Entry.html#method.insert_entry) - [`hash_map::VacantEntry::insert_entry`](https://doc.rust-lang.org/stable/std/collections/hash_map/struct.VacantEntry.html#method.insert_entry) These APIs are now stable in const contexts: - [`Cell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.Cell.html#method.into_inner) - [`Duration::as_secs_f32`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.as_secs_f32) - [`Duration::as_secs_f64`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.as_secs_f64) - [`Duration::div_duration_f32`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.div_duration_f32) - [`Duration::div_duration_f64`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.div_duration_f64) - [`MaybeUninit::as_mut_ptr`](https://doc.rust-lang.org/stable/core/mem/union.MaybeUninit.html#method.as_mut_ptr) - [`NonNull::as_mut`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.as_mut) - [`NonNull::copy_from`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_from) - [`NonNull::copy_from_nonoverlapping`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_from_nonoverlapping) - [`NonNull::copy_to`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_to) - [`NonNull::copy_to_nonoverlapping`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.copy_to_nonoverlapping) - [`NonNull::slice_from_raw_parts`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.slice_from_raw_parts) - [`NonNull::write`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.write) - [`NonNull::write_bytes`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.write_bytes) - [`NonNull::write_unaligned`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.write_unaligned) - [`OnceCell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.OnceCell.html#method.into_inner) - [`Option::as_mut`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.as_mut) - [`Option::expect`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.expect) - [`Option::replace`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.replace) - [`Option::take`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.take) - [`Option::unwrap`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.unwrap) - [`Option::unwrap_unchecked`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.unwrap_unchecked) - [`Option::<&_>::copied`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.copied) - [`Option::<&mut _>::copied`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.copied-1) - [`Option::<Option<_>>::flatten`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.flatten) - [`Option::<Result<_, _>>::transpose`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.transpose) - [`RefCell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.RefCell.html#method.into_inner) - [`Result::as_mut`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.as_mut) - [`Result::<&_, _>::copied`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.copied) - [`Result::<&mut _, _>::copied`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.copied-1) - [`Result::<Option<_>, _>::transpose`](https://doc.rust-lang.org/stable/core/result/enum.Result.html#method.transpose) - [`UnsafeCell::get_mut`](https://doc.rust-lang.org/stable/core/cell/struct.UnsafeCell.html#method.get_mut) - [`UnsafeCell::into_inner`](https://doc.rust-lang.org/stable/core/cell/struct.UnsafeCell.html#method.into_inner) - [`array::from_mut`](https://doc.rust-lang.org/stable/core/array/fn.from_mut.html) - [`char::encode_utf8`](https://doc.rust-lang.org/stable/core/primitive.char.html#method.encode_utf8) - [`{float}::classify`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.classify) - [`{float}::is_finite`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_finite) - [`{float}::is_infinite`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_infinite) - [`{float}::is_nan`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_nan) - [`{float}::is_normal`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_normal) - [`{float}::is_sign_negative`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_sign_negative) - [`{float}::is_sign_positive`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_sign_positive) - [`{float}::is_subnormal`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.is_subnormal) - [`{float}::from_bits`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_bits) - [`{float}::from_be_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_be_bytes) - [`{float}::from_le_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_le_bytes) - [`{float}::from_ne_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.from_ne_bytes) - [`{float}::to_bits`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_bits) - [`{float}::to_be_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_be_bytes) - [`{float}::to_le_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_le_bytes) - [`{float}::to_ne_bytes`](https://doc.rust-lang.org/stable/core/primitive.f64.html#method.to_ne_bytes) - [`mem::replace`](https://doc.rust-lang.org/stable/core/mem/fn.replace.html) - [`ptr::replace`](https://doc.rust-lang.org/stable/core/ptr/fn.replace.html) - [`ptr::slice_from_raw_parts_mut`](https://doc.rust-lang.org/stable/core/ptr/fn.slice_from_raw_parts_mut.html) - [`ptr::write`](https://doc.rust-lang.org/stable/core/ptr/fn.write.html) - [`ptr::write_unaligned`](https://doc.rust-lang.org/stable/core/ptr/fn.write_unaligned.html) - [`<*const _>::copy_to`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to) - [`<*const _>::copy_to_nonoverlapping`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to_nonoverlapping) - [`<*mut _>::copy_from`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_from) - [`<*mut _>::copy_from_nonoverlapping`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_from_nonoverlapping) - [`<*mut _>::copy_to`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to-1) - [`<*mut _>::copy_to_nonoverlapping`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.copy_to_nonoverlapping-1) - [`<*mut _>::write`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.write) - [`<*mut _>::write_bytes`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.write_bytes) - [`<*mut _>::write_unaligned`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.write_unaligned) - [`slice::from_mut`](https://doc.rust-lang.org/stable/core/slice/fn.from_mut.html) - [`slice::from_raw_parts_mut`](https://doc.rust-lang.org/stable/core/slice/fn.from_raw_parts_mut.html) - [`<[_]>::first_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.first_mut) - [`<[_]>::last_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.last_mut) - [`<[_]>::first_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.first_chunk_mut) - [`<[_]>::last_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.last_chunk_mut) - [`<[_]>::split_at_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut) - [`<[_]>::split_at_mut_checked`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut_checked) - [`<[_]>::split_at_mut_unchecked`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_at_mut_unchecked) - [`<[_]>::split_first_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_first_mut) - [`<[_]>::split_last_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_last_mut) - [`<[_]>::split_first_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_first_chunk_mut) - [`<[_]>::split_last_chunk_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.split_last_chunk_mut) - [`str::as_bytes_mut`](https://doc.rust-lang.org/stable/core/primitive.str.html#method.as_bytes_mut) - [`str::as_mut_ptr`](https://doc.rust-lang.org/stable/core/primitive.str.html#method.as_mut_ptr) - [`str::from_utf8_unchecked_mut`](https://doc.rust-lang.org/stable/core/str/fn.from_utf8\_unchecked_mut.html) <a id="1.83.0-Cargo"></a> ## Cargo - [Introduced a new `CARGO_MANIFEST_PATH` environment variable, similar to `CARGO_MANIFEST_DIR` but pointing directly to the manifest file.](rust-lang/cargo#14404) - [Added `package.autolib` to the manifest, allowing `[lib]` auto-discovery to be disabled.](rust-lang/cargo#14591) - [Declare support level for each crate in Cargo's Charter / crate docs.](rust-lang/cargo#14600) - [Declare new Intentional Artifacts as 'small' changes.](rust-lang/cargo#14599) <a id="1.83-Rustdoc"></a> ## Rustdoc - [The sidebar / hamburger menu table of contents now includes the `# headers` from the main item's doc comment](rust-lang/rust#120736). This is similar to a third-party feature provided by the rustdoc-search-enhancements browser extension. <a id="1.83.0-Compatibility-Notes"></a> ## Compatibility Notes - [Warn against function pointers using unsupported ABI strings.](rust-lang/rust#128784) - [Check well-formedness of the source type's signature in fn pointer casts.](rust-lang/rust#129021) This partly closes a soundness hole that comes when casting a function item to function pointer - [Use equality instead of subtyping when resolving type dependent paths.](rust-lang/rust#129073) - Linking on macOS now correctly includes Rust's default deployment target. Due to a linker bug, you might have to pass `MACOSX_DEPLOYMENT_TARGET` or fix your `#[link]` attributes to point to the correct frameworks. See [#​129369](rust-lang/rust#129369). - [Rust will now correctly raise an error for `repr(Rust)` written on non-`struct`/`enum`/`union` items, since it previous did not have any effect.](rust-lang/rust#129422) - The future incompatibility lint `deprecated_cfg_attr_crate_type_name` [has been made into a hard error](rust-lang/rust#129670). It was used to deny usage of `#![crate_type]` and `#![crate_name]` attributes in `#![cfg_attr]`, which required a hack in the compiler to be able to change the used crate type and crate name after cfg expansion. Users can use `--crate-type` instead of `#![cfg_attr(..., crate_type = "...")]` and `--crate-name` instead of `#![cfg_attr(..., crate_name = "...")]` when running `rustc`/`cargo rustc` on the command line. Use of those two attributes outside of `#![cfg_attr]` continue to be fully supported. - Until now, paths into the sysroot were always prefixed with `/rustc/$hash` in diagnostics, codegen, backtrace, e.g. thread 'main' panicked at 'hello world', map-panic.rs:2:50 stack backtrace: 0: std::panicking::begin_panic at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:616:12 1: map_panic::main::{{closure}} at ./map-panic.rs:2:50 2: core::option::Option<T>::map at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/option.rs:929:29 3: map_panic::main at ./map-panic.rs:2:30 4: core::ops::function::FnOnce::call_once at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/ops/function.rs:248:5 note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. [RFC 3127 said](https://rust-lang.github.io/rfcs/3127-trim-paths.html#changing-handling-of-sysroot-path-in-rustc) > We want to change this behaviour such that, when `rust-src` source files can be discovered, the virtual path is discarded and therefore the local path will be embedded, unless there is a `--remap-path-prefix` that causes this local path to be remapped in the usual way. [#​129687](rust-lang/rust#129687) implements this behaviour, when `rust-src` is present at compile time, `rustc` replaces `/rustc/$hash` with a real path into the local `rust-src` component with best effort. To sanitize this, users must explicitly supply `--remap-path-prefix=<path to rust-src>=foo` or not have the `rust-src` component installed. - The allow-by-default `missing_docs` lint used to disable itself when invoked through `rustc --test`/`cargo test`, resulting in `#[expect(missing_docs)]` emitting false positives due to the expectation being wrongly unfulfilled. This behavior [has now been removed](rust-lang/rust#130025), which allows `#[expect(missing_docs)]` to be fulfilled in all scenarios, but will also report new `missing_docs` diagnostics for publicly reachable `#[cfg(test)]` items, [integration test](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#integration-tests) crate-level documentation, and publicly reachable items in integration tests. - [The `armv8r-none-eabihf` target now uses the Armv8-R required set of floating-point features.](rust-lang/rust#130295) - [Fix a soundness bug where rustc wouldn't detect unconstrained higher-ranked lifetimes in a `dyn Trait`'s associated types that occur due to supertraits.](rust-lang/rust#130367) - [Update the minimum external LLVM version to 18.](rust-lang/rust#130487) - [Remove `aarch64-fuchsia` and `x86_64-fuchsia` target aliases in favor of `aarch64-unknown-fuchsia` and `x86_64-unknown-fuchsia` respectively.](rust-lang/rust#130657) - [The ABI-level exception class of a Rust panic is now encoded with native-endian bytes, so it is legible in hex dumps.](rust-lang/rust#130897) - [Visual Studio 2013 is no longer supported for MSVC targets.](rust-lang/rust#131070) - [The sysroot no longer contains the `std` dynamic library in its top-level `lib/` dir.](rust-lang/rust#131188) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
This makes it appear correctly in hexdumps on both LE and BE platforms.
As discussed extensively in https://github.com/rust-lang/rust/pull/130381/files#r1760034980