Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
10000 commits
Select commit Hold shift + click to select a range
37aaaea
Rollup merge of #156882 - nia-e:stable-allocator, r=clarfonthey
mu001999 Sep 23, 2026
7edf9b2
Rollup merge of #163018 - malezjaa:once_lazy_lock_get_unchecked, r=La…
mu001999 Sep 23, 2026
e6aa6f8
Rollup merge of #163171 - maxdexh:allocator-alignment-fit-docs, r=nia-e
mu001999 Sep 23, 2026
549bd95
Fix typo in std::sys::process::unix::unsupported::wait_status documen…
bushrat011899 Sep 23, 2026
9cf9205
Fix bignum build on 16-bit targets
amari-ca Sep 23, 2026
aff71b1
rename direct_const_arg! to gca!
khyperia Sep 23, 2026
ec0102a
Rollup merge of #163168 - alexcrichton:update-wasip3, r=JohnTitor
JonathanBrouwer Sep 23, 2026
3e9835d
Rollup merge of #163198 - khyperia:rename-gca, r=BoxyUwU
JonathanBrouwer Sep 23, 2026
a8fd981
Rollup merge of #163192 - bushrat011899:typo, r=JohnTitor
JonathanBrouwer Sep 23, 2026
3f4df34
Rollup merge of #163197 - amari-ca:amarica/fix-bignum-on-16-bit, r=tg…
JonathanBrouwer Sep 23, 2026
18e405b
std: split stack overflow module (duplicate)
joboet Sep 23, 2026
48a10e6
std: split stack overflow module (delete)
joboet Sep 23, 2026
600b1ab
std: split stack overflow module (format)
joboet Sep 23, 2026
cd9ab72
std: split stack overflow module
joboet Sep 23, 2026
b190b80
fix `test_mm_srav_epi64` shift direction
folkertdev Sep 23, 2026
a7c6b50
Merge pull request #2228 from folkertdev/better-simd-bitshift-tests
davidtwco Sep 23, 2026
0f73b32
Merge pull request #2231 from Kobzol/sync
folkertdev Sep 23, 2026
d2ec37d
Add `inline` attribute to `NonZero::from_str`
sorairolake Sep 23, 2026
83e3e25
std::thread::available_parallelism merging linux/android/freebsd version
devnexen Feb 2, 2024
e239070
Revert "remove no-longer-needed MaybeDangling from thread spawning"
RalfJung Sep 23, 2026
6e789c0
Rollup merge of #163216 - sorairolake:inline-nonzero-from-str, r=Dark…
jhpratt Sep 23, 2026
52c12f5
Rollup merge of #120589 - devnexen:cpuaff_fbsd_upd, r=clarfonthey
jhpratt Sep 23, 2026
a876679
Additional NonZero conversions
clarfonthey Aug 13, 2024
1e6d3ee
Simplify `core::cmp::{smallest, largest}` Implementation
bushrat011899 Aug 14, 2026
b800de8
Adding safety comment on the unsafe in BTreeMap drop
jakedrew Sep 23, 2026
21d612e
making clamp_magnitude functions const + adding clamp_magnitude to No…
Eleocraft Sep 24, 2026
3bd2837
Auto merge of #162361 - RalfJung:maybe-dangling-perf2, r=saethlin
bors Sep 24, 2026
b2fe2cc
Rollup merge of #161275 - bushrat011899:variadic_min_refactor, r=scot…
JonathanBrouwer Sep 24, 2026
e6f94de
Rollup merge of #163110 - clarfonthey:wasip2-module, r=alexcrichton
JonathanBrouwer Sep 24, 2026
b149db8
Auto merge of #163244 - JonathanBrouwer:rollup-zSB1Zy6, r=JonathanBro…
bors Sep 24, 2026
263ff2f
Stabilize `Result::into_{ok,err}`
theemathas Aug 25, 2026
2bb3708
Rollup merge of #163218 - folkertdev:stdarch-sync-2026-09-23, r=folke…
JonathanBrouwer Sep 24, 2026
066e3de
Auto merge of #163265 - JonathanBrouwer:rollup-RZQ8eQg, r=JonathanBro…
bors Sep 24, 2026
45a2d60
adding coretests and fixing docs
Eleocraft Sep 24, 2026
5f6b4fb
Tweak Layout::from_size_align_unchecked safety comment
ultrabear Sep 24, 2026
7c89257
moving div_ceil() to associated items macro
Eleocraft Sep 25, 2026
545e096
Rollup merge of #163292 - Eleocraft:move-div-ceil, r=clarfonthey
jhpratt Sep 25, 2026
d81f6bf
rename GCA features
khyperia Sep 25, 2026
617060e
Fix docs in core::slice
yttersian Sep 25, 2026
6bd7b09
Applying requested changes
Eleocraft Sep 25, 2026
e7079bd
Don't imply incorrect things about `Global` in the docs of `System`
maxdexh Sep 25, 2026
5b9df82
Add some docs to `Global`
maxdexh Sep 25, 2026
788042f
Fix maximum read/write/send length on non-{Mac, Windows} platforms
fs-rachel Sep 17, 2026
9c3f376
Comment that `dying_next` is too costly to inline
jakedrew Sep 25, 2026
3e09c65
Specialize `advance_back_by` like the forward version
cuviper Sep 25, 2026
1e2cc6c
Rollup merge of #161710 - theemathas:stab-conjure-zst, r=clarfonthey
jhpratt Sep 26, 2026
d004e9f
Rollup merge of #163332 - maxdexh:global-allocator-docs, r=clarfonthey
jhpratt Sep 26, 2026
e043682
Stabilize SyncView
tisonkun Sep 26, 2026
9de4416
Option, Result: not all arguments passed to map_or are eagerly evaluated
RalfJung Sep 26, 2026
4003b26
Rollup merge of #161791 - jakedrew:fix/Making_and_dropping_an_empty_B…
JonathanBrouwer Sep 26, 2026
67e839c
Guarantee 8 bytes of alignment of RawWakerVTable
orlp Jun 20, 2026
f79f856
Rollup merge of #150824 - sourcefrog:doc-current-exe, r=clarfonthey
JonathanBrouwer Sep 26, 2026
0e577cb
Rollup merge of #159564 - zachs18:fix-159358, r=clarfonthey
JonathanBrouwer Sep 26, 2026
97d4e6f
Rollup merge of #163366 - tisonkun:codex/stabilize-sync-view, r=clarf…
JonathanBrouwer Sep 26, 2026
424e8c4
Rollup merge of #163376 - RalfJung:map_or, r=hanna-kruppe
JonathanBrouwer Sep 26, 2026
0985869
Auto merge of #163386 - JonathanBrouwer:rollup-VqKqcjW, r=JonathanBro…
bors Sep 26, 2026
828623b
add automatically_derived documentation
conferatur Sep 26, 2026
f3dca52
Rollup merge of #158186 - orlp:rawwaker-vtable-align, r=clarfonthey
jhpratt Sep 26, 2026
f3849be
Auto merge of #163392 - jhpratt:rollup-Etsin1e, r=jhpratt
bors Sep 26, 2026
56cd6b9
Auto merge of #163325 - yttersian:core-slice-docs-fix, r=jhpratt
bors Sep 27, 2026
e9048c8
Merge ref 'c23137133458' from rust-lang/rust
Sep 27, 2026
13fa173
Use StaticAllocator in more places
Darksonn Sep 25, 2026
688e77b
Clarify some things in the docs of `Global`
maxdexh Sep 27, 2026
15a76b5
Rollup merge of #163394 - Darksonn:static-allocator-more, r=nia-e
JonathanBrouwer Sep 27, 2026
8f233cd
Implement Default for NumBuffer
tyilo Sep 27, 2026
1b56ec6
Align the fallback message in panic location examples
valentynkit Sep 27, 2026
6d6fa92
Implement forced keywords (`k#`)
fmease Sep 27, 2026
6b7ba7c
Auto merge of #161775 - fmease:kay-hash, r=petrochenkov
bors Sep 28, 2026
e1d8422
Rollup merge of #152972 - iAeternus:fix-vecdeque-partialeq-symmetry, …
jhpratt Sep 28, 2026
7dbb9b6
Rollup merge of #162536 - tyilo:num-buffer-default, r=Mark-Simulacrum
jhpratt Sep 28, 2026
8a08456
Rollup merge of #163141 - yilin0518:fallback-safety-docs, r=Mark-Simu…
jhpratt Sep 28, 2026
3ab7a7c
Auto merge of #163419 - jhpratt:rollup-GBSeJEM, r=jhpratt
bors Sep 28, 2026
a3bc19d
Merge ref '22697761c6a0' from rust-lang/rust
Sep 28, 2026
c45b6be
document safety requirements for atomic intrinsics
yilin0518 Sep 28, 2026
19375e6
Move `alloc::rc` into `alloc::rcs`
EFanZh Sep 28, 2026
2952c84
Rename `library/alloc/src/sync.rs` to `library/alloc/src/rcs/arc.rs` …
EFanZh Sep 28, 2026
ca1c382
Re-export `alloc::rcs::arc::*` in `alloc::sync`
EFanZh Sep 28, 2026
913280b
Merge ref 'd080e7dff1b0' (nightly-2026-09-28) from rust-lang/rust
bjorn3 Sep 28, 2026
dd8621c
nonzero doc: replacing tabs with spaces
Eleocraft Sep 28, 2026
23c0c9e
Rollup merge of #162915 - fs-rachel:fix-max-send-length, r=fs-rachel
JonathanBrouwer Sep 28, 2026
724a370
implement #![feature(gca_adts)]
khyperia Sep 28, 2026
34ec847
Add safety comments for alloc::str
yilin0518 Sep 28, 2026
b585294
Add .seek_read_buf_exact() to std::os::windows::fs::FileExt
json420 Sep 28, 2026
4ad3dec
add `Div` and `Mul` for `Complex<{float}>`
folkertdev Aug 28, 2026
9d65948
Stabilize vec_try_remove
petrak-at-canonical Sep 28, 2026
042628b
Auto merge of #129036 - clarfonthey:nonzero-conversions, r=nia-e
bors Sep 28, 2026
c48a8e6
Rollup merge of #161015 - tgross35:stabilize-funnel-shifts, r=nia-e
tgross35 Sep 29, 2026
02bed9c
Rollup merge of #161712 - theemathas:stab-into-ok-err, r=nia-e
tgross35 Sep 29, 2026
8068497
Rollup merge of #163427 - khyperia:gca-adts, r=BoxyUwU
tgross35 Sep 29, 2026
27f4ffa
Rollup merge of #163390 - conferatur:add-automatically-derived-attrib…
tgross35 Sep 29, 2026
449318f
Rollup merge of #163459 - petrak-at-canonical:vec-try-remove, r=hanna…
tgross35 Sep 29, 2026
7a09ad0
Merge ref '5d8937173e7c' from rust-lang/rust
Sep 29, 2026
6f44cea
Rollup merge of #162832 - folkertdev:complex-mul-div, r=tgross35
JonathanBrouwer Sep 29, 2026
17f4a83
Rollup merge of #163210 - joboet:split_stack_overflow, r=ChrisDenton
JonathanBrouwer Sep 29, 2026
da41b37
Rollup merge of #163331 - EFanZh:move-arc-and-rc-into-rcs, r=tgross35
JonathanBrouwer Sep 29, 2026
5187ba0
Rollup merge of #163183 - json420:seek_read_buf_exact, r=clarfonthey
JonathanBrouwer Sep 29, 2026
3b128a5
Add safety comments for alloc::string
yilin0518 Sep 29, 2026
fc707f6
Update expect messages in library/std/src/os/unix/net/ following styl…
literally-user Sep 26, 2026
5d76362
rename metadata_at → metadata (and metadata → self_metadata)
RalfJung Sep 23, 2026
9976fbe
Rollup merge of #163401 - maxdexh:global-allocator-docs-2, r=clarfonthey
JonathanBrouwer Sep 29, 2026
9adec39
Rollup merge of #163463 - yilin0518:fix_tidy_string, r=jhpratt
JonathanBrouwer Sep 29, 2026
faad667
Auto merge of #163479 - JonathanBrouwer:rollup-vXYZxKq, r=JonathanBro…
bors Sep 29, 2026
f10cbce
expose Rc::is_unique
malezjaa Sep 29, 2026
c3754e2
reflection: prefix reflection intrinsics with type_id
yara-blue Sep 15, 2026
55bd7ac
Auto merge of #163361 - cuviper:sync-advance_back_by, r=Darksonn
bors Sep 29, 2026
abf566e
Rollup merge of #163024 - RalfJung:dir-metadata-at, r=ChrisDenton
JonathanBrouwer Sep 29, 2026
f558478
Revert "Rollup merge of #120589 - devnexen:cpuaff_fbsd_upd, r=clarfon…
devnexen Sep 29, 2026
0221ad2
disable toctou test for qnx
tshepang Sep 24, 2026
a727880
gating f16 and f128 tests behind target_has_reliable
Eleocraft Sep 29, 2026
9f9441b
impl std::fs::{Home|Media}Dirs
CAD97 Aug 31, 2026
7c3a5a5
arch::breakpoint: update documentation
RalfJung Sep 29, 2026
0f57ad8
Auto merge of #163493 - JonathanBrouwer:rollup-B0z7Ynf, r=JonathanBro…
bors Sep 29, 2026
d003a1a
Mark Rc strong/weak count methods must_use
jeffs Sep 29, 2026
e70720a
update breakpoint asm test
RalfJung Sep 29, 2026
cbbedbd
run replace-version-placeholder
Mark-Simulacrum Sep 27, 2026
c0bf0e2
Step cfg(bootstrap)
Mark-Simulacrum Sep 29, 2026
06c5845
Rollup merge of #158936 - CAD97:dirs, r=aapoalas
jhpratt Sep 30, 2026
6f2c704
Rollup merge of #163502 - RalfJung:breakpoint, r=tgross35
jhpratt Sep 30, 2026
ff4a9ed
Rollup merge of #163498 - devnexen:revert_120589, r=clarfonthey
jhpratt Sep 30, 2026
9b3ba5e
Merge ref '5c543b0b8c73' from rust-lang/rust
Sep 30, 2026
fbecd0a
Attribute documentation for cfg_attr
kantnero Aug 3, 2026
cad796f
fix CI failure
kantnero Aug 3, 2026
fc0c5db
fix merge conflict
kantnero Aug 3, 2026
61da6f2
fix ci
kantnero Sep 30, 2026
0fe1668
Rollup merge of #163500 - tshepang:disable-toctu-test-on-qnx, r=Darksonn
JonathanBrouwer Sep 30, 2026
284d1e4
Auto merge of #163526 - JonathanBrouwer:rollup-tTSzdV5, r=JonathanBro…
bors Sep 30, 2026
ebbdb9f
Merge ref '5c543b0b8c73' (nightly-2026-09-30) from rust-lang/rust
bjorn3 Sep 30, 2026
3addcff
address feedback
kantnero Sep 30, 2026
87d4366
simplify and clarify fs::set_permissions_nofollow tests
RalfJung Sep 30, 2026
0f4f966
remove dead cfg_select! arm
CAD97 Sep 30, 2026
8cb0b2f
Re-bless tests / adjust for new Cargo lints
Mark-Simulacrum Sep 29, 2026
80608c7
Auto merge of #163532 - bjorn3:sync_cg_clif-2026-09-30, r=bjorn3
bors Oct 1, 2026
c7d6137
Auto merge of #163534 - RalfJung:miri, r=RalfJung
bors Oct 1, 2026
3cd3716
Provide better doc code example for UnixDatagram::bind_addr and UnixL…
asder8215 Oct 1, 2026
395c099
Rollup merge of #163279 - Eleocraft:clamp-magnitude-unsigned-limit, r…
jhpratt Oct 1, 2026
3f11433
Rollup merge of #159798 - kantnero:attribute-documentation, r=mejrs
jhpratt Oct 1, 2026
4fec47c
Rollup merge of #163375 - literally-user:better-expect-messages, r=Ch…
jhpratt Oct 1, 2026
3b0d9bb
Rollup merge of #163489 - malezjaa:expose-rc-is_unique, r=clarfonthey
jhpratt Oct 1, 2026
0a3763e
Rollup merge of #163568 - CAD97:spurious-cfg-select, r=JonathanBrouwer
jhpratt Oct 1, 2026
9f05243
Auto merge of #163583 - jhpratt:rollup-KbTrszs, r=jhpratt
bors Oct 1, 2026
dcfe224
Miri can do dirfd now
RalfJung Sep 30, 2026
0e7f1ae
`const impl PartialEq` for `f16b`
Jamesbarford Sep 30, 2026
83cf5e9
Make `AllocatorNightly` less clever
maxdexh Oct 1, 2026
1598e1b
Add `SplitPathsRef` implementation for motor
maxdexh Oct 1, 2026
2525105
Move media & home dirs tests to fs tests.
Oct 1, 2026
84f947d
Rollup merge of #163483 - Mark-Simulacrum:bootstrap-bump, r=oli-obk
JonathanBrouwer Oct 1, 2026
ad5ecf7
Rollup merge of #163580 - asder8215:unix_sockets_bind_addr_docs, r=Da…
JonathanBrouwer Oct 1, 2026
39667bc
Rollup merge of #163530 - Jamesbarford:bf16-const-cmp, r=folkertdev
JonathanBrouwer Oct 1, 2026
ac28598
Rollup merge of #163590 - maxdexh:allocator-nightly-sad, r=clarfonthey
JonathanBrouwer Oct 1, 2026
5ed349a
ctfe: Constify the `abort` intrinsic
tgross35 Oct 1, 2026
afc7170
core: Unstably constify `abort_immediate`
tgross35 Oct 1, 2026
168ce6e
Add tests for `()`, `!`, and `bool`'s size and alignment to `coretests`.
zachs18 Sep 30, 2026
8481148
Rollup merge of #163621 - tgross35:const-abort-immediate, r=RalfJung,…
jhpratt Oct 2, 2026
4b7f491
Rollup merge of #161904 - RalfJung:unwind-abi-compat, r=Mark-Simulacrum
jhpratt Oct 2, 2026
01ed6e5
Rollup merge of #163570 - zachs18:never-bool-size-align-test, r=tgross35
jhpratt Oct 2, 2026
c64242c
Add mul_add_relaxed methods for floating-point types
landsharkiest Oct 2, 2026
0d00e28
core: io: clean `unused_variables` lint under `no_io_statics`
ojeda Oct 2, 2026
cca3a59
Revert "doc: Fix external mention of signum() return value regarding …
Darksonn Oct 2, 2026
04ab730
Use 'evaluates to' wording
Darksonn Oct 2, 2026
1b8e2f3
reflection: move type_id intrinsics to intrinsics::reflection
yara-blue Sep 15, 2026
d4bf509
Fix typo
WiktorPrzetacznik Aug 31, 2024
d3ad68f
Introduce layout section in Saturating
WiktorPrzetacznik Aug 31, 2024
7e27e56
Distinguish `repr(C)` ZSTs from others in ABI compatibility rules
Jules-Bertholet Jun 16, 2026
1b5a160
Rollup merge of #151793 - landsharkiest:float_mul_add_relaxed-#151770…
JonathanBrouwer Oct 2, 2026
32b8edb
Rollup merge of #163010 - RalfJung:unix-dir-entry, r=Mark-Simulacrum
JonathanBrouwer Oct 2, 2026
14f05ef
Rollup merge of #163603 - yara-blue:reflection-reorder, r=oli-obk
JonathanBrouwer Oct 2, 2026
9b2d8ca
Rollup merge of #163635 - Darksonn:signum-nan, r=RalfJung
JonathanBrouwer Oct 2, 2026
5f0add1
updates the expect message in library/core/src/time.rs
kenta-afk Oct 2, 2026
cd8ae5e
fix: improve formatting of duration sum calculation for readability
kenta-afk Oct 2, 2026
88439ce
Fix capitalisation issues in fmt documentation
DeaconSteiner Oct 2, 2026
1baef91
Update the minimum external LLVM to 22
cuviper Sep 30, 2026
af7392c
intrinsics: Rename `abort` to `abort_immediate`
tgross35 Sep 30, 2026
931180e
Rollup merge of #163572 - cuviper:min-llvm-22, r=nikic
JonathanBrouwer Oct 2, 2026
9bc361f
Rollup merge of #129822 - WiktorPrzetacznik:docs-guarantees-update, r…
JonathanBrouwer Oct 2, 2026
d4dec65
Rollup merge of #157973 - Jules-Bertholet:distinguish-c-zst-docs, r=R…
JonathanBrouwer Oct 2, 2026
4be2385
Rollup merge of #163574 - tgross35:intrinsics-abort-rename, r=clarfon…
JonathanBrouwer Oct 2, 2026
40b29de
add Android support based on fallback path
RalfJung Sep 30, 2026
f81467e
Rollup merge of #163633 - ojeda:unused-variable-set_functions, r=John…
JonathanBrouwer Oct 3, 2026
85ea015
Stabilize CStr::display
clarfonthey Oct 3, 2026
455445d
c_str_alloc_error test: mention why this is mostly Miri-only
RalfJung Oct 3, 2026
1fb8dfd
Lower attributes for functions without bodies
JonathanBrouwer Sep 14, 2026
8560002
Add documentation for the and attributes
literally-user Oct 1, 2026
bd34332
Remove useless `.into()` calls
estebank Oct 3, 2026
69a3270
Fix extra spaces in integer format_into docs
cellrishi-code Oct 4, 2026
ffdadeb
Rollup merge of #162062 - valentynkit:docs/panic-info-location, r=Mar…
jhpratt Oct 4, 2026
f6be66a
Rollup merge of #163140 - yilin0518:fix_atomic_ops, r=Mark-Simulacrum
jhpratt Oct 4, 2026
10b3eb6
Rollup merge of #163342 - maxdexh:global-and-system-are-not-the-same,…
jhpratt Oct 4, 2026
39150d9
Rollup merge of #163445 - yilin0518:fix_untidy, r=Mark-Simulacrum
jhpratt Oct 4, 2026
53e6086
Rollup merge of #163503 - jeffs:must-use-strong-count, r=Mark-Simulacrum
jhpratt Oct 4, 2026
43f026a
Rollup merge of #163548 - RalfJung:set_permissions_nofollow-tests, r=…
jhpratt Oct 4, 2026
9384d13
Rollup merge of #163597 - maxdexh:motor-split-paths-ref, r=Mark-Simul…
jhpratt Oct 4, 2026
c65bfcf
Rollup merge of #163602 - sardok:sgx_disable_test_dirs, r=Mark-Simula…
jhpratt Oct 4, 2026
70ac113
Rollup merge of #163667 - DeaconSteiner:issue-159751-fmt, r=Mark-Simu…
jhpratt Oct 4, 2026
a3ebd19
Detect `movdir64b` and `movdiri` in `is_x86_feature_detected!`
jlpetz Oct 4, 2026
6dc9bfd
Revert "implement PartialEq<VecDeque<U>> for Vec<T>, &[T], &mut [T], …
clarfonthey Oct 4, 2026
b1651b5
Rollup merge of #163627 - literally-user:docs-repr-no_main_attribute,…
JonathanBrouwer Oct 4, 2026
aa1aebd
Rollup merge of #163694 - RalfJung:c_str_alloc_error, r=clarfonthey
JonathanBrouwer Oct 4, 2026
e7cce30
Rollup merge of #163711 - clarfonthey:c-str-display, r=JohnTitor
JonathanBrouwer Oct 4, 2026
4d876d7
Rollup merge of #163723 - estebank:remove-useless-into, r=chenyukang
JonathanBrouwer Oct 4, 2026
5fa5dc5
Rollup merge of #163742 - jlpetz:movdir64b-target-feature, r=folkertdev
JonathanBrouwer Oct 4, 2026
c2ac580
Rollup merge of #163752 - clarfonthey:revert-vecdeque-partialeq, r=cl…
JonathanBrouwer Oct 4, 2026
880d29a
Document panics
coolreader18 Sep 23, 2026
c069671
Replace type parameters with APIT
coolreader18 Sep 23, 2026
4dbe58b
Stabilize `debug_closure_helpers`
coolreader18 Sep 23, 2026
00ccee9
Rollup merge of #146099 - coolreader18:stabilize-debug_closure_helper…
jhpratt Oct 5, 2026
8624435
Use target_family = "wasm" instead of target_arch = "wasm32"
madsmtm Oct 5, 2026
0a80909
Add some comments and docs related to `AllocatorNightly`
maxdexh Oct 5, 2026
5de28f9
Update library/core/src/alloc/mod.rs
maxdexh Oct 5, 2026
6bbdb5c
oneshot `is_ready`
connortsui20 Feb 3, 2026
19198e8
Rollup merge of #163733 - cellrishi-code:fix-format-into-doc-spaces, …
JonathanBrouwer Oct 5, 2026
b84f1f4
Revert "[win][arm64] Disable FS tests that require symlinks"
dpaoliello Oct 5, 2026
6ba6007
Only create a symlink in recursive_rmdir if we have permissions to do so
dpaoliello Oct 5, 2026
015b1e8
Rollup merge of #163814 - maxdexh:allocator-daily, r=clarfonthey
JonathanBrouwer Oct 5, 2026
bdb697e
Rollup merge of #163835 - dpaoliello:symlink, r=RalfJung
jhpratt Oct 6, 2026
dd2ccc2
Auto merge of #163850 - jhpratt:rollup-BaXwXed, r=jhpratt
bors Oct 6, 2026
a97f7af
Run the generator from source root
Kobzol Oct 6, 2026
408204f
Adjust the adjustment to wasi TLS to no longer adjust
maxdexh Oct 5, 2026
49d97af
add `core::arch::powerpc::ppcf128`
folkertdev Aug 14, 2026
2dd9d61
Rollup merge of #163794 - madsmtm:target_family_wasm, r=alexcrichton
JonathanBrouwer Oct 7, 2026
6dc4c05
Rollup merge of #152557 - connortsui20:oneshot-is-ready, r=clarfonthey
JonathanBrouwer Oct 7, 2026
77cf244
Rollup merge of #157273 - veluca93:optimize-attribte, r=wesleywiser
JonathanBrouwer Oct 7, 2026
941edb8
Rollup merge of #163809 - maxdexh:destroy-the-locals, r=alexcrichton
JonathanBrouwer Oct 7, 2026
634a375
Auto merge of #156674 - xonx4l:port-stdarch-gen, r=Kobzol
bors Oct 8, 2026
181ba26
vexos: clear .bss from assembly
tropicaaal Oct 8, 2026
9b7789b
std: vexos: use mov rather than movs to clear bss
tropicaaal Oct 8, 2026
e345004
vexos: use post-indexed str over stm for clarity
tropicaaal Oct 8, 2026
ec07c53
std: remove unnecessary sysctl caching on FreeBSD
joboet Oct 8, 2026
0ea83f4
replace instances of NonNull::new(&mut x).expect(...) with NonNull::f…
Cheese-Space Oct 8, 2026
a2714fb
Rollup merge of #163924 - Cheese-Space:main, r=hanna-kruppe
JonathanBrouwer Oct 8, 2026
bc7dc9b
Rollup merge of #163960 - vexide:tropicaaal/asm-bss-clear, r=hanna-kr…
JonathanBrouwer Oct 8, 2026
4063f49
Don't rely on `Global` handing out dangling pointers
maxdexh Oct 9, 2026
103fafd
Make `NonNull::{read,write}_volatile` unstably const.
kpreid Oct 9, 2026
645e7b2
Rollup merge of #163666 - kenta-afk:kenta-afk/fix-expect, r=JohnTitor
JonathanBrouwer Oct 9, 2026
7fe6f80
Rollup merge of #164051 - kpreid:nonnull-volatile, r=clarfonthey
jhpratt Oct 10, 2026
7d1622e
Rollup merge of #154170 - mathisbot:stab_try_cast_align, r=clarfonthey
jhpratt Oct 10, 2026
699cc6e
Rollup merge of #163975 - joboet:freebsd_sysctl_cache, r=clarfonthey
jhpratt Oct 10, 2026
aeda848
Add documentation for the `crate_name` attribute
krokodeyu Oct 10, 2026
f44c60c
Auto merge of #164034 - maxdexh:global-alloc-dangling, r=clarfonthey
bors Oct 10, 2026
744799c
Rollup merge of #163434 - krokodeyu:document-crate-name-attribute, r=…
jhpratt Oct 10, 2026
d95c059
Auto merge of #164072 - jhpratt:rollup-vxzS1nR, r=jhpratt
bors Oct 10, 2026
05584f7
Replace `Unique` in `Box` with a `(NonNull, PhantomData)` wrapper
maxdexh Sep 15, 2026
ff9a924
Rollup merge of #162849 - maxdexh:nuke-unique-in-box, r=hanna-kruppe
JonathanBrouwer Oct 10, 2026
08f1157
Merge from 6f5da406b56c2db6607202b63daee73aa8c61297 with conflicts
Oct 13, 2026
883501b
Update toolchain to 2026-10-11
Oct 13, 2026
32c7566
Update Kani version to 08c1e7ca1bf9b3d988a7a2fe2b0a2034609a5d0f
Oct 13, 2026
862182e
Resolve subtree merge conflicts in nonzero.rs and non_null.rs
feliperodri Oct 13, 2026
bcb2330
Update raw_vec VeriFast proof for upstream dropping NonNull::into
feliperodri Oct 13, 2026
8ab6585
Bump Flux to 6769bb9c for nightly-2026-10-11 support
feliperodri Oct 14, 2026
afdcf10
Bump Kani to 6ce55b9 (kani#4964) to fix the aarch64 SVE codegen ICE
feliperodri Oct 14, 2026
b0e5151
Fix Kani Metrics log parser for current Kani output
feliperodri Oct 14, 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
4 changes: 2 additions & 2 deletions .github/workflows/flux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ on:
branches: [main]

env:
FLUX_VERSION: "849ef7c31ce06ec92e211050ac2f5bc8c543896d"
FIXPOINT_VERSION: "nightly-2026-07-20"
FLUX_VERSION: "6769bb9cbd1216380f542349494efafafd6104a3"
FIXPOINT_VERSION: "nightly"

jobs:
check-flux-on-core:
Expand Down
4 changes: 4 additions & 0 deletions library/alloc/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,7 @@ check-cfg = [
'cfg(no_rc)',
'cfg(no_sync)',
]

[lints.cargo]
# compiler-builtins is claimed unused?
unused_dependencies = "allow"
59 changes: 32 additions & 27 deletions library/alloc/src/alloc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,42 @@ unsafe extern "Rust" {
fn __rust_no_alloc_shim_is_unstable_v2();
}

/// The global memory allocator.
/// A wrapper for the global allocator.
///
/// This type implements the [`Allocator`] trait by forwarding calls
/// to the allocator registered with the `#[global_allocator]` attribute
/// if there is one, or the `std` crate’s default.
///
/// Note: while this type is unstable, the functionality it provides can be
/// accessed through the [free functions in `alloc`](self#functions).
#[stable(feature = "allocator_api", since = "CURRENT_RUSTC_VERSION")]
/// `Global` is not "the global allocator", but a wrapper for it.
/// If the global allocator used `Global`, it would call itself recursively.
/// To avoid this, `Global` does not implement [`GlobalAlloc`].
///
/// Similar to [`alloc`], [`dealloc`], and the other global allocation functions,
/// when and how calls are forwarded to the allocator registered with
/// `#[global_allocator]` is unspecified. See their safety docs for more information.
///
/// In particular, even if you know which allocator was registered
/// as the global allocator, calling it directly is not the same as calling
/// `Global`. You cannot deallocate memory from one using the other.
///
/// `Global` must be treated like an opaque allocator that only guarantees the contract
/// described in the docs of [`Allocator`], as well as the following:
/// * All instances of `Global` are [*equivalent*].
/// * Allocations from `Global` are only invalidated by calls to de-/reallocating functions.
/// If no such call is made, then the allocation will live for the rest of the program.
/// * The global allocation functions in the [`alloc`](self) module are equivalent to the
/// methods on `Global`, except that they disallow zero-sized allocations, and implicitly
/// ignore any returned excess size.
/// In particular, you may deallocate memory from [`alloc::alloc`](self::alloc) using
/// [`Global.deallocate`](Global::deallocate) and vice-versa.
///
/// Note that the current implementation of `Global` does not take advantage of
/// some features of [`Allocator`], such as zero-sized allocations (which currently
/// return a dangling pointer) and overallocating.
/// This may change in the future. You must not rely on it for correctness!
///
/// [*equivalent*]: Allocator#equivalent-allocators
#[stable(feature = "allocator_api", since = "1.100.0")]
#[derive(Copy, Debug)]
#[derive_const(Clone, Default)]
// the compiler needs to know when a Box uses the global allocator vs a custom one
Expand Down Expand Up @@ -539,7 +566,7 @@ impl Global {
}
}

