Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
691 commits
Select commit Hold shift + click to select a range
b925daf
Add movrs intrinsics
sayantn Mar 5, 2026
01d62b2
Rollup merge of #153399 - bend-n:constify-into-raw-parts, r=Amanieu
JonathanBrouwer Mar 5, 2026
24e77f3
std: use `OnceLock` for Xous environment variables
joboet Feb 12, 2026
09570b3
Revert "library/test: always enable unstable features for miri"
RalfJung Mar 5, 2026
173a6bd
meta: Commit changes applied by recent versions of `rustfmt`
tgross35 Mar 6, 2026
3406cd6
meta: Allow a clippy lint that appears in recent versions
tgross35 Mar 6, 2026
893e14a
gate `ConstParamTy_` trait behind `const_param_ty_trait` feature
zedddie Mar 3, 2026
0e287e3
Add missing `track_caller` to overflowing trait methods
RaphiMuehlbacher Mar 6, 2026
0506215
meta: Allow or fix `unused_features`
tgross35 Mar 6, 2026
6fb3837
c-b: fix path to CONTRIBUTING.md in README.md
DanielEScherzer Mar 6, 2026
5e1136b
add wasm64 to sync::Once and thread_parking atomics cfg guard
Trivo25 Feb 27, 2026
a52fe8b
libcore float tests: replace macro shadowing by const-compatible macro
RalfJung Mar 6, 2026
85bfb85
c-b: Export `fminimum_num`, `fmaximum_num` and variants
tgross35 Mar 6, 2026
c6b115d
gate use of `wasm_target_feature` on wasm target arch
folkertdev Mar 6, 2026
6405c72
Merge pull request #2047 from sayantn/correct-bw-const
folkertdev Mar 6, 2026
20fa07e
Merge pull request #2048 from sayantn/movrs
folkertdev Mar 6, 2026
a470298
Rollup merge of #153174 - Trivo25:fix-wasm64-sync-cfg, r=joboet
JonathanBrouwer Mar 6, 2026
40167d1
Rollup merge of #153485 - RalfJung:float-macros-const, r=tgross35
JonathanBrouwer Mar 6, 2026
3a9a7b4
add ACLE random number generation intrinsics
folkertdev Mar 6, 2026
50faf5a
Remove a flaky `got_timeout` assert from two channel tests
Zalathar Mar 7, 2026
6825a46
Replace version placeholders with 1.95.0
cuviper Mar 2, 2026
daa4bb5
Reformat with the new stage0
cuviper Mar 5, 2026
96bab55
Rollup merge of #153437 - RalfJung:miri-libtest-unstable, r=cuviper
Zalathar Mar 8, 2026
985ead2
MaybeUninit: mention common mistakes in assume_init docs; link to val…
RalfJung Mar 8, 2026
1efafeb
Rollup merge of #152535 - joboet:xous_env_once_lock, r=Mark-Simulacrum
JonathanBrouwer Mar 8, 2026
0dfa9c5
Rollup merge of #152646 - zachs18:unsafeunpin-marker-impls-pointee, r…
JonathanBrouwer Mar 8, 2026
306eab4
Rollup merge of #151900 - tgross35:num-internal-imp, r=Mark-Simulacrum
JonathanBrouwer Mar 8, 2026
609ae2c
Make `unicode_data` tests normal
Kmeakin Oct 19, 2025
1c9689f
Compress case-mapping tables
Kmeakin Feb 22, 2026
bfd1790
Auto merge of #153025 - joboet:bytestr_precision_display, r=Mark-Simu…
bors Mar 9, 2026
99a6306
Prepare for merging from rust-lang/rust
invalid-email-address Mar 9, 2026
ab62c56
Merge ref 'eda4fc7733ee' from rust-lang/rust
invalid-email-address Mar 9, 2026
da1ce22
Rollup merge of #153413 - joboet:organize-pal-os, r=Mark-Simulacrum
JonathanBrouwer Mar 9, 2026
1eeb369
Fix environ on FreeBSD with cdylib targets that use -Wl,--no-undefined .
asomers Mar 5, 2026
056c3ae
std: move `sys::pal::os` to `sys::paths` (rename/delete only)
joboet Mar 9, 2026
a80299b
std: move leftover Windows error test
joboet Mar 9, 2026
b89f4fb
std: move `sys::pal::os` to `sys::paths`
joboet Mar 9, 2026
2382d68
Fix Vec::const_make_global for 0 capacity and ZST's
Lars-Schumann Mar 9, 2026
fc5d634
combine 0 capacity and ZST cases
Lars-Schumann Mar 10, 2026
2026a66
Auto merge of #152954 - Kmeakin:km/unicode-data/case-mapping, r=Mark-…
bors Mar 10, 2026
0a595ff
Rollup merge of #148562 - kpreid:get-init-drop, r=oli-obk
matthiaskrgr Mar 10, 2026
7685447
docs(fs): Clarify that File::lock coordinates across processes
TKanX Mar 10, 2026
3946bad
Move freeze_* methods to OpenOptionsExt2
ChrisDenton Mar 6, 2026
19cce80
Auto merge of #153642 - matthiaskrgr:rollup-IHw8KqK, r=matthiaskrgr
bors Mar 10, 2026
ad67aad
core doctests support panic=abort
jyn514 Feb 25, 2026
3434d1b
core and alloc doctests support doctest merging
jyn514 Feb 25, 2026
b98d929
Revert "Merge pull request #1871 from folkertdev/aarch64-float-min-max"
RalfJung Mar 10, 2026
66aa265
Reflect removal of `--no-doc` in documentation
Urhengulas Feb 26, 2026
8e963a5
aarch64: use `simd_reduce_{min, max}` on integers
folkertdev Mar 10, 2026
558cc47
Merge pull request #2051 from rust-lang/rustc-pull
folkertdev Mar 10, 2026
ce757ca
assign mpsc_is_disconnected issue 153668
LevitatingBusinessMan Mar 10, 2026
29ee442
s390x: use llvm.s390 intrinsics instead of simd_fmin/fmax
RalfJung Mar 10, 2026
8d63788
Rollup merge of #153143 - ferrocene:jh/bootstrap-test-targets, r=Mark…
JonathanBrouwer Mar 10, 2026
3f4f727
simd_add/sub/mul/neg: document overflow behavior
RalfJung Mar 10, 2026
ab64bdb
add f32 min/max tests
RalfJung Mar 10, 2026
00edd21
Remove string content from panics
ConradIrwin Mar 10, 2026
573fbbf
`std`: include `dlmalloc` for all non-wasi Wasm targets
Twey Mar 11, 2026
38a73cc
Fix tests and tidy up wtf-8 failures
ConradIrwin Mar 11, 2026
ecd64e5
go back to portable LLVM intrinsic to avoid fallback trouble
RalfJung Mar 11, 2026
7f6cb2b
Rollup merge of #153072 - ferrocene:jyn/libcore-doctest-merge, r=jdon…
JonathanBrouwer Mar 11, 2026
db91547
miri-test-libstd: use --tests and update some comments
RalfJung Mar 11, 2026
c9599fc
`std`: don't depend on `dlmalloc` when `cfg(unix)`
Twey Mar 11, 2026
02ca4ef
s390x: add f64 tests for vec_min
RalfJung Mar 11, 2026
fb1934f
Rollup merge of #153722 - RalfJung:miri-test-benches, r=Kobzol
JonathanBrouwer Mar 11, 2026
d1bc9ff
Merge pull request #2053 from folkertdev/aarch64-int-simd-reduce-min-max
folkertdev Mar 12, 2026
fdb7293
Merge pull request #2061 from RalfJung/f64-tests
folkertdev Mar 12, 2026
2f5fde0
remove `cfg_attr` on `aarch64`/`arm64ec` in the aarch64 module
folkertdev Mar 12, 2026
2a913b8
Fix std doctest build for SGX target.
sardok Mar 12, 2026
26daed7
ci: update to actions/checkout@v6
Mar 12, 2026
912d67a
Derive Macro Eq: link to more detailed documentation
DanielEScherzer Mar 13, 2026
53ee475
Rollup merge of #152258 - asder8215:vecdeque_splice_151758, r=joboet
Zalathar Mar 13, 2026
1dc3562
core: lift FIXME comment from option.rs to iter::try_process
softmoth Mar 4, 2026
02a5f1d
Fix grammar in Pin documentation
abh1nav10 Mar 8, 2026
9756a5d
inline `assert_instr` tests
folkertdev Mar 12, 2026
f66d21f
constify Step trait and all of its implementations
Lars-Schumann Mar 13, 2026
9c44c14
add safety doc for CString::from_vec_unchecked and async_drop_in_place
hxuhack Mar 13, 2026
7e52b24
Rollup merge of #153384 - safer-rust:main, r=oli-obk
JonathanBrouwer Mar 13, 2026
ac219d2
Add `Wake` diagnostic item for `alloc::task::Wake`
samueltardieu Mar 12, 2026
bed5d3c
Rollup merge of #153418 - softmoth:patch-1, r=joboet
matthiaskrgr Mar 13, 2026
d235e4e
Rollup merge of #153569 - abh1nav10:fix-pin-docs, r=joboet
matthiaskrgr Mar 13, 2026
8c91bc4
Add overview documentation for `std::mem`.
kpreid Mar 12, 2026
f2efe61
Rollup merge of #153774 - sardok:fix_sgx_std_doctest_build, r=WaffleL…
Zalathar Mar 14, 2026
63966d3
dec2flt: Rename `Integer` to `Int`
tgross35 Jan 31, 2026
207f3a1
dec2flt: Split up the `RawFloat` trait
tgross35 Jan 31, 2026
f8ac883
dec2flt: Move internal traits to better locations
tgross35 Jan 31, 2026
e313e9a
Fix rust build failure for vxworks
gautam899 Mar 3, 2026
857ddaa
support: Add `Hexi` for printing integers in hex
tgross35 Mar 6, 2026
c4303e1
support: Add different NaN types to the `Float` trait
tgross35 Mar 6, 2026
5cdd0c5
support: Print sNaN or qNaN for hex floats
tgross35 Mar 6, 2026
b1a1940
min,max: Add tests for signaling NaNs and update documentation
tgross35 Mar 6, 2026
ef7463a
Do not emit separator as before elements
zakarumych Feb 19, 2026
5cd5d37
Auto merge of #153866 - tgross35:update-builtins, r=tgross35
bors Mar 14, 2026
18b5031
Lifted intersperse and intersperse_with Fused restrictions and update…
asder8215 Mar 14, 2026
e70cdcf
Extend ASCII fast paths of `char` methods beyond ASCII
Jules-Bertholet Mar 16, 2024
a42a109
Add `From` impls for wrapper types
Jules-Bertholet Mar 15, 2026
5045bac
rename min/maxnum intrinsics to min/maximum_number and fix their LLVM…
RalfJung Mar 3, 2026
37a0663
Allow passing `expr` metavariable as a `cfg` predicate
Jules-Bertholet Mar 15, 2026
5f66d2b
remove usages of to-be-deprecated numeric constants
cyrgani Mar 15, 2026
1a6c6a0
Rollup merge of #153570 - RalfJung:assume-init-docs, r=tgross35
Zalathar Mar 16, 2026
904cd19
Rollup merge of #153793 - kpreid:std-mem-doc, r=scottmcm
Zalathar Mar 16, 2026
c176703
Change `?Sized` to `PointeeSized` in `UnwindSafe` impls for pointers
theemathas Mar 16, 2026
49e11b9
Rollup merge of #153359 - zedddie:const-param-ty-trait-gating, r=BoxyUwU
JonathanBrouwer Mar 16, 2026
3812783
Merge pull request #2050 from folkertdev/aarch64-rand
sayantn Mar 16, 2026
c6c3d23
Merge `fabsfN` into `fabs::<F>`
N1ark Mar 15, 2026
25f39ba
enable the `movrs` target feature in `core` and `std`
folkertdev Mar 16, 2026
bf5880a
Auto merge of #146013 - Jules-Bertholet:from-wrapper, r=Mark-Simulacrum
bors Mar 17, 2026
cd05d1b
doc: clarify allocator invariant
lms0806 Mar 17, 2026
35bd65c
remove `internal_impls_macro` feature
cyrgani Mar 17, 2026
1243d04
move features into the correct section
cyrgani Feb 24, 2026
0e1ece1
constify const Fn*: Destruct
bend-n Mar 14, 2026
d092dcb
Rollup merge of #153972 - folkertdev:stdarch-sync-2026-03-16, r=folke…
JonathanBrouwer Mar 17, 2026
890a928
unstable impl of `From<{i64, u64}> for f128`
folkertdev Mar 17, 2026
a15642b
Rollup merge of #152998 - xtqqczze:panic-truncate, r=jhpratt
JonathanBrouwer Mar 17, 2026
0c03a58
Rollup merge of #154012 - folkertdev:f128-from-instances, r=tgross35
JonathanBrouwer Mar 17, 2026
deea495
Merge ref '91775dbec977' from rust-lang/rust
Mar 18, 2026
c63dbab
implement `BinaryHeap::as_mut_slice`
usamoi Mar 17, 2026
481ecef
Rollup merge of #153677 - ConradIrwin:sanitary-string-panics, r=scottmcm
Zalathar Mar 18, 2026
febd414
Rollup merge of #153945 - theemathas:unwind_safe_pointee_sized, r=sco…
Zalathar Mar 18, 2026
1cce5cb
Rollup merge of #153985 - lms0806:issue-153542, r=scottmcm
Zalathar Mar 18, 2026
f059c6f
simd_fmin/fmax: make semantics and name consistent with scalar intrin…
RalfJung Mar 18, 2026
d71b9ed
Optimize 128-bit integer formatting
jhpratt Mar 19, 2026
a18d610
Merge ref 'fd0c901b00ee' from rust-lang/rust
Mar 19, 2026
acdde28
Auto merge of #153480 - RaphiMuehlbacher:track-caller, r=Mark-Simulacrum
bors Mar 19, 2026
d8d5d0e
format safety doc of Rc/Arc::from_raw/from_raw_in
hxuhack Mar 19, 2026
99ca2b6
Rollup merge of #153333 - gautam899:main, r=Mark-Simulacrum
JonathanBrouwer Mar 19, 2026
a9cb1b2
Rollup merge of #153824 - samueltardieu:wake-diagnostic-item, r=Mark-…
JonathanBrouwer Mar 19, 2026
431425a
Rollup merge of #154077 - jhpratt:optimize-128-bit-formatting, r=dtolnay
JonathanBrouwer Mar 19, 2026
f8c39d7
Rollup merge of #151905 - tgross35:dec2flt-traits, r=Mark-Simulacrum
JonathanBrouwer Mar 19, 2026
85a1bed
Rollup merge of #153170 - LevitatingBusinessMan:is_disconnected, r=Ma…
JonathanBrouwer Mar 19, 2026
88914d2
Rollup merge of #153804 - DanielEScherzer:derive-eq-docs, r=Mark-Simu…
JonathanBrouwer Mar 19, 2026
5b66c26
Replace `truncate(0)` with `clear()`
xtqqczze Mar 18, 2026
020f72b
coretests: Move the `float` module under `num`
tgross35 Mar 19, 2026
3ab92ac
coretests: Give `ieee754.rs` a more accurate name
tgross35 Mar 19, 2026
d1ae330
coretests: Expand ieee754 parsing and printing tests to f16
tgross35 Mar 19, 2026
f7d8f57
Rollup merge of #154019 - cyrgani:feature-clean, r=joboet
Zalathar Mar 20, 2026
ec0ce53
Defer codegen for the VaList Drop impl to actual uses
bjorn3 Mar 20, 2026
856129d
Add missing num_internals feature gate to coretests/benches
bjorn3 Mar 20, 2026
610b7ee
vec::Drain::fill: avoid reference to uninitialized memory
RalfJung Mar 20, 2026
d71b36f
Rollup merge of #154103 - tgross35:float-test-mod, r=folkertdev
JonathanBrouwer Mar 20, 2026
0a68388
test copy_specializes_from_vecdeque: reduce iteration count for Miri
RalfJung Mar 20, 2026
512f8f8
Rollup merge of #154138 - RalfJung:vec-slice-uninit, r=joboet
JonathanBrouwer Mar 20, 2026
6f78334
Rollup merge of #154143 - RalfJung:miri-test, r=joboet
JonathanBrouwer Mar 20, 2026
0820c49
core: Implement `unchecked_funnel_{shl,shr}`
tgross35 Mar 20, 2026
0a4ea03
Skip stack_start_aligned for immediate-abort
danielzgtg Mar 16, 2026
0b44085
Don't suggest non-deriveable traits for unions.
malezjaa Mar 19, 2026
56cf0f1
Rollup merge of #146961 - Jules-Bertholet:expr-cfg, r=JonathanBrouwer
JonathanBrouwer Mar 20, 2026
3399dfb
Rollup merge of #154118 - malezjaa:dont-suggest-some-traits-for-union…
JonathanBrouwer Mar 20, 2026
d78e64f
Auto merge of #154160 - JonathanBrouwer:rollup-4jbkEbt, r=JonathanBro…
bors Mar 21, 2026
2da94d1
Prevent no_threads RwLock's write() impl from setting mode to -1 when…
asder8215 Mar 21, 2026
586e3ab
Add APIs for dealing with titlecase
Jules-Bertholet Mar 16, 2024
bb6a5b9
Don't fuse in `MapWindows`
Jules-Bertholet Mar 21, 2026
7f6fcff
Use BTreeMap::merge underneath the hood to deduplicate code
asder8215 Feb 25, 2026
40488de
Constify `NonNull::with_exposed_provenance`
airblast-dev Mar 22, 2026
98a2958
`vec::as_mut_slice()`: use lowercase "isize" in safety comment
DanielEScherzer Mar 22, 2026
e823e90
refactor RangeFromIter overflow-checks impl
pitaj Mar 21, 2026
e707597
Document consteval behavior of ub_checks & overflow_checks.
theemathas Mar 23, 2026
58d592d
Remove outdated consteval docs for is_val_statically_known.
theemathas Mar 23, 2026
44265dd
Auto merge of #154217 - RalfJung:miri, r=RalfJung
bors Mar 23, 2026
e140309
Rollup merge of #153686 - Twey:patch-1, r=Mark-Simulacrum
JonathanBrouwer Mar 23, 2026
6f5fb85
Rollup merge of #154191 - pitaj:fix-154124, r=tgross35
JonathanBrouwer Mar 23, 2026
c451d6c
Rollup merge of #154140 - theemathas:checks_always_on_in_const, r=Ral…
JonathanBrouwer Mar 23, 2026
85d137a
Rollup merge of #153107 - asder8215:btreemap_append_optimized, r=Mark…
JonathanBrouwer Mar 23, 2026
73c6d81
Rollup merge of #153534 - Zalathar:flaky-stress, r=Mark-Simulacrum
JonathanBrouwer Mar 23, 2026
0235625
Rollup merge of #153718 - asomers:environ-freebsd, r=Mark-Simulacrum
JonathanBrouwer Mar 23, 2026
5d91322
Rollup merge of #153880 - asder8215:intersperse_nonfused, r=Mark-Simu…
JonathanBrouwer Mar 23, 2026
9f2dfa2
Rollup merge of #153931 - cyrgani:old-consts, r=Mark-Simulacrum
JonathanBrouwer Mar 23, 2026
f8aa049
Rollup merge of #153491 - ChrisDenton:openoptionsext2, r=Mark-Simulacrum
JonathanBrouwer Mar 23, 2026
7effe11
Rollup merge of #153623 - joboet:move_pal_os, r=Mark-Simulacrum
JonathanBrouwer Mar 23, 2026
9c96917
Rollup merge of #153647 - TKanX:docs/153618-file-lock-cross-process, …
JonathanBrouwer Mar 23, 2026
6017bd6
Rollup merge of #153936 - danielzgtg:perf/immediateAbortAvoidPthreadG…
JonathanBrouwer Mar 23, 2026
4296d11
Rollup merge of #154011 - usamoi:binary_heap_as_mut_slice, r=Mark-Sim…
JonathanBrouwer Mar 23, 2026
60e6489
Exclude slow tests from miri
Jules-Bertholet Mar 23, 2026
5813210
Auto merge of #154253 - JonathanBrouwer:rollup-LLZUsz2, r=JonathanBro…
bors Mar 23, 2026
e650983
Use common Timestamp impl in Hermit (attempt 2)
stepancheg Mar 23, 2026
9ca2a93
Rollup merge of #122668 - Jules-Bertholet:titlecase, r=Mark-Simulacrum
JonathanBrouwer Mar 23, 2026
f790fac
Make `Ipv6Addr::multicast_scope()` exhaustive
Jules-Bertholet Mar 22, 2026
8e2376e
Fix typo in doc comment for `char::to_titlecase`
Jules-Bertholet Mar 24, 2026
f580a11
Rollup merge of #154132 - bjorn3:fix_missing_feature_gate, r=Mark-Sim…
jhpratt Mar 24, 2026
6eaec1e
Rollup merge of #154153 - tgross35:funnel-unchecked, r=Mark-Simulacrum
jhpratt Mar 24, 2026
4c1039e
Add comments
bjorn3 Mar 23, 2026
2cb71c5
Rollup merge of #154133 - bjorn3:va_list_drop_defer_codegen, r=nnethe…
JonathanBrouwer Mar 24, 2026
c9e0e31
Disable `doc(auto_cfg)` for integers trait impls
GuillaumeGomez Mar 24, 2026
9fa953f
feat: reimplement `hash_map!` macro
m4rch3n1ng Mar 24, 2026
1b76219
trim prefix/suffix for paths
bend-n Mar 24, 2026
15d43f6
Rollup merge of #153874 - bend-n:constify-const-fn-destruct, r=oli-obk
JonathanBrouwer Mar 24, 2026
bb91e4c
Rollup merge of #154311 - GuillaumeGomez:fix-integer-doc-cfg, r=eggya…
JonathanBrouwer Mar 24, 2026
0e6b243
Auto merge of #154339 - JonathanBrouwer:rollup-FPeeGxJ, r=JonathanBro…
bors Mar 24, 2026
8033325
Make PinCoerceUnsized require Deref
theemathas Nov 22, 2025
55baf41
Rewrite safety comment for PinCoerceUnsized
theemathas Dec 3, 2025
bf15105
Merge ref '8a703520e80d' from rust-lang/rust
Mar 25, 2026
2a324bd
uefi: extend comment for TcpStream Send impl
RalfJung Mar 25, 2026
cf1f517
core: move `Alignment` from `ptr` to `mem`
GrigorenkoPV Mar 1, 2026
6927e82
`core::mem::Alignemnt`: rename `as_nonzero` to `as_nonzero_usize`
GrigorenkoPV Mar 1, 2026
903b3f9
Rollup merge of #154216 - airblast-dev:main, r=tgross35
JonathanBrouwer Mar 25, 2026
bd64420
Rollup merge of #154288 - Jules-Bertholet:patch-2, r=JohnTitor
JonathanBrouwer Mar 25, 2026
866fb94
Rollup merge of #153068 - sayantn:avxvnni, r=Amanieu
JonathanBrouwer Mar 25, 2026
1075cc4
Link from `assert_matches` to `debug_assert_matches`
theemathas Mar 26, 2026
d2de3a2
Merge ref '1174f784096d' from rust-lang/rust
Mar 26, 2026
e23eda7
Add `IoSplit` diagnostic item for `std::io::Split`
vitkyrka Mar 26, 2026
1d3d438
adjust wording
RalfJung Mar 25, 2026
1aa7e9f
Rollup merge of #154407 - theemathas:document-debug_assert_matches, r…
JonathanBrouwer Mar 26, 2026
84f3335
Auto merge of #154004 - GrigorenkoPV:alignment/as_nonzero_usize, r=sc…
bors Mar 27, 2026
701edb8
Rollup merge of #153675 - RalfJung:simd-overflow, r=scottmcm
jhpratt Mar 27, 2026
53b17eb
Remove `repr(u8)`
Jules-Bertholet Mar 27, 2026
a343b9b
std_detect on AArch64 Darwin: Detect FEAT_SVE_B16B16
pthariensflame Mar 28, 2026
7de1001
Rollup merge of #154357 - RalfJung:uefi-tcp-send, r=joboet
Zalathar Mar 28, 2026
630afcd
Rollup merge of #154081 - safer-rust:main, r=Mark-Simulacrum
Zalathar Mar 28, 2026
b2da385
Rollup merge of #154196 - Jules-Bertholet:ipv6-multicast-discriminant…
Zalathar Mar 28, 2026
7f7d8df
Rollup merge of #154221 - DanielEScherzer:isize-lc, r=Mark-Simulacrum
Zalathar Mar 28, 2026
168ec11
Rollup merge of #154234 - stepancheg:hermit-timespec, r=Mark-Simulacrum
Zalathar Mar 28, 2026
1e333de
Auto merge of #153821 - Lars-Schumann:const-step, r=Mark-Simulacrum
bors Mar 28, 2026
5907584
Update libc to v0.2.183
thesummer Jan 7, 2026
6bc7575
Rollup merge of #154029 - xtqqczze:clear, r=joboet
RalfJung Mar 28, 2026
6aa297b
Rollup merge of #154185 - asder8215:no_threads_write_impl, r=joboet
RalfJung Mar 28, 2026
c2806b8
Auto merge of #154503 - RalfJung:rollup-DkU2JXL, r=RalfJung
bors Mar 28, 2026
5e8b573
`const_cmp` for `core::mem::Alignment`
GrigorenkoPV Mar 28, 2026
6fed7fe
`const_clone` for `core::mem::Alignment`
GrigorenkoPV Mar 28, 2026
eff9bf0
stabilize new RangeFrom type and iterator
pitaj Mar 3, 2026
66bfcc4
Panic in Hermit clock_gettime
stepancheg Mar 28, 2026
dd5edf8
Add doc links to `ExtractIf` of `BTree{Set,Map}` and `LinkedList`
GrigorenkoPV Mar 28, 2026
2d5ec2a
Rollup merge of #153380 - pitaj:stabilize-new_range_from_api, r=tgross35
GuillaumeGomez Mar 28, 2026
b12650d
Rollup merge of #153834 - N1ark:generic-float-intrinsics, r=tgross35,…
GuillaumeGomez Mar 28, 2026
d4a10e7
Rollup merge of #154043 - RalfJung:simd-min-max, r=Amanieu,calebzulaw…
GuillaumeGomez Mar 28, 2026
5b119b5
Rollup merge of #154320 - bend-n:trim_prefix_suffix_for_paths, r=Mark…
GuillaumeGomez Mar 28, 2026
9ffc738
update zulip link in `std` documentation
fee1-dead Mar 29, 2026
afe9f95
Merge ref '148adf223edb' from rust-lang/rust
Mar 29, 2026
0c41d3a
core: Destabilize beta-stable `RangeInclusiveIter::remainder`
tgross35 Mar 27, 2026
a65241b
Rollup merge of #153632 - Lars-Schumann:issue-153158, r=fee1-dead
JonathanBrouwer Mar 29, 2026
47fb587
Rollup merge of #154190 - Jules-Bertholet:nonfused, r=scottmcm
JonathanBrouwer Mar 29, 2026
52200b5
Rollup merge of #154512 - GrigorenkoPV:alignment/const, r=scottmcm
JonathanBrouwer Mar 29, 2026
5bf9cf7
Rollup merge of #154520 - GrigorenkoPV:doc/extract_if, r=JohnTitor
JonathanBrouwer Mar 29, 2026
f590b1c
core: Move `{RangeIter, RangeFromIter}::remainder` to `new_range_rema…
tgross35 Mar 27, 2026
805aca3
don't drop arguments' temporaries in `dbg!`
dianne Mar 19, 2026
c3b798c
Auto merge of #154459 - tgross35:destabilize-range-iter-remainder, r=…
bors Mar 29, 2026
0590054
Rollup merge of #154074 - dianne:dbg-temp-scopes, r=Mark-Simulacrum
JonathanBrouwer Mar 29, 2026
e83fd77
Rollup merge of #154322 - m4rch3n1ng:hash-map-macro, r=Mark-Simulacrum
JonathanBrouwer Mar 29, 2026
a8eb02e
Rollup merge of #154416 - vitkyrka:split-diag, r=Noratrieb
JonathanBrouwer Mar 29, 2026
04a9b1b
Rollup merge of #154486 - pthariensflame:patch-1, r=Mark-Simulacrum
JonathanBrouwer Mar 29, 2026
cc2b228
Rollup merge of #154518 - stepancheg:hermit-panic, r=Mark-Simulacrum
JonathanBrouwer Mar 29, 2026
cebf0ed
Rollup merge of #154530 - fee1-dead-contrib:push-syplyyvkpsol, r=Nora…
JonathanBrouwer Mar 29, 2026
a84f7e8
Merge ref '116458d0a5ae' from rust-lang/rust
Mar 30, 2026
5d3d394
compiler-builtins: Clean up features
tgross35 Jun 18, 2025
9572b31
Fix AtomicPtr::update's cfg gate
CAD97 Mar 31, 2026
f45d5d9
stabilize new Range type and iterator
pitaj Mar 4, 2026
75ea135
Don't use field initializers for libc::timespec
thesummer Mar 28, 2026
ee2e68c
Rollup merge of #142659 - tgross35:builtins-features, r=Amanieu
tgross35 Mar 31, 2026
7c4f3fa
Rollup merge of #154620 - pitaj:stabilize-new_range_api, r=tgross35
JonathanBrouwer Mar 31, 2026
f8e992e
Rollup merge of #150752 - thesummer:update-libc-0.2.179, r=tgross35
JonathanBrouwer Mar 31, 2026
5fe6e2a
Auto merge of #154637 - JonathanBrouwer:rollup-fGsU36o, r=JonathanBro…
bors Mar 31, 2026
db015c9
Auto merge of #154638 - JonathanBrouwer:rollup-oLBZ6Tr, r=JonathanBro…
bors Mar 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion alloc/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ bench = false

[dependencies]
core = { path = "../core", public = true }
compiler_builtins = { path = "../compiler-builtins/compiler-builtins", features = ["rustc-dep-of-std"] }
compiler_builtins = { path = "../compiler-builtins/compiler-builtins", features = ["compiler-builtins"] }

[features]
compiler-builtins-mem = ['compiler_builtins/mem']
Expand Down
55 changes: 31 additions & 24 deletions alloc/src/alloc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#[stable(feature = "alloc_module", since = "1.28.0")]
#[doc(inline)]
pub use core::alloc::*;
use core::mem::Alignment;
use core::ptr::{self, NonNull};
use core::{cmp, hint};

Expand All @@ -18,19 +19,24 @@ 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: NonNull<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: NonNull<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 +98,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 +118,14 @@ 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 { dealloc_nonnull(NonNull::new_unchecked(ptr), layout) }
}

/// Same as [`dealloc`] but when you already have a non-null pointer
#[inline]
#[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces
unsafe fn dealloc_nonnull(ptr: NonNull<u8>, layout: Layout) {
unsafe { __rust_dealloc(ptr, layout.size(), layout.alignment()) }
}

/// Reallocates memory with the global allocator.
Expand All @@ -132,7 +145,14 @@ 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 { realloc_nonnull(NonNull::new_unchecked(ptr), layout, new_size) }
}

/// Same as [`realloc`] but when you already have a non-null pointer
#[inline]
#[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces
unsafe fn realloc_nonnull(ptr: NonNull<u8>, layout: Layout, new_size: usize) -> *mut u8 {
unsafe { __rust_realloc(ptr, layout.size(), layout.alignment(), new_size) }
}

/// Allocates zero-initialized memory with the global allocator.
Expand Down Expand Up @@ -175,7 +195,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 @@ -206,7 +226,7 @@ impl Global {
// allocation than requested.
// * Other conditions must be upheld by the caller, as per `Allocator::deallocate()`'s
// safety documentation.
unsafe { dealloc(ptr.as_ptr(), layout) }
unsafe { dealloc_nonnull(ptr, layout) }
}
}

Expand Down Expand Up @@ -236,7 +256,7 @@ impl Global {
// `realloc` probably checks for `new_size >= old_layout.size()` or something similar.
hint::assert_unchecked(new_size >= old_layout.size());

let raw_ptr = realloc(ptr.as_ptr(), old_layout, new_size);
let raw_ptr = realloc_nonnull(ptr, old_layout, new_size);
let ptr = NonNull::new(raw_ptr).ok_or(AllocError)?;
if zeroed {
raw_ptr.add(old_size).write_bytes(0, new_size - old_size);
Expand Down Expand Up @@ -285,7 +305,7 @@ impl Global {
// `realloc` probably checks for `new_size <= old_layout.size()` or something similar.
hint::assert_unchecked(new_size <= old_layout.size());

let raw_ptr = realloc(ptr.as_ptr(), old_layout, new_size);
let raw_ptr = realloc_nonnull(ptr, old_layout, new_size);
let ptr = NonNull::new(raw_ptr).ok_or(AllocError)?;
Ok(NonNull::slice_from_raw_parts(ptr, new_size))
},
Expand Down Expand Up @@ -479,19 +499,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
9 changes: 9 additions & 0 deletions alloc/src/boxed/thin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -430,3 +430,12 @@ impl<T: ?Sized + Error> Error for ThinBox<T> {
self.deref().source()
}
}

#[cfg(not(no_global_oom_handling))]
#[unstable(feature = "thin_box", issue = "92791")]
impl<T> From<T> for ThinBox<T> {
#[inline(always)]
fn from(value: T) -> Self {
Self::new(value)
}
}
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
Loading
Loading