Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
308 commits
Select commit Hold shift + click to select a range
54e0c76
Replace `stdarch` version placeholders with 1.94
cuviper Feb 5, 2026
e799530
Update wasi-sdk used in CI/releases
alexcrichton Feb 2, 2026
627a34c
Rollup merge of #152174 - folkertdev:stdarch-sync-2026-02-05, r=folke…
jieyouxu Feb 6, 2026
952ceca
feat: Add `NonZero::<T>::from_str_radix`
sorairolake Feb 26, 2025
38833fd
Auto merge of #152183 - alexcrichton:update-wasi-sdk, r=jieyouxu
bors Feb 6, 2026
8087d80
Auto merge of #152230 - JonathanBrouwer:rollup-de59XEq, r=JonathanBro…
bors Feb 6, 2026
ee3fb5a
Stabilize const ControlFlow predicates
nxsaken Feb 6, 2026
1d11de9
simplify some other generics
cyrgani Feb 5, 2026
9185b32
make `with_api!` take explicit type paths
cyrgani Feb 5, 2026
e2fe55a
use `mem::conjure_zst` directly
cyrgani Feb 5, 2026
a653df4
deduplicate `Tag` enum
cyrgani Feb 6, 2026
db6c96f
ci: Temporarily disable native PPC and s390x jobs
tgross35 Feb 6, 2026
9918849
Allow unstable_name_collisions
tgross35 Feb 6, 2026
953c8ee
stabilize new inclusive range type and iter
pitaj Dec 30, 2025
49aac6f
feat: Implement `int_from_ascii` for `NonZero<T>`
sorairolake Feb 7, 2026
6217f09
libm-test: Remove exception for fmaximum_num tests
quaternic Feb 2, 2026
b430758
libm: Fix acoshf and acosh for negative inputs
quaternic Feb 2, 2026
9e2b93e
ci: Enable verbose output for josh-sync
tgross35 Feb 7, 2026
849df38
ci: Update all docker images to the latest version
tgross35 Feb 7, 2026
f4cd280
meta: Upgrade all dependencies to the latest compatible versions
tgross35 Feb 7, 2026
041fb24
symcheck: Enable wasm by default
tgross35 Feb 7, 2026
d3956d8
symcheck: Add tests for the symbol checker
tgross35 Feb 6, 2026
42a6ae8
Rollup merge of #148590 - GrigorenkoPV:atomic_try_update, r=jhpratt
JonathanBrouwer Feb 7, 2026
b6b84fc
Rollup merge of #150522 - pitaj:stabilize-new-rangeinclusive, r=tgross35
JonathanBrouwer Feb 7, 2026
dcde6d5
Rollup merge of #152267 - sorairolake:feature/nonzero-from-ascii, r=d…
JonathanBrouwer Feb 7, 2026
6d97fb7
Rollup merge of #151576 - tgross35:stabilize-cold-path, r=jhpratt
JonathanBrouwer Feb 7, 2026
4195e39
symcheck: Check for core symbols with the new mangling
tgross35 Feb 7, 2026
0c9bd39
meta: Switch to workspace dependencies
tgross35 Feb 7, 2026
1455fc0
meta: Sort Cargo.toml `[features]` table after `[dependencies]`
tgross35 Feb 7, 2026
01658f5
`const { 'Σ'.len_utf8() }`
GrigorenkoPV Jan 27, 2026
9499ffe
Bump the libm MSRV to 1.67
tgross35 Feb 7, 2026
863fd73
cleanup: Perform some simplifications possible with the MSRV bump
tgross35 Feb 7, 2026
8e2a985
Rollup merge of #152056 - hzeller:feature-20260203-clarify-rwlock-ree…
JonathanBrouwer Feb 7, 2026
338bc33
Rollup merge of #152292 - GrigorenkoPV:sigma, r=Noratrieb
JonathanBrouwer Feb 7, 2026
f198f9f
Add some conversion trait impls
Jules-Bertholet Feb 3, 2026
2be7cb2
std: Don't panic when removing a nonexistent UEFI var
nicholasbishop Feb 8, 2026
8d4da5d
Stop having two different alignment constants
Mark-Simulacrum Feb 8, 2026
67c4f0c
Rollup merge of #126100 - scottmcm:decaveat-map, r=Mark-Simulacrum
JonathanBrouwer Feb 8, 2026
eaf8484
Rollup merge of #152275 - scottmcm:range-range-inclusive, r=Mark-Simu…
JonathanBrouwer Feb 8, 2026
90588e2
remove from impl block in std
jdonszelmann Feb 7, 2026
cdcfafa
x86: use `intrinsics::simd` for masked truncated saturating stores
folkertdev Jan 31, 2026
21267b5
Rollup merge of #152071 - hanna-kruppe:stdio-fd-consts, r=ChrisDenton
Zalathar Feb 9, 2026
dd9dc1b
Rollup merge of #152291 - jdonszelmann:port-rustc-insignificant-dtor,…
Zalathar Feb 9, 2026
9d8ce22
Do not require `'static` for obtaining reflection information.
oli-obk Feb 7, 2026
035d833
Rollup merge of #152357 - nicholasbishop:push-uolpvnvrlznw, r=joboet
jhpratt Feb 9, 2026
e3e7223
std: introduce path normalize methods at top of std::path
xizheyin Feb 9, 2026
7ac35b9
libm: Fix tests for lgamma
quaternic Feb 9, 2026
06221cd
Rollup merge of #151613 - cuviper:array-windows-parity, r=Amanieu
matthiaskrgr Feb 9, 2026
f53e923
Rollup merge of #152166 - cyrgani:questionable-pm-cleanups, r=petroch…
matthiaskrgr Feb 9, 2026
b2092a8
Rollup merge of #142957 - xizheyin:142931, r=tgross35
matthiaskrgr Feb 9, 2026
9e745f2
Rollup merge of #145504 - Jules-Bertholet:more_conversion_trait_impls…
matthiaskrgr Feb 9, 2026
305df96
Remove accidental const stability marker on a struct
oli-obk Dec 4, 2025
f4c250e
Start using pattern types in libcore
oli-obk Jan 24, 2025
a46a05b
Support structs in type info reflection
SpriteOvO Jan 14, 2026
77a0abe
Add generics info for structs in type info
SpriteOvO Jan 19, 2026
5bdacf4
Support enums in type info reflection
SpriteOvO Jan 20, 2026
b716dcc
Support unions in type info reflection
SpriteOvO Feb 5, 2026
e4b4b5c
Erase type lifetime before writing type ID
SpriteOvO Feb 10, 2026
f4ba1c2
unwind/wasm: fix compile error by wrapping wasm_throw in unsafe block
lizan Feb 10, 2026
087c3fd
Merge pull request #2004 from folkertdev/arm-ld1-read
sayantn Feb 10, 2026
ef9d516
Optimize `SliceIndex::get` impl for `RangeInclusive`
Kmeakin Jul 25, 2025
0c3c8b1
Optimize `SliceIndex<str>` for `RangeInclusive`
Kmeakin Jul 25, 2025
127ae40
Make panic message less confusing
Kmeakin Feb 2, 2026
2015eb2
Give `into_range` more consistent name
Kmeakin Feb 2, 2026
24a2e5c
add must_use for FileTimes
chenyukang Feb 6, 2026
1cff7e3
Auto merge of #152420 - tgross35:update-builtins, r=tgross35
bors Feb 11, 2026
41c9a46
Rollup merge of #152431 - oli-obk:limited_stability_attr, r=jdonszelmann
matthiaskrgr Feb 11, 2026
ff0bf4e
Stabilize assert_matches
Voultapher Jan 23, 2026
40ff649
reduce the amount of panics in `{TokenStream, Literal}::from_str` calls
cyrgani Jan 26, 2026
6bfd3d1
Merge pull request #2020 from Snehal-Reddy/main
sayantn Feb 11, 2026
8d50f7b
add BinaryHeap::from_raw_vec
Dan54 Feb 11, 2026
c08d189
Rollup merge of #151142 - SpriteOvO:type-info-adt, r=oli-obk
Urgau Feb 11, 2026
fdd1e12
Improve write! and writeln! error when called without destination
arferreira Feb 12, 2026
1e44777
Auto merge of #152506 - Urgau:rollup-MlGAszj, r=Urgau
bors Feb 12, 2026
98ab324
Rollup merge of #152502 - Dan54:heap-from-raw-vec, r=scottmcm
jhpratt Feb 12, 2026
0c461cd
Auto merge of #152517 - jhpratt:rollup-fGRcId6, r=jhpratt
bors Feb 12, 2026
d33992f
UnsafePinned: implement opsem effects of UnsafeUnpin
RalfJung Jan 19, 2026
5477676
try to work around rustdoc bug, and other rustdoc adjustments
RalfJung Jan 21, 2026
8564252
use `?` instead of `*` for return types
cyrgani Feb 12, 2026
d9df873
remove `DispatcherTrait`
cyrgani Feb 12, 2026
0efd440
Auto merge of #148537 - oli-obk:push-yxuttqrqqyvu, r=dianqk
bors Feb 12, 2026
3f5881a
arch: Add Hexagon HVX instructions
androm3da Jan 22, 2026
1c6deca
Switched to 64b and 128b crate definitions
androm3da Jan 31, 2026
837e6be
examples: Add assertions to gaussian example
androm3da Feb 3, 2026
d589b2b
examples: Fix rustfmt formatting in gaussian.rs
androm3da Feb 12, 2026
219fb88
stdarch-gen-hexagon: Remove unused module_name method
androm3da Feb 12, 2026
9ef241c
stdarch-gen-hexagon: Fix clippy warnings
androm3da Feb 12, 2026
301e0aa
Update Cargo.lock
androm3da Feb 12, 2026
5e62bfb
examples: Simplify gaussian.rs with cfg gate
androm3da Feb 12, 2026
a7e98a5
Remove unused features in library
mu001999 Feb 12, 2026
1a297d4
Remove or allow unused features in library doc and tests
mu001999 Feb 12, 2026
70601b7
Rollup merge of #152232 - chenyukang:add-must-use-for-filetimes, r=Ma…
Zalathar Feb 13, 2026
55c6929
replace `MessagePipe` trait with its impl
cyrgani Feb 12, 2026
0eedb18
inline `SameThread` and `CrossThread`
cyrgani Feb 13, 2026
0597f80
Rollup merge of #152469 - mu001999-contrib:cleanup/unused-features, r…
JonathanBrouwer Feb 13, 2026
dc93ccd
Remove named lifetimes in some `PartialOrd` & `PartialEq` `impl`s
GrigorenkoPV Jul 6, 2025
f031be1
Test(lib/win/net): Skip UDS tests when under Win7
PaulDance Feb 12, 2026
e354885
Pass alignments through the shim as `Alignment` (not `usize`)
scottmcm Feb 14, 2026
4e4252e
Merge pull request #2017 from heiher/loong64-sync
Amanieu Feb 14, 2026
574ae32
Rollup merge of #152618 - folkertdev:stdarch-sync-2026-02-14, r=folke…
JonathanBrouwer Feb 14, 2026
be6a0e5
Rollup merge of #152531 - cyrgani:pm-yet-another-cleanup, r=petrochenkov
JonathanBrouwer Feb 14, 2026
bb00462
Simplify internals of `{Rc,Arc}::default`
alexcrichton Feb 13, 2026
803c7e7
use `intrinsics::simd` for 'shift right and insert'
folkertdev Feb 14, 2026
2188154
implement `carryless_mul`
folkertdev Feb 4, 2026
d9e52ed
Rollup merge of #145024 - Kmeakin:km/optimize-slice-index/v3, r=Mark-…
JonathanBrouwer Feb 14, 2026
852e6dc
Rollup merge of #151365 - RalfJung:unsafe-unpin-opsem, r=BoxyUwU
JonathanBrouwer Feb 14, 2026
2799754
Rollup merge of #152381 - oli-obk:non_static_reflection, r=Mark-Simul…
JonathanBrouwer Feb 14, 2026
173b804
Rollup merge of #143575 - GrigorenkoPV:unused_lifetimes, r=Mark-Simul…
JonathanBrouwer Feb 14, 2026
50256d2
make `Va::arg` and `VaList::drop` `const fn`s
folkertdev Jan 2, 2026
9491827
c-variadic functions in `rustc_const_eval`
folkertdev Jan 2, 2026
66ba16b
Rollup merge of #152132 - folkertdev:carryless-mul, r=Mark-Simulacrum
jhpratt Feb 15, 2026
c649b3d
Rollup merge of #152508 - arferreira:improve-write-macro-diagnostic, …
jhpratt Feb 15, 2026
1002961
Rollup merge of #152534 - PaulDance:patches/remove-win7-uds, r=Mark-S…
jhpratt Feb 15, 2026
41b59a1
Rollup merge of #152188 - cuviper:placeholder-stdarch, r=Mark-Simulacrum
jhpratt Feb 15, 2026
75aae43
Rollup merge of #152472 - lizan:wasm, r=Mark-Simulacrum
jhpratt Feb 15, 2026
9ad4de8
Merge pull request #2024 from folkertdev/arm-shift-right-and-insert
Amanieu Feb 15, 2026
6b9ff3b
Remove timing assertion from `oneshot::send_before_recv_timeout`
JonathanBrouwer Feb 15, 2026
b44bd22
examples: Use HvxVectorPair for precise Gaussian blur arithmetic
androm3da Feb 15, 2026
1c75faa
examples: Make gaussian build on all targets
androm3da Feb 15, 2026
f8c402d
Auto merge of #152605 - scottmcm:box-drop-alignment, r=Mark-Simulacrum
bors Feb 15, 2026
663d567
std: use libc version of `_NSGetArgc`/`_NSGetArgv`
joboet Feb 15, 2026
0569316
stdarch-gen-hexagon: Use checked-in header file instead of downloading
androm3da Feb 15, 2026
782fd50
unify and deduplicate floats
xonx4l Oct 28, 2025
6edf71d
core_arch: Add tracking issue to hexagon module declaration
androm3da Feb 15, 2026
77fe504
stdarch-gen-hexagon: Fix formatting
androm3da Feb 15, 2026
453be0b
feature-gate c-variadic definitions and calls in const contexts
folkertdev Jan 28, 2026
65877b0
Merge pull request #1999 from androm3da/main
folkertdev Feb 15, 2026
4ea98b9
Prepare for merging from rust-lang/rust
invalid-email-address Feb 16, 2026
092b4a2
Merge ref '139651428df8' from rust-lang/rust
invalid-email-address Feb 16, 2026
dd49c1d
replace box_new in Box::new with write_via_move
RalfJung Oct 25, 2025
02684cc
Rollup merge of #148206 - xonx4l:deduplicate-float-tests, r=tgross35
jhpratt Feb 16, 2026
94f62fe
Rollup merge of #150601 - folkertdev:c-variadic-const-eval, r=RalfJung
jhpratt Feb 16, 2026
5881680
Rollup merge of #152648 - JonathanBrouwer:debug_spurious, r=jhpratt
jhpratt Feb 16, 2026
c389259
Test(lib/win/proc): Skip `raw_attributes` doctest under Win7
PaulDance Oct 15, 2025
33e6a4a
if let guard stabilize
Kivooeo May 20, 2025
3a76b6d
Improve `VaList` stdlib docs
folkertdev Feb 13, 2026
e7eff92
add write_box_via_move intrinsic and use it for vec!
RalfJung Oct 26, 2025
b72c79a
adjust clippy to fix some of the issues
RalfJung Nov 9, 2025
45e2357
Auto merge of #148190 - RalfJung:box_new, r=RalfJung
bors Feb 16, 2026
210889e
core: Implement feature `float_exact_integer_constants`
okaneco Feb 12, 2026
df00e58
use `intrinsics::simd` for `vmull_*`
folkertdev Feb 14, 2026
c8a9306
Rollup merge of #152512 - okaneco:exact_integer, r=tgross35
Zalathar Feb 17, 2026
7b1261b
remove `#![allow(stable_features)]` from most tests
cyrgani Feb 17, 2026
a80bb60
use `read_unaligned` for f64 `vld` and `vldq`
folkertdev Feb 17, 2026
25255e9
Rollup merge of #152675 - folkertdev:va-list-docs, r=tgross35
jdonszelmann Feb 17, 2026
c78e853
test interleaving load/store roundtrip
folkertdev Feb 17, 2026
17a8c34
Just pass `Layout` directly to `box_new_uninit`
scottmcm Feb 17, 2026
30d14e3
What if we discourage mir-inlining of `box_new_uninit`?
scottmcm Feb 17, 2026
4046ee8
fix interleaving read/write not roundtripping on aarch64_be
folkertdev Feb 17, 2026
4dbe973
fix typo in `carryless_mul` macro invocation
folkertdev Feb 17, 2026
13a7c10
make `rustc_allow_const_fn_unstable` an actual `rustc_attrs` attribute
cyrgani Feb 17, 2026
9621ac6
carryless_mul: mention the base
RalfJung Feb 17, 2026
f5aa90d
Merge pull request #2023 from folkertdev/neon-vmull
sayantn Feb 17, 2026
03a04ba
std::r#try! - avoid link to nightly docs
DanielEScherzer Feb 17, 2026
997dcd6
Rollup merge of #152179 - nickkuk:overflow-direction-note, r=jhpratt
Zalathar Feb 18, 2026
b70d7a5
Rollup merge of #152672 - joboet:apple_args_libc, r=jhpratt
Zalathar Feb 18, 2026
0e0e33e
Rollup merge of #152749 - cyrgani:rustc-allow-const, r=jdonszelmann
Zalathar Feb 18, 2026
6b5b9a6
Rollup merge of #152770 - RalfJung:carryless-mul-base, r=scottmcm
Zalathar Feb 18, 2026
b628838
Merge pull request #2029 from folkertdev/interleaving-load-store-roun…
folkertdev Feb 18, 2026
9672fca
lock stdout when printing a intrinsic test failure
folkertdev Feb 14, 2026
4aba143
use `intrinsics::simd` for aarch64 deinterleaving loads
folkertdev Feb 14, 2026
bf00e75
neon `ld3`
folkertdev Feb 14, 2026
a4b6ad7
neon `ld4`
folkertdev Feb 14, 2026
e60d139
neon `ld1`
folkertdev Feb 14, 2026
8715deb
Merge pull request #2028 from folkertdev/f64-vld
sayantn Feb 18, 2026
172c79f
use `intrinsics::simd` for vpadd
folkertdev Feb 15, 2026
dafe135
Merge pull request #2026 from folkertdev/neon-vpadd
folkertdev Feb 18, 2026
504e6d5
Implement reflection support for function pointer types and add tests
Feb 18, 2026
2f678f5
DOC: do not link to "nightly" in Iterator::by_ref() docstring
mgeier Feb 18, 2026
0a7535d
fix stale comments left over from ed3711e
Zeromemer Feb 18, 2026
f39de81
Auto merge of #141295 - Kivooeo:if-let-guard-stable, r=fee1-dead,est31
bors Feb 18, 2026
33a8b50
Rollup merge of #152814 - folkertdev:stdarch-sync-2026-02-18, r=folke…
JonathanBrouwer Feb 18, 2026
5d5c76c
Rollup merge of #152173 - 9SonSteroids:fn_ptr_type_info, r=oli-obk
JonathanBrouwer Feb 18, 2026
1388150
Rollup merge of #152766 - DanielEScherzer:patch-1, r=joboet
JonathanBrouwer Feb 18, 2026
dbb0d58
Auto merge of #152825 - JonathanBrouwer:rollup-0YvwE70, r=JonathanBro…
bors Feb 19, 2026
9c75468
ptr::replace: make calls on ZST null ptr not UB
RalfJung Nov 21, 2025
ec01d97
Rollup merge of #152823 - Zeromemer:fix-stale-comments, r=jhpratt
JonathanBrouwer Feb 19, 2026
7de161b
For panic=unwind on Wasm targets, define __cpp_exception tag
hoodmane Feb 6, 2026
49a9e7f
Fix typo in doc for core::mem::type_info::Struct
apasel422 Feb 19, 2026
5ccb67e
std::ops::ControlFlow - use "a" before `Result`
DanielEScherzer Feb 19, 2026
4a1e24d
std::ops::ControlFlow - use normal comment for internal methods
DanielEScherzer Feb 20, 2026
3767126
Remove two more flaky assertions from `oneshot` tests
Zalathar Feb 20, 2026
c851d44
Support getting TypeId's Trait and vtable
Feb 2, 2026
a71694f
nix vtable_for intrinsic
Feb 18, 2026
dbc16f2
Rollup merge of #152818 - mgeier:doc-by_ref-link, r=scottmcm
JonathanBrouwer Feb 20, 2026
be2b509
Rollup merge of #152858 - apasel422:patch-1, r=oli-obk
JonathanBrouwer Feb 20, 2026
ca8f339
Rollup merge of #152873 - DanielEScherzer:patch-2, r=jhpratt
JonathanBrouwer Feb 20, 2026
f14e19c
Rollup merge of #152877 - DanielEScherzer:patch-3, r=scottmcm
JonathanBrouwer Feb 20, 2026
9026291
Fix warnings in rs{begin,end}.rs files
mati865 Feb 19, 2026
b68fdfc
Rollup merge of #152241 - hoodmane:wasm-unwind-link-cpp-exception, r=…
JonathanBrouwer Feb 20, 2026
3893315
Fixed ByteStr not padding within its Display trait when no specific a…
asder8215 Feb 19, 2026
8ae24b8
Rollup merge of #151603 - GrigorenkoPV:stabilize/str_as_str, r=jhpratt
matthiaskrgr Feb 21, 2026
d4d94d8
Rollup merge of #152878 - Zalathar:oneshot, r=workingjubilee
matthiaskrgr Feb 21, 2026
76b1bd2
Auto merge of #152737 - scottmcm:box_new_uninit_layout, r=RalfJung
bors Feb 22, 2026
5ec674a
Revert "Stabilize `str_as_str`"
JonathanBrouwer Feb 22, 2026
5dffb34
Rollup merge of #152591 - alexcrichton:simplify-rc-arc-default, r=joboet
JonathanBrouwer Feb 22, 2026
b717782
Rollup merge of #152865 - asder8215:path_display, r=joboet
JonathanBrouwer Feb 22, 2026
1322c17
Rollup merge of #147859 - cyrgani:nonfatal-tokenstream-parse, r=petro…
JonathanBrouwer Feb 22, 2026
bc88c3f
Rollup merge of #152705 - PaulDance:patches/skip-raw_attributes-docte…
JonathanBrouwer Feb 22, 2026
eaa7086
Rollup merge of #152767 - folkertdev:clmul-rhs-lhs, r=joboet
JonathanBrouwer Feb 22, 2026
a19a344
Rollup merge of #152871 - mati865:fix-rs-begin-end-warnings, r=joboet
JonathanBrouwer Feb 22, 2026
dc3dc98
Stabilize `cfg_select`
folkertdev Feb 7, 2026
54449db
Add try_shrink_to and try_shrink_to_fit to Vec
BitSyndicate1 Feb 23, 2026
cf99866
Rollup merge of #149783 - folkertdev:stabilize-cfg-select, r=Jonathan…
Zalathar Feb 23, 2026
f741176
Rollup merge of #152366 - BitSyndicate1:vec-fallible-shrink, r=Mark-S…
Zalathar Feb 23, 2026
b456f23
Rollup merge of #152963 - JonathanBrouwer:revert-str-as-str, r=jhpratt
Zalathar Feb 23, 2026
eaa74a6
make TraitImpl unstable
Feb 23, 2026
b91ddf1
std: move `exit` out of PAL
joboet Feb 15, 2026
f5ca3b7
Rollup merge of #152003 - 9SonSteroids:trait_info_of, r=oli-obk
JonathanBrouwer Feb 23, 2026
47f6f66
feat: BTreeMap::merge implemented with into iterators only (similar t…
asder8215 Feb 2, 2026
88e05aa
Optimized BTreeMap::merge using CursorMut
asder8215 Feb 10, 2026
e70a698
Swapped key comparisons to match lower_bound_mut, added FIXME comment…
asder8215 Feb 23, 2026
2232647
Prepare NonNull for pattern types
oli-obk May 17, 2025
2b22da7
Rollup merge of #152176 - JamieCunliffe:neon-str-contains, r=Mark-Sim…
JonathanBrouwer Feb 24, 2026
193634f
Rollup merge of #152657 - joboet:move_pal_exit, r=jhpratt
JonathanBrouwer Feb 24, 2026
e296732
std random.rs: update link to RTEMS docs
DanielEScherzer Feb 24, 2026
00d1fbe
Rollup merge of #149169 - RalfJung:replace-zst-null-ptr, r=Mark-Simul…
jhpratt Feb 25, 2026
b0cf41b
Rollup merge of #152418 - asder8215:btreemap_merge_optimized, r=Mark-…
jhpratt Feb 25, 2026
435d579
deprecate `Eq::assert_receiver_is_total_eq` and emit a FCW on manual …
cyrgani Jan 8, 2026
1561401
refactor 'valid for read/write' definition: exclude null
RalfJung Feb 14, 2026
0e0a59b
Remove redundant self usages
mu001999 Feb 22, 2026
3c58644
Revert "Simplify internals of `{Rc,Arc}::default`"
alexcrichton Feb 25, 2026
ebf4366
Rollup merge of #149978 - cyrgani:no-eq-assert-receiver-method, r=mad…
jhpratt Feb 26, 2026
0254af3
Rollup merge of #153092 - mu001999-contrib:cleanup/redundant-self, r=…
jhpratt Feb 26, 2026
c41ccfd
Recover feature lang_items for emscripten
mu001999 Feb 26, 2026
7fd324c
std: move `getpid` to `sys::process`
joboet Feb 26, 2026
f1b704c
std: sys: pal: uefi: os: Implement split_paths
Ayush1325 Feb 2, 2026
6a75a41
std: tests: env: Add split_paths_uefi
Ayush1325 Feb 16, 2026
2c33cb7
Auto merge of #153108 - alexcrichton:revert, r=joboet
bors Feb 26, 2026
37e8367
fix: mem::conjure_zst panic message to use any::type_name instead of …
mehdiakiki Feb 25, 2026
ce61aaf
Auto merge of #152702 - oli-obk:nonnulltransmute, r=scottmcm
bors Feb 27, 2026
e140e52
Rollup merge of #150828 - sourcefrog:doc-exe-security, r=cuviper
JonathanBrouwer Feb 27, 2026
0ba1166
Rollup merge of #153073 - mehdiakiki:fix/conjure-zst-panic-message, r…
JonathanBrouwer Feb 27, 2026
74bf203
Rollup merge of #153128 - mu001999-contrib:fix/features, r=joboet
JonathanBrouwer Feb 27, 2026
99492cd
add field representing types
BennoLossin Feb 20, 2026
138d9c2
style: Update doctests for `TryFrom<integer> for bool`
sorairolake Feb 27, 2026
2dfecf0
style: Update doctests for `From<bool> for float`
sorairolake Feb 27, 2026
393f91d
Auto merge of #153183 - JonathanBrouwer:rollup-APFHc2s, r=JonathanBro…
bors Feb 27, 2026
a79c872
Rollup merge of #152730 - BennoLossin:field-projections-lang-item, r=…
JonathanBrouwer Feb 28, 2026
5c078f0
Rollup merge of #152615 - RalfJung:null-not-valid-for-read-write, r=M…
JonathanBrouwer Feb 28, 2026
19269db
docs: note env var influence on `temp_dir` and `env_clear` on Windows
shri-prakhar Feb 28, 2026
9b52632
Rollup merge of #151991 - Ayush1325:uefi-split-path, r=joboet
JonathanBrouwer Feb 28, 2026
eefa1ff
Rollup merge of #153052 - DanielEScherzer:patch-2, r=joboet
JonathanBrouwer Feb 28, 2026
c0715bf
Rollup merge of #153054 - shri-prakhar:docs-temp-dir-env-vars, r=Mark…
JonathanBrouwer Feb 28, 2026
909bb35
Rollup merge of #153197 - sorairolake:change-doctests-style, r=joboet
JonathanBrouwer Feb 28, 2026
f471c99
Re-export unsupported Dir from fs impl on vexos
lewisfm Mar 1, 2026
34137b8
Recover feature lang_items for emscripten
mu001999 Mar 1, 2026
42d4741
Rollup merge of #153130 - joboet:move_getpid_sys_process, r=Mark-Simu…
JonathanBrouwer Mar 1, 2026
b9836f5
Rollup merge of #153246 - vexide:fix/fs-dir, r=joboet
JonathanBrouwer Mar 1, 2026
f890ece
Rollup merge of #153255 - mu001999-contrib:fix/features, r=joboet
JonathanBrouwer Mar 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 9 additions & 22 deletions alloc/src/alloc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#[stable(feature = "alloc_module", since = "1.28.0")]
#[doc(inline)]
pub use core::alloc::*;
use core::ptr::{self, NonNull};
use core::ptr::{self, Alignment, NonNull};
use core::{cmp, hint};

unsafe extern "Rust" {
Expand All @@ -18,19 +18,19 @@ unsafe extern "Rust" {
#[rustc_nounwind]
#[rustc_std_internal_symbol]
#[rustc_allocator_zeroed_variant = "__rust_alloc_zeroed"]
fn __rust_alloc(size: usize, align: usize) -> *mut u8;
fn __rust_alloc(size: usize, align: Alignment) -> *mut u8;
#[rustc_deallocator]
#[rustc_nounwind]
#[rustc_std_internal_symbol]
fn __rust_dealloc(ptr: *mut u8, size: usize, align: usize);
fn __rust_dealloc(ptr: *mut u8, size: usize, align: Alignment);
#[rustc_reallocator]
#[rustc_nounwind]
#[rustc_std_internal_symbol]
fn __rust_realloc(ptr: *mut u8, old_size: usize, align: usize, new_size: usize) -> *mut u8;
fn __rust_realloc(ptr: *mut u8, old_size: usize, align: Alignment, new_size: usize) -> *mut u8;
#[rustc_allocator_zeroed]
#[rustc_nounwind]
#[rustc_std_internal_symbol]
fn __rust_alloc_zeroed(size: usize, align: usize) -> *mut u8;
fn __rust_alloc_zeroed(size: usize, align: Alignment) -> *mut u8;

#[rustc_nounwind]
#[rustc_std_internal_symbol]
Expand Down Expand Up @@ -92,7 +92,7 @@ pub unsafe fn alloc(layout: Layout) -> *mut u8 {
// stable code until it is actually stabilized.
__rust_no_alloc_shim_is_unstable_v2();

__rust_alloc(layout.size(), layout.align())
__rust_alloc(layout.size(), layout.alignment())
}
}

Expand All @@ -112,7 +112,7 @@ pub unsafe fn alloc(layout: Layout) -> *mut u8 {
#[inline]
#[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces
pub unsafe fn dealloc(ptr: *mut u8, layout: Layout) {
unsafe { __rust_dealloc(ptr, layout.size(), layout.align()) }
unsafe { __rust_dealloc(ptr, layout.size(), layout.alignment()) }
}

/// Reallocates memory with the global allocator.
Expand All @@ -132,7 +132,7 @@ pub unsafe fn dealloc(ptr: *mut u8, layout: Layout) {
#[inline]
#[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces
pub unsafe fn realloc(ptr: *mut u8, layout: Layout, new_size: usize) -> *mut u8 {
unsafe { __rust_realloc(ptr, layout.size(), layout.align(), new_size) }
unsafe { __rust_realloc(ptr, layout.size(), layout.alignment(), new_size) }
}

/// Allocates zero-initialized memory with the global allocator.
Expand Down Expand Up @@ -175,7 +175,7 @@ pub unsafe fn alloc_zeroed(layout: Layout) -> *mut u8 {
// stable code until it is actually stabilized.
__rust_no_alloc_shim_is_unstable_v2();

__rust_alloc_zeroed(layout.size(), layout.align())
__rust_alloc_zeroed(layout.size(), layout.alignment())
}
}

Expand Down Expand Up @@ -479,19 +479,6 @@ unsafe impl const Allocator for Global {
}
}

/// The allocator for `Box`.
#[cfg(not(no_global_oom_handling))]
#[lang = "exchange_malloc"]
#[inline]
#[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces
unsafe fn exchange_malloc(size: usize, align: usize) -> *mut u8 {
let layout = unsafe { Layout::from_size_align_unchecked(size, align) };
match Global.allocate(layout) {
Ok(ptr) => ptr.as_mut_ptr(),
Err(_) => handle_alloc_error(layout),
}
}

// # Allocation error handler

#[cfg(not(no_global_oom_handling))]
Expand Down
64 changes: 49 additions & 15 deletions alloc/src/boxed.rs
Original file line number Diff line number Diff line change
Expand Up @@ -236,14 +236,34 @@ pub struct Box<
#[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global,
>(Unique<T>, A);

/// Constructs a `Box<T>` by calling the `exchange_malloc` lang item and moving the argument into
/// the newly allocated memory. This is an intrinsic to avoid unnecessary copies.
/// Monomorphic function for allocating an uninit `Box`.
#[inline]
// The is a separate function to avoid doing it in every generic version, but it
// looks small to the mir inliner (particularly in panic=abort) so leave it to
// the backend to decide whether pulling it in everywhere is worth doing.
#[rustc_no_mir_inline]
#[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces
#[cfg(not(no_global_oom_handling))]
fn box_new_uninit(layout: Layout) -> *mut u8 {
match Global.allocate(layout) {
Ok(ptr) => ptr.as_mut_ptr(),
Err(_) => handle_alloc_error(layout),
}
}

/// Helper for `vec!`.
///
/// This is the surface syntax for `box <expr>` expressions.
/// This is unsafe, but has to be marked as safe or else we couldn't use it in `vec!`.
#[doc(hidden)]
#[rustc_intrinsic]
#[unstable(feature = "liballoc_internals", issue = "none")]
pub fn box_new<T>(x: T) -> Box<T>;
#[inline(always)]
#[cfg(not(no_global_oom_handling))]
#[rustc_diagnostic_item = "box_assume_init_into_vec_unsafe"]
pub fn box_assume_init_into_vec_unsafe<T, const N: usize>(
b: Box<MaybeUninit<[T; N]>>,
) -> crate::vec::Vec<T> {
unsafe { (b.assume_init() as Box<[T]>).into_vec() }
}

impl<T> Box<T> {
/// Allocates memory on the heap and then places `x` into it.
Expand All @@ -262,7 +282,13 @@ impl<T> Box<T> {
#[rustc_diagnostic_item = "box_new"]
#[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces
pub fn new(x: T) -> Self {
return box_new(x);
// This is `Box::new_uninit` but inlined to avoid build time regressions.
let ptr = box_new_uninit(<T as SizedTypeProperties>::LAYOUT) as *mut T;
// Nothing below can panic so we do not have to worry about deallocating `ptr`.
// SAFETY: we just allocated the box to store `x`.
unsafe { core::intrinsics::write_via_move(ptr, x) };
// SAFETY: we just initialized `b`.
unsafe { mem::transmute(ptr) }
}

/// Constructs a new box with uninitialized contents.
Expand All @@ -280,9 +306,15 @@ impl<T> Box<T> {
#[cfg(not(no_global_oom_handling))]
#[stable(feature = "new_uninit", since = "1.82.0")]
#[must_use]
#[inline]
#[inline(always)]
#[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces
pub fn new_uninit() -> Box<mem::MaybeUninit<T>> {
Self::new_uninit_in(Global)
// This is the same as `Self::new_uninit_in(Global)`, but manually inlined (just like
// `Box::new`).

// SAFETY:
// - If `allocate` succeeds, the returned pointer exactly matches what `Box` needs.
unsafe { mem::transmute(box_new_uninit(<T as SizedTypeProperties>::LAYOUT)) }
}

/// Constructs a new `Box` with uninitialized contents, with the memory
Expand Down Expand Up @@ -1142,10 +1174,12 @@ impl<T, A: Allocator> Box<mem::MaybeUninit<T>, A> {
/// assert_eq!(*five, 5)
/// ```
#[stable(feature = "new_uninit", since = "1.82.0")]
#[inline]
#[inline(always)]
pub unsafe fn assume_init(self) -> Box<T, A> {
let (raw, alloc) = Box::into_raw_with_allocator(self);
unsafe { Box::from_raw_in(raw as *mut T, alloc) }
// This is used in the `vec!` macro, so we optimize for minimal IR generation
// even in debug builds.
// SAFETY: `Box<T>` and `Box<MaybeUninit<T>>` have the same layout.
unsafe { core::intrinsics::transmute_unchecked(self) }
}

/// Writes the value and converts to `Box<T, A>`.
Expand Down Expand Up @@ -1514,7 +1548,7 @@ impl<T: ?Sized, A: Allocator> Box<T, A> {
/// Recreate a `Box` which was previously converted to a `NonNull` pointer
/// using [`Box::into_non_null_with_allocator`]:
/// ```
/// #![feature(allocator_api, box_vec_non_null)]
/// #![feature(allocator_api)]
///
/// use std::alloc::System;
///
Expand All @@ -1524,7 +1558,7 @@ impl<T: ?Sized, A: Allocator> Box<T, A> {
/// ```
/// Manually create a `Box` from scratch by using the system allocator:
/// ```
/// #![feature(allocator_api, box_vec_non_null, slice_ptr_get)]
/// #![feature(allocator_api)]
///
/// use std::alloc::{Allocator, Layout, System};
///
Expand Down Expand Up @@ -1629,7 +1663,7 @@ impl<T: ?Sized, A: Allocator> Box<T, A> {
/// Converting the `NonNull` pointer back into a `Box` with
/// [`Box::from_non_null_in`] for automatic cleanup:
/// ```
/// #![feature(allocator_api, box_vec_non_null)]
/// #![feature(allocator_api)]
///
/// use std::alloc::System;
///
Expand All @@ -1640,7 +1674,7 @@ impl<T: ?Sized, A: Allocator> Box<T, A> {
/// Manual cleanup by explicitly running the destructor and deallocating
/// the memory:
/// ```
/// #![feature(allocator_api, box_vec_non_null)]
/// #![feature(allocator_api)]
///
/// use std::alloc::{Allocator, Layout, System};
///
Expand Down
18 changes: 7 additions & 11 deletions alloc/src/bstr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -477,39 +477,35 @@ impl PartialEq for ByteString {

macro_rules! impl_partial_eq_ord_cow {
($lhs:ty, $rhs:ty) => {
#[allow(unused_lifetimes)]
#[unstable(feature = "bstr", issue = "134915")]
impl<'a> PartialEq<$rhs> for $lhs {
impl PartialEq<$rhs> for $lhs {
#[inline]
fn eq(&self, other: &$rhs) -> bool {
let other: &[u8] = (&**other).as_ref();
PartialEq::eq(self.as_bytes(), other)
}
}

#[allow(unused_lifetimes)]
#[unstable(feature = "bstr", issue = "134915")]
impl<'a> PartialEq<$lhs> for $rhs {
impl PartialEq<$lhs> for $rhs {
#[inline]
fn eq(&self, other: &$lhs) -> bool {
let this: &[u8] = (&**self).as_ref();
PartialEq::eq(this, other.as_bytes())
}
}

#[allow(unused_lifetimes)]
#[unstable(feature = "bstr", issue = "134915")]
impl<'a> PartialOrd<$rhs> for $lhs {
impl PartialOrd<$rhs> for $lhs {
#[inline]
fn partial_cmp(&self, other: &$rhs) -> Option<Ordering> {
let other: &[u8] = (&**other).as_ref();
PartialOrd::partial_cmp(self.as_bytes(), other)
}
}

#[allow(unused_lifetimes)]
#[unstable(feature = "bstr", issue = "134915")]
impl<'a> PartialOrd<$lhs> for $rhs {
impl PartialOrd<$lhs> for $rhs {
#[inline]
fn partial_cmp(&self, other: &$lhs) -> Option<Ordering> {
let this: &[u8] = (&**self).as_ref();
Expand Down Expand Up @@ -667,9 +663,9 @@ impl From<Arc<ByteStr>> for Arc<[u8]> {
impl_partial_eq!(ByteStr, Vec<u8>);
// PartialOrd with `String` omitted to avoid inference failures
impl_partial_eq!(ByteStr, String);
impl_partial_eq_ord_cow!(&'a ByteStr, Cow<'a, ByteStr>);
impl_partial_eq_ord_cow!(&'a ByteStr, Cow<'a, str>);
impl_partial_eq_ord_cow!(&'a ByteStr, Cow<'a, [u8]>);
impl_partial_eq_ord_cow!(&ByteStr, Cow<'_, ByteStr>);
impl_partial_eq_ord_cow!(&ByteStr, Cow<'_, str>);
impl_partial_eq_ord_cow!(&ByteStr, Cow<'_, [u8]>);

#[unstable(feature = "bstr", issue = "134915")]
impl<'a> TryFrom<&'a ByteStr> for String {
Expand Down
34 changes: 34 additions & 0 deletions alloc/src/collections/binary_heap/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -581,6 +581,40 @@ impl<T, A: Allocator> BinaryHeap<T, A> {
pub fn with_capacity_in(capacity: usize, alloc: A) -> BinaryHeap<T, A> {
BinaryHeap { data: Vec::with_capacity_in(capacity, alloc) }
}

/// Creates a `BinaryHeap` using the supplied `vec`. This does not rebuild the heap,
/// so `vec` must already be a max-heap.
///
/// # Safety
///
/// The supplied `vec` must be a max-heap, i.e. for all indices `0 < i < vec.len()`,
/// `vec[(i - 1) / 2] >= vec[i]`.
///
/// # Examples
///
/// Basic usage:
///
/// ```
/// #![feature(binary_heap_from_raw_vec)]
///
/// use std::collections::BinaryHeap;
/// let heap = BinaryHeap::from([1, 2, 3]);
/// let vec = heap.into_vec();
///
/// // Safety: vec is the output of heap.from_vec(), so is a max-heap.
/// let mut new_heap = unsafe {
/// BinaryHeap::from_raw_vec(vec)
/// };
/// assert_eq!(new_heap.pop(), Some(3));
/// assert_eq!(new_heap.pop(), Some(2));
/// assert_eq!(new_heap.pop(), Some(1));
/// assert_eq!(new_heap.pop(), None);
/// ```
#[unstable(feature = "binary_heap_from_raw_vec", issue = "152500")]
#[must_use]
pub unsafe fn from_raw_vec(vec: Vec<T, A>) -> BinaryHeap<T, A> {
BinaryHeap { data: vec }
}
}

impl<T: Ord, A: Allocator> BinaryHeap<T, A> {
Expand Down
Loading
Loading