#[stable(feature = "allocator_api", since = "CURRENT_RUSTC_VERSION")]
#[stable(feature = "allocator_api", since = "1.100.0")]
#[rustc_const_unstable(feature = "const_heap", issue = "79597")]
const unsafe impl Allocator for Global {
#[inline]
Expand Down Expand Up @@ -676,27 +703,5 @@ pub mod __alloc_error_handler {
}
}

/// Allocator marker trait that is implemented only on `Global`, except when
/// the allocator feature gate is enabled (in which case it is implemented
/// for all allocators).
///
/// This is to prevent stable code from e.g. constructing `Arc<T, NotGlobal>`
/// using the `From<Box<T, A>> for Arc<T, A>` impl.
///
/// Note that this trait cannot appear in specialization impls (even if not
/// specialized on).
///
/// This trait should be used as a bound whenever a function constructing
/// a type with an `#[unstable] A: Allocator = Global` parameter may be
/// callable for `A != Global`.
#[marker]
#[unstable(feature = "allocator_ext", issue = "163177", implied_by = "allocator_api")]
#[doc(hidden)]
pub trait AllocatorNightly: Allocator {}

#[unstable(feature = "allocator_ext", issue = "163177", implied_by = "allocator_api")]
#[unstable_feature_bound(allocator_ext)]
impl<A: Allocator + ?Sized> AllocatorNightly for A {}

#[unstable(feature = "allocator_ext", issue = "163177", implied_by = "allocator_api")]
impl AllocatorNightly for Global {}
118 changes: 97 additions & 21 deletions library/alloc/src/boxed.rs
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ use core::error::{self, Error};
use core::fmt;
use core::future::Future;
use core::hash::{Hash, Hasher};
use core::marker::{Tuple, Unsize};
use core::marker::{PhantomData, Tuple, Unsize};
#[cfg(not(no_global_oom_handling))]
use core::mem::MaybeUninit;
use core::mem::{self, SizedTypeProperties};
Expand All @@ -201,12 +201,12 @@ use core::ops::{
#[cfg(not(no_global_oom_handling))]
use core::ops::{Residual, Try};
use core::pin::{Pin, PinSafePointer};
use core::ptr::{self, NonNull, Unique};
use core::ptr::{self, NonNull};
use core::task::{Context, Poll};

#[cfg(not(no_global_oom_handling))]
use crate::alloc::handle_alloc_error;
use crate::alloc::{AllocError, Allocator, Global, Layout, StaticAllocator};
use crate::alloc::{AllocError, Allocator, AllocatorNightly, Global, Layout, StaticAllocator};
use crate::raw_vec::RawVec;
#[cfg(not(no_global_oom_handling))]
use crate::str::from_boxed_utf8_unchecked_in;
Expand All @@ -223,6 +223,71 @@ pub use iter::BoxedArrayIntoIter;
#[unstable(feature = "thin_box", issue = "92791")]
pub use thin::ThinBox;

/// An internal wrapper for the pointer + `PhantomData` inside a `Box`.
/// This type has no semantic meaning. It only exists because the layout of
/// `Box` is hard-coded into the compiler, and because moving the
/// auto trait impls to `Box` would cause regressions (#162850).
#[repr(transparent)]
struct BoxRaw<T: ?Sized> {
pointer: NonNull<T>,
_marker: PhantomData<T>,
}

unsafe impl<T: ?Sized + Send> Send for BoxRaw<T> {}
unsafe impl<T: ?Sized + Sync> Sync for BoxRaw<T> {}
impl<T: ?Sized + core::panic::UnwindSafe> core::panic::UnwindSafe for BoxRaw<T> {}
impl<T: ?Sized, U: ?Sized> CoerceUnsized<BoxRaw<U>> for BoxRaw<T> where T: Unsize<U> {}
impl<T: ?Sized, U: ?Sized> DispatchFromDyn<BoxRaw<U>> for BoxRaw<T> where T: Unsize<U> {}

impl<T: ?Sized> BoxRaw<T> {
/// # Safety
/// `ptr` must be non-null
#[inline]
const unsafe fn new_unchecked(ptr: *mut T) -> Self {
// SAFETY: Upheld by the caller
unsafe { BoxRaw { pointer: NonNull::new_unchecked(ptr), _marker: PhantomData } }
}

#[inline]
const fn cast<U>(self) -> BoxRaw<U> {
BoxRaw { pointer: self.pointer.cast(), _marker: PhantomData }
}

#[inline]
const fn as_non_null_ptr(self) -> NonNull<T> {
self.pointer
}

#[inline]
const fn as_ptr(self) -> *mut T {
self.pointer.as_ptr()
}

#[inline]
#[cfg(not(no_global_oom_handling))]
const fn dangling() -> Self
where
T: Sized,
{
BoxRaw { pointer: NonNull::dangling(), _marker: PhantomData }
}
}

impl<T: ?Sized> Clone for BoxRaw<T> {
fn clone(&self) -> Self {
*self
}
}
impl<T: ?Sized> Copy for BoxRaw<T> {}

#[expect(ineffective_unstable_trait_impl, reason = "See #164109")]
#[unstable(feature = "box_internals", issue = "none")]
impl<T: ?Sized> From<BoxRaw<T>> for NonNull<T> {
fn from(value: BoxRaw<T>) -> Self {
value.as_non_null_ptr()
}
}

/// A pointer type that uniquely owns a heap allocation of type `T`.
///
/// See the [module-level documentation](../../std/boxed/index.html) for more.
Expand All @@ -235,8 +300,8 @@ pub use thin::ThinBox;
// compiler or ICEs will happen.
pub struct Box<
T: ?Sized,
#[stable(feature = "allocator_api", since = "CURRENT_RUSTC_VERSION")] A: Allocator = Global,
>(Unique<T>, A);
#[stable(feature = "allocator_api", since = "1.100.0")] A: Allocator = Global,
>(BoxRaw<T>, A);

/// Monomorphic function for allocating an uninit `Box`.
#[inline]
Expand All @@ -248,6 +313,9 @@ pub struct Box<
#[cfg(not(no_global_oom_handling))]
#[rustc_const_unstable(feature = "const_heap", issue = "79597")]
const fn box_new_uninit(layout: Layout) -> *mut u8 {
if layout.size() == 0 {
return layout.dangling_ptr().as_ptr();
}
match Global.allocate(layout) {
Ok(ptr) => ptr.as_mut_ptr(),
Err(_) => handle_alloc_error(layout),
Expand Down Expand Up @@ -443,7 +511,7 @@ impl<T, A: Allocator> Box<T, A> {
/// let five = Box::new_in(5, System);
/// ```
#[cfg(not(no_global_oom_handling))]
#[stable(feature = "allocator_api", since = "CURRENT_RUSTC_VERSION")]
#[stable(feature = "allocator_api", since = "1.100.0")]
#[must_use]
#[inline]
pub fn new_in(x: T, alloc: A) -> Self {
Expand Down Expand Up @@ -676,7 +744,7 @@ impl<T, A: Allocator> Box<T, A> {
/// let c = Box::write(uninit, 6);
/// assert_eq!(*c, 6);
/// ```
#[stable(feature = "box_take", since = "CURRENT_RUSTC_VERSION")]
#[stable(feature = "box_take", since = "1.100.0")]
pub fn take(boxed: Self) -> (T, Box<mem::MaybeUninit<T>, A>) {
// SAFETY: Reading out an initialised value & leaving behind a
// box with uninit contents.
Expand Down Expand Up @@ -704,7 +772,7 @@ impl<T, A: Allocator> Box<T, A> {
/// assert_eq!(*new, 14);
/// ```
#[cfg(not(no_global_oom_handling))]
#[stable(feature = "smart_pointer_map", since = "CURRENT_RUSTC_VERSION")]
#[stable(feature = "smart_pointer_map", since = "1.100.0")]
pub fn map<U>(this: Self, f: impl FnOnce(T) -> U) -> Box<U, A> {
let (value, allocation) = Box::take(this);
let (raw, alloc) = Box::into_non_null_with_allocator(allocation);
Expand Down Expand Up @@ -1562,11 +1630,11 @@ impl<T: ?Sized, A: Allocator> Box<T, A> {
///
/// [memory layout]: self#memory-layout
/// [considerations for unsafe code]: self#considerations-for-unsafe-code
#[stable(feature = "allocator_api", since = "CURRENT_RUSTC_VERSION")]
#[stable(feature = "allocator_api", since = "1.100.0")]
#[inline]
pub unsafe fn from_raw_in(raw: *mut T, alloc: A) -> Self {
// SAFETY: Upheld by caller.
Box(unsafe { Unique::new_unchecked(raw) }, alloc)
Box(unsafe { BoxRaw::new_unchecked(raw) }, alloc)
}

/// Constructs a box from a `NonNull` pointer in the given allocator.
Expand Down Expand Up @@ -1615,7 +1683,7 @@ impl<T: ?Sized, A: Allocator> Box<T, A> {
///
/// [memory layout]: self#memory-layout
/// [considerations for unsafe code]: self#considerations-for-unsafe-code
#[stable(feature = "allocator_api", since = "CURRENT_RUSTC_VERSION")]
#[stable(feature = "allocator_api", since = "1.100.0")]
#[inline]
pub unsafe fn from_non_null_in(raw: NonNull<T>, alloc: A) -> Self {
// SAFETY: guaranteed by the caller.
Expand Down Expand Up @@ -1665,7 +1733,7 @@ impl<T: ?Sized, A: Allocator> Box<T, A> {
///
/// [memory layout]: self#memory-layout
#[must_use = "losing the pointer will leak memory"]
#[stable(feature = "allocator_api", since = "CURRENT_RUSTC_VERSION")]
#[stable(feature = "allocator_api", since = "1.100.0")]
#[rustc_const_unstable(feature = "const_heap", issue = "79597")]
#[inline]
pub const fn into_raw_with_allocator(b: Self) -> (*mut T, A) {
Expand Down Expand Up @@ -1723,7 +1791,7 @@ impl<T: ?Sized, A: Allocator> Box<T, A> {
///
/// [memory layout]: self#memory-layout
#[must_use = "losing the pointer will leak memory"]
#[stable(feature = "allocator_api", since = "CURRENT_RUSTC_VERSION")]
#[stable(feature = "allocator_api", since = "1.100.0")]
#[inline]
pub fn into_non_null_with_allocator(b: Self) -> (NonNull<T>, A) {
let (ptr, alloc) = Box::into_raw_with_allocator(b);
Expand Down Expand Up @@ -1869,7 +1937,7 @@ impl<T: ?Sized, A: Allocator> Box<T, A> {
/// Note: this is an associated function, which means that you have
/// to call it as `Box::allocator(&b)` instead of `b.allocator()`. This
/// is so that there is no conflict with a method on the inner type.
#[stable(feature = "allocator_api", since = "CURRENT_RUSTC_VERSION")]
#[stable(feature = "allocator_api", since = "1.100.0")]
#[inline]
pub fn allocator(b: &Self) -> &A {
&b.1
Expand Down Expand Up @@ -2024,7 +2092,9 @@ impl<T> Default for Box<[T]> {
/// Creates an empty `[T]` inside a `Box`.
#[inline]
fn default() -> Self {
let ptr: Unique<[T]> = Unique::<[T; 0]>::dangling();
let ptr: BoxRaw<[T]> = BoxRaw::<[T; 0]>::dangling();
// SAFETY: `[T; 0]` is a ZST, for which `dangling` is valid to turn into a `Box`,
// even after unsize coercion.
Box(ptr, Global)
}
}
Expand All @@ -2034,10 +2104,13 @@ impl<T> Default for Box<[T]> {
impl Default for Box<str> {
#[inline]
fn default() -> Self {
// SAFETY: This is the same as `Unique::cast<U>` but with an unsized `U = str`.
let ptr: Unique<str> = unsafe {
let bytes: Unique<[u8]> = Unique::<[u8; 0]>::dangling();
Unique::new_unchecked(bytes.as_ptr() as *mut str)
// SAFETY:
// - `[u8; 0]` is a ZST, for which `dangling` is valid to turn into a `Box`
// - Casting `[u8]` to `str` is correct
// - The empty byte slice is valid UTF-8
let ptr: BoxRaw<str> = unsafe {
let bytes: BoxRaw<[u8]> = BoxRaw::<[u8; 0]>::dangling();
BoxRaw::new_unchecked(bytes.as_ptr() as *mut str)
};
Box(ptr, Global)
}
Expand Down Expand Up @@ -2455,7 +2528,7 @@ impl<G: ?Sized + Coroutine<R> + Unpin, R, A: Allocator> Coroutine<R> for Box<G,
#[unstable(feature = "coroutine_trait", issue = "43122")]
impl<G: ?Sized + Coroutine<R>, R, A: Allocator> Coroutine<R> for Pin<Box<G, A>>
where
A: 'static,
A: StaticAllocator,
{
type Yield = G::Yield;
type Return = G::Return;
Expand Down Expand Up @@ -2490,7 +2563,7 @@ impl<E: Error, A: Allocator> Error for Box<E, A> {
}
}

#[stable(feature = "allocator_api", since = "CURRENT_RUSTC_VERSION")]
#[stable(feature = "allocator_api", since = "1.100.0")]
unsafe impl<T: ?Sized + Allocator, A: Allocator> Allocator for Box<T, A> {
#[inline]
fn allocate(&self, layout: Layout) -> Result<NonNull<[u8]>, AllocError> {
Expand Down Expand Up @@ -2541,6 +2614,9 @@ unsafe impl<T: ?Sized + Allocator, A: Allocator> Allocator for Box<T, A> {
unsafe { (**self).shrink(ptr, old_layout, new_layout) }
}
}
#[unstable(feature = "allocator_ext", issue = "163177", implied_by = "allocator_api")]
#[unstable_feature_bound(allocator_ext)]
impl<T: ?Sized + Allocator, A: Allocator> AllocatorNightly for Box<T, A> {}

#[unstable(feature = "random", issue = "130703")]
impl<R: core::random::Rng + ?Sized, A: Allocator> core::random::Rng for Box<R, A> {
Expand Down
13 changes: 11 additions & 2 deletions library/alloc/src/collections/btree/map.rs
Original file line number Diff line number Diff line change
Expand Up @@ -205,8 +205,17 @@ pub struct BTreeMap<
#[stable(feature = "btree_drop", since = "1.7.0")]
unsafe impl<#[may_dangle] K, #[may_dangle] V, A: AllocatorClone> Drop for BTreeMap<K, V, A> {
fn drop(&mut self) {
// ignore-tidy-undocumented-unsafe
drop(unsafe { ptr::read(self) }.into_iter())
// Skip `into_iter` for an empty map: `dying_next` is too costly to inline, so the
// empty drop isn't optimised away (see #161375).
if self.root.is_some() {
// SAFETY: `self` is not used after this and none of its fields are dropped again:
// `alloc` is `ManuallyDrop` and `root` has no drop glue.
drop(unsafe { ptr::read(self) }.into_iter())
} else {
// SAFETY: With no root there are no nodes to free, so only the allocator needs
// dropping. `self` is not used after this, and `alloc` is dropped only here.
unsafe { ManuallyDrop::drop(&mut self.alloc) }
}
}
}

Expand Down
2 changes: 1 addition & 1 deletion library/alloc/src/collections/btree/mem.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ pub(super) fn replace<T, R>(v: &mut T, change: impl FnOnce(T) -> (T, R)) -> R {
struct PanicGuard;
impl Drop for PanicGuard {
fn drop(&mut self) {
intrinsics::abort()
intrinsics::abort_immediate()
}
}
let guard = PanicGuard;
Expand Down
2 changes: 1 addition & 1 deletion library/alloc/src/collections/btree/split.rs
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ impl<K, V> Root<K, V> {
// A panic from a later `search_node` comparison would unwind out of
// that state and double-free the shared values (#158165), so abort
// instead of exposing it.
let guard = mem::DropGuard::new((), |()| intrinsics::abort());
let guard = mem::DropGuard::new((), |()| intrinsics::abort_immediate());

loop {
split_edge.move_suffix(&mut right_node);
Expand Down
Loading
Loading