Skip to content

Implement all mix/max functions in a (hopefully) more optimization amendable way#136307

Merged
bors merged 2 commits intorust-lang:masterfrom
WaffleLapkin:minminmin
Feb 1, 2025
Merged

Implement all mix/max functions in a (hopefully) more optimization amendable way#136307
bors merged 2 commits intorust-lang:masterfrom
WaffleLapkin:minminmin

Conversation

@WaffleLapkin
Copy link
Copy Markdown
Member

@WaffleLapkin WaffleLapkin commented Jan 30, 2025

Previously the graph was like this:

min -> Ord::min -> min_by -> match on compare() (in these cases compare = Ord::cmp)
                                      ^
                                      |
                                 min_by_key

now it looks like this:

min -> Ord::min -> `<=` <- min_by_key

min_by -> `Ordering::is_le` of `compare()`

(max* and minmax* are the exact same, i.e. they also use <= and is_le)

I'm not sure how to test this, but it should probably be easier for the backend to optimize.

r? @scottmcm
cc #115939 (comment)

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Jan 30, 2025
Comment thread library/core/src/cmp.rs Outdated
Comment thread library/core/src/cmp.rs Outdated
Comment thread library/core/src/cmp.rs Outdated
#[stable(feature = "cmp_min_max_by", since = "1.53.0")]
pub fn max_by_key<T, F: FnMut(&T) -> K, K: Ord>(v1: T, v2: T, mut f: F) -> T {
max_by(v1, v2, |v1, v2| f(v1).cmp(&f(v2)))
if f(&v1) <= f(&v2) { v2 } else { v1 }
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, my brain always thinks of this as

Suggested change
if f(&v1) <= f(&v2) { v2 } else { v1 }
if f(&v1) > f(&v2) { v1 } else { v2 }

flipping the operation instead of the blocks.

Meh, either way is fine.

Copy link
Copy Markdown
Member

@scottmcm scottmcm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's fine to not have a codegen test for this, though if you really wanted to you could probably make one with tuples, since those have lt and friends overridden separately. It'd be fragile, though, since #133984 and the LLVM upgrade are probably going to change our output.

So I think a couple of updated doctests would be nice, then you're good. I have some other comments, but those are all up to your discretion depending whether you think they're worth bothering.

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jan 30, 2025
Comment thread library/core/src/cmp.rs Outdated
- add tests for `a == b` where missing
- try to make all the tests more similar
- try to use more illustrative test values
`<` seems to be the "lucky one" for llvm
Comment thread library/core/src/cmp.rs
/// fn cmp(&self, other: &Self) -> Ordering { Ordering::Equal }
/// }
///
/// assert_eq!(cmp::min(Equal("v1"), Equal("v2")).0, "v1");
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: also include

Suggested change
/// assert_eq!(cmp::min(Equal("v1"), Equal("v2")).0, "v1");
/// assert_eq!(cmp::min(Equal("v1"), Equal("v2")).0, "v1");
/// assert_eq!(cmp::min(Equal("v2"), Equal("v1")).0, "v2");

for emphasis, because cmp::min("v1", "v2") == "v1" too.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The values were chosen after the function's argument names, this feels confusing...

Comment thread library/core/src/cmp.rs
/// fn cmp(&self, other: &Self) -> Ordering { Ordering::Equal }
/// }
///
/// assert_eq!(Equal("self").min(Equal("other")).0, "self");
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto here, for emphasis:

Suggested change
/// assert_eq!(Equal("self").min(Equal("other")).0, "self");
/// assert_eq!(Equal("self").min(Equal("other")).0, "self");
/// assert_eq!(Equal("other").min(Equal("self")).0, "other");

(though I guess the values work less well here)

@scottmcm
Copy link
Copy Markdown
Member

scottmcm commented Feb 1, 2025

Ok, this is already better, so my other thoughts aren't blocking. We can always improve the examples more later

@bors r+ rollup

@bors
Copy link
Copy Markdown
Collaborator

bors commented Feb 1, 2025

📌 Commit c5835cd has been approved by scottmcm

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Feb 1, 2025
bors added a commit to rust-lang-ci/rust that referenced this pull request Feb 1, 2025
…iaskrgr

Rollup of 6 pull requests

Successful merges:

 - rust-lang#130514 (Implement MIR lowering for unsafe binders)
 - rust-lang#135684 (docs: Documented Send and Sync requirements for Mutex + MutexGuard)
 - rust-lang#136307 (Implement all mix/max functions in a (hopefully) more optimization amendable way)
 - rust-lang#136360 (Stabilize `once_wait`)
 - rust-lang#136364 (document that ptr cmp is unsigned)
 - rust-lang#136374 (Add link attribute for Enzyme's LLVMRust FFI)

r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Feb 1, 2025
…iaskrgr

Rollup of 6 pull requests

Successful merges:

 - rust-lang#130514 (Implement MIR lowering for unsafe binders)
 - rust-lang#135684 (docs: Documented Send and Sync requirements for Mutex + MutexGuard)
 - rust-lang#136307 (Implement all mix/max functions in a (hopefully) more optimization amendable way)
 - rust-lang#136360 (Stabilize `once_wait`)
 - rust-lang#136364 (document that ptr cmp is unsigned)
 - rust-lang#136374 (Add link attribute for Enzyme's LLVMRust FFI)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit a56e85a into rust-lang:master Feb 1, 2025
@rustbot rustbot added this to the 1.86.0 milestone Feb 1, 2025
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Feb 1, 2025
Rollup merge of rust-lang#136307 - WaffleLapkin:minminmin, r=scottmcm

Implement all mix/max functions in a (hopefully) more optimization amendable way

Previously the graph was like this:

```
min -> Ord::min -> min_by -> match on compare() (in these cases compare = Ord::cmp)
                                      ^
                                      |
                                 min_by_key
```
now it looks like this:
```
min -> Ord::min -> `<=` <- min_by_key

min_by -> `Ordering::is_le` of `compare()`
```
(`max*` and `minmax*` are the exact same, i.e. they also use `<=` and `is_le`)

I'm not sure how to test this, but it should probably be easier for the backend to optimize.

r? `@scottmcm`
cc rust-lang#115939 (comment)
@scottmcm
Copy link
Copy Markdown
Member

scottmcm commented Feb 2, 2025

Out of curiosity, since everything else in the rollup seemed uninteresting but there were some perf changes:
@rust-timer build 2032576

(Not that the results were bad! This might have just actually showed up, which I wouldn't have guessed.)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (2032576): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

mean range count
Regressions ❌
(primary)
0.1% [0.1%, 0.1%] 1
Regressions ❌
(secondary)
0.4% [0.3%, 0.4%] 2
Improvements ✅
(primary)
-0.4% [-0.4%, -0.4%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.1% [-0.4%, 0.1%] 2

Max RSS (memory usage)

Results (primary 0.8%, secondary 2.3%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
4.7% [3.5%, 6.6%] 3
Regressions ❌
(secondary)
3.2% [1.4%, 6.3%] 8
Improvements ✅
(primary)
-3.0% [-4.4%, -1.2%] 3
Improvements ✅
(secondary)
-1.2% [-1.3%, -1.2%] 2
All ❌✅ (primary) 0.8% [-4.4%, 6.6%] 6

Cycles

This benchmark run did not return any relevant results for this metric.

Binary size

Results (primary -0.0%, secondary -0.0%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
0.2% [0.0%, 0.5%] 15
Regressions ❌
(secondary)
0.0% [0.0%, 0.0%] 18
Improvements ✅
(primary)
-0.1% [-0.4%, -0.0%] 36
Improvements ✅
(secondary)
-0.4% [-0.4%, -0.4%] 3
All ❌✅ (primary) -0.0% [-0.4%, 0.5%] 51

Bootstrap: 777.851s -> 778.832s (0.13%)
Artifact size: 328.84 MiB -> 328.84 MiB (0.00%)

@WaffleLapkin WaffleLapkin deleted the minminmin branch February 3, 2025 17:06
github-actions Bot pushed a commit to tautschnig/verify-rust-std that referenced this pull request Mar 11, 2025
2faa3f7c8b4 [create-pull-request] automated change
534f664479d Rollup merge of #137730 - RalfJung:checked_ilog_tests, r=tgross35
0009666d82c Rollup merge of #137673 - ChrisDenton:search-path-bug, r=dtolnay
ab8c0cfc5d8 checked_ilog tests: deal with a bit of float imprecision
f25513693c6 Rollup merge of #137551 - folkertdev:import-simd-intrinsics, r=RalfJung
ef22eba437f Fix Windows `Command` search path bug
ce4e90b25b9 Rollup merge of #137620 - SergioGasquez:fix/espidf-maybeunit, r=ChrisDenton
96922313a57 Rollup merge of #137197 - scottmcm:cmp-20, r=ibraheemdev
5479b2ad6ab make `simd_insert` and `simd_extract` `const fn`s
eb5654f2eae Rollup merge of #136187 - hkBst:patch-27, r=workingjubilee
cd635d994e0 Rollup merge of #137480 - fuzzypixelz:fix/124466, r=workingjubilee
4a53c0ae580 Rollup merge of #134585 - cyrgani:uninit_array, r=Amanieu
9d63c81d91e Rollup merge of #137304 - pitaj:rangebounds-is_empty-intersect, r=ibraheemdev
a4651968d1e Rollup merge of #137614 - xizheyin:issue-134874, r=cuviper
32760e6fb81 require trait impls to have matching const stabilities as the traits
b34926b7454 fix: attr cast for espidf
33f4731e738 Update some comparison tests now that they pass in LLVM20
e70b1ff3285 Do not use CString in the examples of CStr.
915269dc271 Use `.expect(..)` instead
5adeacff2e9 remove MaybeUninit::uninit_array
7705cdfbb1b add `IntoBounds::intersect` and `RangeBounds::is_empty`
869d022a1cf Rollup merge of #137311 - martn3:enable-f16-mips, r=tgross35
72dbd1c0a44 fix doc in library/core/src/pin.rs
30326222d56 Remove speculation on cause of error
d6a2f47fa48 Rollup merge of #137154 - thaliaarchi:wtf8-fast-paths, r=ChrisDenton
c44bf6092e6 Return error on unexpected termination in `Thread::join`.
fdd2b941388 Auto merge of #137594 - RalfJung:miri-sync, r=RalfJung
23d7eb68d9f Auto merge of #137608 - fmease:rollup-h4siso6, r=fmease
8f4472439c5 Rollup merge of #137515 - tgross35:update-builtins, r=tgross35
3488cddc017 Auto merge of #137571 - tgross35:rollup-i1tcnv1, r=tgross35
777eb99bac9 Enable `f16` for MIPS
54ff5f14eb4 Skip scanning for surrogates when not known valid
1aa165f13c3 disable a potentially bogus test on Miri
4deee2f6d22 Rollup merge of #137576 - goffrie:setvalzst, r=lcnr
1f29091cb16 Update `compiler-builtins` to 0.1.148
e075ffa20d0 Rollup merge of #137543 - petrochenkov:wintest, r=ChrisDenton
f479cf06a2d Rollup merge of #137516 - RalfJung:rustc_const_unstable-cleanup, r=Amanieu
9ae17c4ab0a Add fast path for displaying pre-validated Wtf8Buf
aeb606f73ca Merge from rustc
d1d90a7ac0b Don't doc-comment BTreeMap<K, SetValZST, A>
4c37e11f15a Rollup merge of #137489 - RalfJung:no-more-rustc_intrinsic_must_be_overridden, r=oli-obk
5cce5b7cf69 Rollup merge of #137349 - thaliaarchi:io-optional-methods/zkvm, r=Noratrieb
5bd07475269 Merge from rustc
62afeaef8dc Rollup merge of #137321 - aviraxp:patch-1, r=cuviper
da0d982d549 Rollup merge of #137109 - bend-n:knife, r=oli-obk
f14cd2458ca Merge from rustc
5a36578d0cc Simplify trait error message for CoercePointee validation
5abd4842766 Rollup merge of #136775 - robertbastian:patch-2, r=Amanieu
5c3316fe7f9 Merge from rustc
992429ab2d1 Merge from rustc
ec26d66a2d4 Merge from rustc
ef05336af4b Merge from rustc
672a79aee02 Merge from rustc
be9424d8607 Merge from rustc
0741a544fce remove some unnecessary rustc_const_unstable
2bc4b64227e Implement read_buf for zkVM stdin
bc3a61fc61b stabilize extract_if
3bf9c33a87e Rollup merge of #136668 - WaffleLapkin:from_utf8_mut, r=Amanieu
4f39af59827 Update string.rs
8eba2b6091d Rollup merge of #135933 - hkBst:patch-19, r=workingjubilee
de8f76701a7 Stabilize `core::str::from_utf8_mut`
fe32499093f Update string.rs
35e9fddcdbb Rollup merge of #134655 - GrigorenkoPV:hash_extract_if, r=cuviper
1b69fc2ffbc Explain how Vec::with_capacity is faithful
6223aa0fb89 Stabilize `hash_extract_if`
c7caf81fcc8 Rollup merge of #137483 - bend-n:😅, r=Noratrieb
f1fd901a0ca std: Fix another new symlink test on Windows
0272ab0ad12 Rollup merge of #137495 - madhav-madhusoodanan:feature-unstable-control-flow-into-value, r=jhpratt
e53e618a729 remove uses of rustc_intrinsic_must_be_overridden from standard library
58e14c5a08b Correct doc about `temp_dir()` behavior on Android
9a67325bd65 tidying up tidy
fd31454ed56 Rollup merge of #137194 - kornelski:ftls, r=tgross35
b468e6f5ef5 Rollup merge of #137297 - tgross35:update-builtins, r=tgross35
5d96c0eb7f4 rename sub_ptr 😅
aac9abe8d7d Rollup merge of #137484 - chenyukang:yukang-fix-sort-doc, r=Noratrieb
a648e8dae3a Added into_value const function to ControlFlow<T, T>
3038d7dc2b7 replaced the four occurrences of issue ="50547" in library/core/src/future/mod.rs with issue = "none"
f48be49f92a Rollup merge of #136826 - xizheyin:issue-136737, r=thomcc
0860a5bb780 Rollup merge of #136543 - RalfJung:round-ties-even, r=tgross35
8cbc0a92989 Rollup merge of #137482 - rust9x:win-file-open-truncate, r=ChrisDenton
ac72d17b959 Fix documentation for unstable sort
8ff19cd2688 Auto merge of #137237 - cuviper:stage0, r=Mark-Simulacrum
b996f44eb42 Rollup merge of #137393 - chorman0773:unbounded-shifts-stabilize, r=Amanieu
0cf580d229d Win: use existing wrappers for `SetFileInformationByHandle` in `File::open_native`
d301b900d7c Rollup merge of #137061 - progressive-galib:gen_future-closing#76249, r=ibraheemdev
89aab83adb0 Fix unbounded_shifts tests
27ce5417730 Stabilize `unbounded_shifts`
35c4cb8816d Rollup merge of #137383 - folkertdev:stabilize-unsigned-is-multiple-of, r=Noratrieb
be8323f6160 Use faster thread_local! for stdout
0261d2a2d59 Update `compiler-builtins` to 0.1.147
fb4e13bed34 fix by comments
1c34210df0c add stdarch compatibility hack
85c9853792b Rollup merge of #137388 - PaulDance:disable-rename-posix-semantics-tests-under-win7, r=ChrisDenton
8be8047c51d Remove outdated target `unexpected_cfgs`
adea8ad20df Rollup merge of #137121 - bend-n:master, r=Noratrieb
221385a917c stabilize `unsigned_is_multiple_of`
a54fda2b385 Use faster thread_local in current_thread_id()
11411181da1 remove assume_init in stack_overflow
549534e8ba1 make the new intrinsics safe
e7564768204 Rollup merge of #136910 - okaneco:sig_ones, r=thomcc
483de1dface Fix(lib/fs/tests): Disable rename POSIX semantics FS tests under Windows 7
b327b84b988 update `cfg(bootstrap)`
7df9d8c6bd0 Rollup merge of #135501 - tgross35:stdlib-dependencies-private, r=bjorn3
413a3310c0e stabilize (const_)ptr_sub_ptr
7c86b36c74b Highlight thread_local! const init in docs
f7b7aac866c Consistently using as_mut_ptr() and as_ptr() in thread
e459c9f24b6 intrinsics: unify rint, roundeven, nearbyint in a single round_ties_even intrinsic
4415d0742b5 Rollup merge of #137207 - petertodd:2025-add-track-caller-to-duration-div, r=jhpratt
fb387be63b8 Auto merge of #137371 - matthiaskrgr:rollup-3qkdqar, r=matthiaskrgr
0c1fbdb8c85 update version placeholders
a47d1610722 Replace some instances of `pub` with `pub(crate)`
48a14f65549 Replace mem::zeroed with mem::MaybeUninit::uninit for large struct in unix
1a4ad2c3913 Auto merge of #137397 - matthiaskrgr:rollup-ls2pilo, r=matthiaskrgr
6edaafa07dd Use `public-dependencies` in all sysroot crates
0c893c48e28 Auto merge of #136771 - scottmcm:poke-slice-iter-next, r=joboet
093b2dd2c7b Auto merge of #137192 - kornelski:windows-tls-lto, r=ChrisDenton
262b27961d7 Implement feature `isolate_most_least_significant_one` for integer types
e9bacf56aff Rollup merge of #137270 - QianNangong:master, r=ChrisDenton
25dc446e48e Add #[track_caller] to Duration Div impl
42e50993daa Rollup merge of #136089 - jwong101:box-default-debug-stack-usage, r=Amanieu
3193246955e Rollup merge of #137353 - thaliaarchi:io-optional-methods/wasi-stdin, r=alexcrichton
b5c451aceb2 Rollup merge of #134340 - Urgau:stabilize-num_midpoint_signed, r=scottmcm
41f44c0c2a3 Rollup merge of #137336 - riverbl:stabilise-os-str-display, r=tgross35
b8e78e4dd65 Implement read_buf for WASI stdin
1d2dfe5d1df Rollup merge of #136609 - mammothbane:master, r=scottmcm
efe7f5c8635 Stabilise `os_str_display`
f6853d3032f Rollup merge of #136148 - kpreid:type-str, r=joboet
3084f21ee06 core/net: IpAddr*::as_octets()
4c35ec344e3 Optionally add type names to `TypeId`s.
6df10f0d69d Auto merge of #137290 - matthiaskrgr:rollup-a7xdbi4, r=matthiaskrgr
47c13945bbd Rollup merge of #137228 - steffahn:one-coerces-to-supertypes-not-subtypes, r=the8472
45df460bc7e Auto merge of #137295 - matthiaskrgr:rollup-tdu3t39, r=matthiaskrgr
e977bf15ab6 Add real safety comments
c43b4a18dcc Remove obsolete MinGW ThinLTO+TLS workaround
93a7cf2a97a Fix `*-win7-windows-msvc` target since 26eeac1a1e9fe46ffd80dd0d3dafdd2c2a644306
0d3a9c03707 reduce `Box::default` stack copies in debug mode
dd04daec27b Stabilize `num_midpoint_signed` feature
fd1c0eb71ea Rollup merge of #136794 - cberner:stabilize, r=joshtriplett
1f0ce6c90cb Rollup merge of #137155 - thaliaarchi:wtf8-organize, r=ChrisDenton
aa859ac3694 Rollup merge of #137277 - m4rch3n1ng:stabilize-inherent-str-constructors, r=tgross35
013d2bbf3ce Go back to `Some` instead of transmuting to it.
4cdfcdc9eda Rollup merge of #136347 - allevo:patch-1, r=Amanieu
507792b5923 Rollup merge of #136923 - samueltardieu:push-vxxqvqwspssv, r=davidtwco
e3ff56ffacb stabilize `inherent_str_constructors`
46a1649e515 Save another BB by using `SubUnchecked` instead of a call to `arith_offset`
cbe0653d2ce Rollup merge of #136301 - hkBst:patch-33, r=thomcc
5d9388a665d Rollup merge of #136690 - Voultapher:use-more-explicit-and-reliable-ptr-select, r=thomcc
343b2f64bb3 Simplify `slice::Iter::next` enough that it inlines
9e5f0441451 Rollup merge of #134995 - DaniPopes:stable-const_slice_flatten, r=Amanieu
2a2dbaeef74 Rollup merge of #132268 - elichai:string_try_from_vec, r=Amanieu
2caf94f6291 Rollup merge of #120580 - HTGAzureX1212:HTGAzureX1212/issue-45795, r=m-ou-se
41361dac70c Use more explicit and reliable ptr select in sort impls
64c93ea3b67 Rollup merge of #137026 - GrigorenkoPV:integer_sign_cast, r=jhpratt
424699cf8d9 Synchronize platform adaptors for OsString/OsStr
dbd9cedd8df Remove ignored `#[must_use]` attributes from portable-simd
f92489246ed Impl TryFrom<Vec<u8>> for String
5ad759b763c Auto merge of #137235 - matthiaskrgr:rollup-2kjua2t, r=matthiaskrgr
202dbd1f737 Simplify control flow with while-let
ed9315df70a Rollup merge of #137214 - cyrgani:clippy_diagnostic_items, r=compiler-errors
3679c0befaf Improve WTF-8 comments
fcf29f1bbf4 Rollup merge of #137205 - thaliaarchi:remove-wasi-fileext-tell, r=alexcrichton
f0eef585628 Rollup merge of #137167 - martn3:reliable_f16_math-f16-erfc, r=tgross35
20fc20e346b Rollup merge of #136750 - kornelski:ub-bug, r=saethlin
b2a8d7a568b Fix typo in hidden internal docs of `TrustedRandomAccess`
aecf5dc60be Stabilize file_lock
41da80beaa4 Update library/std/src/fs.rs
f18a9df4f26 Improve instant docs
5c5b9457412 Stabilize const_slice_flatten
2194daa6b5a add MAX_LEN_UTF8 and MAX_LEN_UTF16 constants
5ddf2effc5c Stabilize (and const-stabilize) `integer_sign_cast`
00ab0520732 Rollup merge of #137126 - m4rch3n1ng:fix-inherent-str-docs, r=Amanieu
0fc401590d4 add last std diagnostic items for clippy
0bc1f50f46e Remove std::os::wasi::fs::FileExt::tell
37bce540536 Update fs.rs
127536c4152 Rollup merge of #136876 - joshtriplett:locking-might-not-be-advisory, r=Amanieu
d46c1158fd1 fix docs for inherent str constructors
0f003d5d543 Reorder "This lock may be advisory or mandatory." earlier in the lock docs
959937c3333 Clarify that locking on Windows also works for files opened with `.read(true)`
ffa405cf0d8 Document that locking a file fails on Windows if the file is opened only for append
2459763ecf6 Reword file lock documentation to clarify advisory vs mandatory
71651c380d1 Auto merge of #137164 - matthiaskrgr:rollup-dj5826k, r=matthiaskrgr
ea95884ae1b Auto merge of #137065 - jhpratt:rollup-ree9mej, r=jhpratt
bd34cdb4a5e Rollup merge of #137165 - thaliaarchi:file-tell, r=ChrisDenton
1b96604d651 Rollup merge of #137114 - ChrisDenton:error, r=Noratrieb
58f85ded087 Fix &&str and trailing commas in io::const_error!
058bf2127b2 Rollup merge of #136983 - ehuss:misc-2024-prep, r=tgross35
1647e58efa7 docs: fix broken intra-doc links that never worked
b1b5e298cf3 tests: Also gate `f16::erfc()` doctest with `reliable_f16_math` cfg
b513281f252 Make ub_check message clear that it's not an assert
c55966be8b2 Rollup merge of #136976 - jedbrown:jed/doc-boxed-deferred-init, r=tgross35
dc92bbb3d89 Rollup merge of #137101 - GrigorenkoPV:str-inherent-lint, r=Urgau
fa5189d50da Rollup merge of #137105 - zachs18:cow-derefpure-restrict, r=Nadrieril
73f44f78f59 Auto merge of #136324 - GrigorenkoPV:erf, r=tgross35
4c9761775a9 Rollup merge of #137062 - thaliaarchi:io-optional-methods/write, r=workingjubilee
2c71ad17347 Use tell for <File as Seek>::stream_position
14d691f418e Rollup merge of #136986 - ehuss:library-unsafe-fun, r=Noratrieb
ffe84fff3a9 Add an example for std::error::Error
335acee1020 Use io::const_error! when possible over io::Error::new
c6cbff9e0a0 Rollup merge of #134016 - zachs18:stable-const-str-split_at, r=Amanieu
6b40d8ad1fe Rollup merge of #136967 - DaniPopes:io-repeat-fill, r=joboet
d71a4644722 Rollup merge of #136844 - thaliaarchi:const-io-error, r=ChrisDenton
988870ffe34 invalid_from_utf8[_unchecked]: also lint inherent methods
290b6a60dab Restrict DerefPure for Cow<T> impl to T = impl Clone, [impl Clone], str.
27f347e0bc8 Rollup merge of #136978 - ChrisDenton:windows-bindgen, r=Amanieu
25187205ee9 Forward all default methods for I/O impls
98105f36f4d proc_macro: Apply unsafe_op_in_unsafe_fn
3bbbf42e07d Rollup merge of #136879 - kornelski:non1, r=Noratrieb
572414e74a7 std: Apply unsafe_op_in_unsafe_fn
71ce2bdb809 Rollup merge of #136749 - mzeitlin11:extend-asciichar, r=scottmcm
29c1eeff19c Fix safety of windows uwp functions
38e87f92a1d Rollup merge of #135687 - joseluis:feat-reexport_from_coroutine, r=scottmcm
9b22cb80d27 unwind: Apply unsafe_op_in_unsafe_fn
1705de8e70b panic_unwind: Apply unsafe_op_in_unsafe_fn
d0700abec83 panic_abort: Apply unsafe_op_in_unsafe_fn
6083784fc05 core: Apply unsafe_op_in_unsafe_fn
542a752c435 std: Apply deprecated_safe_2024
d47029e790d Implement `f{16,32,64,128}::{erf,erfc}`
f2bbc565dcd Rollup merge of #136886 - ehuss:remove-prelude-common, r=jhpratt
275c20c513d Windows: Update generated bindings to 0.59
1e64ed9c57a Add safe new to NotAllOnes
a81117646e6 Implement Extend<AsciiChar> for String
338454a8a27 re-export `core::iter::FromCoroutine`
93e381990b7 Auto merge of #136735 - scottmcm:transmute-nonnull, r=oli-obk
93c147f58b9 test: Apply deprecated_safe_2024
4fcfc289648 Rollup merge of #136052 - no1wudi:fix, r=workingjubilee
c08b2796eaf Rollup merge of #136992 - ehuss:update-backtrace, r=workingjubilee
2538dbc6ef0 std: Apply fixes for tail drop expressions
fd10bd261a5 Rollup merge of #136908 - mustartt:aix-mutex-destory-einval, r=joboet
d036e2ea0cb std: Apply rust_2024_incompatible_pat
50cba691b78 Rollup merge of #136904 - pitaj:range-into_bounds, r=tgross35
ff5f812a9e4 Auto merge of #134633 - GrigorenkoPV:get_disjoint_mut, r=cuviper
7f43e012253 Rollup merge of #136945 - samueltardieu:push-rsqlyknnvyqm, r=fmease
f2c42c9a031 alloc boxed: docs: use MaybeUninit::write instead of as_mut_ptr
cc3b4f3cb7d Const-stabilize `str::is_char_boundary` and `str::split_at(_mut)(_checked)`.
95dd71787b9 Use `slice::fill` in `io::Repeat` implementation
770553c6500 Remove the common prelude module
5e8e07f5431 `transmute` should also assume non-null pointers
280b371b0ed Correct comment for FreeBSD and DragonFly BSD in unix/thread
b435bb8fab2 Update backtrace
08f2576fd8c std: Apply dependency_on_unit_never_type_fallback
2e1f95046d8 Rollup merge of #136949 - ehuss:wasm-bench-time, r=jhpratt
02020fd5274 Rollup merge of #136818 - a1phyr:io_repeat_exact, r=jhpratt
c9596d6b46a std: Apply missing_unsafe_on_extern
71b655502aa Rollup merge of #136660 - compiler-errors:BikeshedGuaranteedNoDrop, r=lcnr
3132ff74a6b std: Apply unsafe_attr_outside_unsafe
b7b093a5e40 alloc: Apply missing_unsafe_on_extern
8927d3d66dd alloc: Apply unsafe_attr_outside_unsafe
e6d7f591547 alloc: Workaround hidden doctest line
cd108abdaef Migrate coretests to Rust 2024
bcf9e350328 library: Update rand to 0.9.0
e2ecb7d1da7 core: Apply unsafe_attr_outside_unsafe
59fb4eec0a0 Implement and use BikeshedGuaranteedNoDrop for union/unsafe field validity
5d46dccf34d Auto merge of #136897 - workingjubilee:revert-unfcped-stab, r=WaffleLapkin
6c3812a8dc1 expect EINVAL for pthread_mutex_destroy for aix
c6f1b6d70ca add `IntoBounds` trait
dbddb7b91c2 Stabilize `get_many_mut` as `get_disjoint_mut`
896960bafcf Add diagnostic item for `std::io::BufRead`
7e227b9cc0a Fix import in bench for wasm
60608970734 Rollup merge of #136699 - joboet:netaddr_from_inner, r=cuviper
58c91d43dc0 Implement `read*_exact` for `std:io::repeat`
bf0be1b4f5c Rollup merge of #136890 - saethlin:swap_nonoverlapping, r=RalfJung
4147cec2561 Auto merge of #136918 - GuillaumeGomez:rollup-f6h21gg, r=GuillaumeGomez
9b53cbb05d2 Rollup merge of #134090 - veluca93:stable-tf11, r=oli-obk
256c502d022 std: replace the `FromInner` implementation for addresses with private conversion functions
6fc9d804609 Change swap_nonoverlapping from lang to library UB
c6379d38bab Rollup merge of #136915 - eyelash:float-precision, r=workingjubilee
5591f8f2f8d Stabilize target_feature_11
91e69c8946e Auto merge of #136823 - matthiaskrgr:rollup-vp20mk1, r=matthiaskrgr
1928fc43e0a Rollup merge of #136354 - hkBst:patch-34, r=ibraheemdev
bd204869e9a Auto merge of #136851 - jhpratt:rollup-ftijn95, r=jhpratt
4322ecac0ed Rollup merge of #136874 - tgross35:likely-unlikely-tracking, r=jhpratt
26693e32414 library: amend revert of extended_varargs_abi_support for beta diff
bdd68eccd3e Rollup merge of #136107 - dingxiangfei2009:coerce-pointee-wellformed, r=compiler-errors
5ff8d7cf1f0 Rollup merge of #136875 - BoxyUwU:rdg-push, r=jieyouxu
4ed3c3e009b `f128` is quadruple-precision
4e37d766a2d Auto merge of #135701 - calebzulawski:sync-from-portable-simd-2025-01-18, r=workingjubilee
8426a69acd6 Rollup merge of #136246 - hkBst:patch-29, r=ibraheemdev
1b0a9ad9ba7 Update docs for impl keyword
3dad72c8530 Rollup merge of #136704 - benschulz:patch-1, r=ibraheemdev
1c3f1888b82 Change the issue number for `likely_unlikely` and `cold_path`
2c739e20e9e Revert "Stabilize `extended_varargs_abi_support`"
3890690d522 Merge from rustc
abc9673b439 `f16` is half-precision
a0650c42d97 include note on variance and example
2ed24026590 Rollup merge of #136672 - safinaskar:alloc-2025-02-07-09-10, r=cuviper
3e4df80b3e9 Improve examples for file locking
d57627f46ff Merge from rustc
72830f4eb3c Rollup merge of #136663 - WaffleLapkin:count-non-zero-ones, r=cuviper
9c157ba327e Fix long lines which rustfmt fails to format
62cabb84587 Rollup merge of #136714 - tgross35:update-builtins, r=tgross35
e11d62aae3d Reword doc comment on `CoercePointeeValidated`
1d6f47c07f8 Rollup merge of #136805 - RalfJung:miri-win-delete-self, r=Noratrieb
c90c822004e Merge commit '3383cfbd3572465febc7a8f816a46304373de46a' into sync-from-portable-simd-2025-01-18
ef09740694b library: doc: core::alloc::Allocator: trivial typo fix
16799a55ad1 stabilize `NonZero::count_ones`
cab9763ddfb Update `compiler-builtins` to 0.1.146
44782574ab9 block coerce_pointee_validated for stabilization
873be02f532 Rollup merge of #136705 - compiler-errors:edition-library, r=jhpratt
02adfe7cb12 ignore win_delete_self test in Miri
1dfcabf7e70 rename the trait to validity and place a feature gate afront
a0b6ec54ac3 Rollup merge of #136552 - ChrisDenton:option-find-handle, r=Mark-Simulacrum
cafca3be1e0 introduce CoercePointeeWellformed for coherence checks at typeck stage
16db876c02b Rollup merge of #136353 - purplesyringa:libtest-instant-wasm, r=Mark-Simulacrum
2feefb1ba98 Rollup merge of #136228 - hkBst:patch-28, r=Mark-Simulacrum
2b6e0b5cebf Auto merge of #136754 - Urgau:rollup-qlkhjqr, r=Urgau
8b1cc571f4c Auto merge of #136751 - bjorn3:update_rustfmt, r=Mark-Simulacrum
5c3257167bb Rollup merge of #135488 - GrigorenkoPV:vec_pop_if, r=jhpratt
b5c85f2286e Fix pattern matching mode changes and unsafe_op_in_unsafe_fn
a4d2882bd9c Use Option for FindNextFileHandle
8443daefc60 Rollup merge of #136099 - Kijewski:pr-rc-str-default, r=ibraheemdev
b41429a1de1 fix(libtest): Enable Instant on Emscripten targets
bfe81712864 Simplify Rc::as_ptr docs + typo fix
94627a7acd3 Rollup merge of #136724 - steffahn:asyncfn-non-fundamental, r=compiler-errors
ab77653dea1 Rollup merge of #136601 - compiler-errors:borrow-null-zst, r=saethlin
e913eba2cb7 Rustfmt
99148f7ff0b Stabilize `vec_pop_if`
96741b6d758 Mark extern blocks as unsafe
236345afe7a Rollup merge of #135696 - joboet:move_pal_io, r=Noratrieb
b10af806cc1 Rollup merge of #136710 - JakenHerman:jaken/iterator-docs, r=workingjubilee
90cab3802a5 Rename field in OnceWith from gen to make
a2f8502c001 Rollup merge of #136686 - bjoernager:master, r=jhpratt
4d9c35ff217 Mark link_section attr with unsafe
1ddaa63534d Rollup merge of #135945 - estebank:useless-parens, r=compiler-errors
c23ba293a2b Auto merge of #136713 - matthiaskrgr:rollup-sy6py39, r=matthiaskrgr
556a71a5ad3 Rollup merge of #136634 - bjoernager:const-mut-cursor, r=m-ou-se
df2b28f4cc2 Optimize `Rc::<str>::default()` implementation
0a8e0ae70d2 Make `AsyncFnOnce`, `AsyncFnMut`, `AsyncFn` non-`#[fundamental]`
babe720d8d5 Rollup merge of #136213 - erickt:fs, r=Mark-Simulacrum
487228111da occured -> occurred
f5cbf0b076e std: get rid of `sys_common::io`
73263e0c2c9 Document `Sum::sum` returns additive identities for `[]`
2668ab7df56 Clean up 'HashMap' and 'HashSet' docs;
faf1fa55cd2 Rollup merge of #134367 - WaffleLapkin:trait_upcasting_as_a_treat, r=compiler-errors
46d1a628f42 Rollup merge of #136682 - ChrisDenton:move-win-proc-tests, r=joboet
cc9f6150551 Rollup merge of #134679 - ChrisDenton:rm-readonly, r=Mark-Simulacrum
676f0dc6b88 Allow Rust to use a number of libc filesystem calls
485c78afbd9 std: move `io` module out of `pal`
a51f1336522 Rollup merge of #136635 - jieyouxu:base_port, r=joboet
d63c02feafb Windows: Test that deleting a running binary fails
405de076539 Rollup merge of #136615 - Ayush1325:uefi-net-unsupported, r=joboet
9c108e6ae99 Update platform information for remove_file
ed73b90f955 Windows: remove readonly files
8fd1be1fc92 Rollup merge of #136502 - yotamofek:pr/fmt-from-fn-must-use, r=dtolnay
1e966caca8a Rollup merge of #136152 - Urgau:stabilize-map_many_mut, r=joshtriplett
e7e091f280c Use `widening_mul`
a5a7aa57451 Rollup merge of #136630 - jieyouxu:render_tests, r=ChrisDenton
6f08a8baae5 Remove some unnecessary parens in `assert!` conditions
dbe679e7b92 Stabilise 'Cursor::{get_mut, set_position}' in 'const' scenarios;
6f5f4c6b45e remove use of `feature(trait_upcasting)` from core tests
fbb038cb3ba Move two windows process tests to tests/ui
625515aea76 tests(std/net): remove outdated `base_port` calculation
4212c244e13 sys: net: Add UEFI stubs
d1c9f09fa8e Rollup merge of #128045 - pnkfelix:rustc-contracts, r=oli-obk
27807262a03 Stabilize `HashMap::get_many_mut` as `HashMap::get_disjoint_mut`
57714491ddd Auto merge of #136613 - workingjubilee:rollup-ry6rw0m, r=workingjubilee
49980e97e80 tests(std): don't output to std{out,err} in `test_creation_flags` and `test_proc_thread_attributes`
fecb7bd1e46 Auto merge of #136409 - TDecking:mul_hi, r=Mark-Simulacrum
819ec8b3ff2 Rollup merge of #136555 - cramertj:split_off, r=dtolnay
86a08cf5c97 Auto merge of #135760 - scottmcm:disjoint-bitor, r=WaffleLapkin
5218d095293 Rollup merge of #136595 - thaliaarchi:hermit-unreachable-pub, r=Noratrieb
be6f2c1d2d9 Rollup merge of #136537 - tgross35:update-builtins, r=tgross35
5fb44eb49eb Rollup merge of #136566 - hkBst:patch-1, r=scottmcm
d62ea01a329 Fix unreachable_pub lint for hermit target
9b438c66ca7 Rollup merge of #136517 - m4rch3n1ng:inherent-str-constructors, r=jhpratt
413676690c7 Fix link in from_fn.rs
150cb0588b6 Rollup merge of #136449 - joboet:move_pal_net, r=ChrisDenton
ef227845f3c Rollup merge of #136418 - Ayush1325:command-env, r=jhpratt
a35e7dfdace Auto merge of #135265 - pascaldekloe:fmt-int-speed, r=tgross35,ChrisDenton
36061e0452f Auto merge of #136533 - jhpratt:rollup-s0ign8n, r=jhpratt
203b704fa31 Mark `std::fmt::from_fn` as `#[must_use]`
5d134c64b2d Rename rustc_contract to contract
6962454c646 Add OneSidedRangeBound to eliminate panic in `split_point_of`
15bcd0a5a8d Auto merge of #136534 - jhpratt:rollup-dnz57dq, r=jhpratt
08c3ce221b7 More PR feedback
ee844e70671 Update `compiler-builtins` to 0.1.145
a2827b06c26 specify a prim@slice in docs
ad2725f5d75 std: move network code into `sys`
6e9ac9b4622 uefi: process: Add support for command environment variables
300e8fc6f86 Rollup merge of #136289 - Pyr0de:oncecell-docs, r=tgross35
f4208ee75ff Rollup merge of #136334 - ricci009:primitivers, r=tgross35
b7bb312d222 Improve contracts intrisics and remove wrapper function
ac458f18cb6 Rename slice::take methods to split_off
dd30ea2ad34 Rollup merge of #136518 - Urgau:fn_ptr-public-bound, r=Noratrieb
45b4c7a0668 PR feedback
dcba615e5f3 implement inherent str constructors
1aa43ba6783 Rollup merge of #136167 - pitaj:new_range, r=Nadrieril
bdae382f34e Separate contract feature gates for the internal machinery
39089eef4bf Rollup merge of #136511 - joshtriplett:nonzero-cast-signed-unsigned, r=dtolnay
3c33169df45 Add note about `FnPtr` being exposed as public bound
d7242d63ffe Add `unchecked_disjoint_bitor` with fallback intrinsic implementation
514bab55d35 Rollup merge of #135621 - bjorn3:move_tests_to_stdtests, r=Noratrieb
394dcb3e051 Desugars contract into the internal AST extensions
a1746473dce Rollup merge of #136479 - RalfJung:dirent64, r=tgross35
a79b9bac5e8 Add `cast_signed` and `cast_unsigned` methods for `NonZero` types
f34447ba6d7 Express contracts as part of function header and lower it to the contract lang items
1366e7a2a0c Rollup merge of #136398 - pitaj:unsafecell_access, r=dtolnay
939915fc40e std::fs: further simplify dirent64 handling
fc5034db5f8 For NonZero impl macros, give unsigned impls access to the corresponding signed type
552162b9386 contracts: added lang items that act as hooks for rustc-injected code to invoke.
efb9264f7de add UnsafeCell direct access APIs
a53d530e7c2 Contracts core intrinsics.
7d6cbfd0321 Rollup merge of #136452 - RalfJung:miri-sync, r=RalfJung
5e3f612c6e5 Rollup merge of #136351 - Darksonn:coerce-pointee-docs, r=compiler-errors
346b1b9e4d3 no unsafe pointer and no overflowing_literals in fmt::Display of integers
872d2d5e201 Rollup merge of #136364 - hkBst:ptr_cmp_docs, r=tgross35
2dd6f1b954c Docs for f16 and f128: correct a typo and add details
36ee538e947 OnceCell & OnceLock docs: Using (un)initialized consistently
cbcd042fa02 primitive type migration from mod.rs to primitives.rs
a2f17b528ca implement unstable `new_range` feature
545037dfc1f Remove stabilized feature gate
51781333738 Rollup merge of #136434 - RalfJung:rustc_allowed_through_unstable_modules-deprecation-required, r=compiler-errors
dcd915af09a Merge from rustc
d60bdc00a40 Rollup merge of #136163 - uellenberg:driftsort-off-by-one, r=Mark-Simulacrum
239c1fe9c11 black_box integer-input on fmt benches
8fac9d94bdf Rollup merge of #136360 - slanterns:once_wait, r=tgross35
1414e14e849 std::range
4596929935a Move env modifying tests to a separate integration test
5fd1bb52045 Rollup merge of #136283 - hkBst:patch-31, r=workingjubilee
5376994956a rustc_allowed_through_unstable_modules: require deprecation message
85576a8adf6 Merge from rustc
2b9bf95ee7c Rollup merge of #136307 - WaffleLapkin:minminmin, r=scottmcm
9291bab54d7 Fix for SGX
57f8c67fa58 Rollup merge of #134272 - RalfJung:destabilize-rustc_encodable_decodable, r=oli-obk
682595d3679 Merge from rustc
71f0bd67237 Rollup merge of #135684 - ranger-ross:mutex-docs, r=joboet
b495363cf8d Fix benchmarking of libstd
bf36b6da300 Rollup merge of #136133 - hkBst:patch-23, r=ibraheemdev
a628f824f4d Merge from rustc
0495d281aea Move std::sync unit tests to integration tests
5e153c12d71 Merge from rustc
e5ad7c036b2 Move std::thread_local unit tests to integration tests
a668198c1a7 Move std::time unit tests to integration tests
b9146161549 Move std::path unit tests to integration tests
35d67c0c45a Move std::panic unit tests to integration tests
1baab4f2f66 Move std::num unit tests to integration tests
7c5f24af08d Move std float unit tests to integration tests
fc16a437ebd Move std::error unit tests to integration tests
28f5e19b58f Move std::env unit tests to integration tests
6b4756955a3 Rollup merge of #136296 - RalfJung:float-min-max, r=tgross35
60d61846b8f Auto merge of #136332 - jhpratt:rollup-aa69d0e, r=jhpratt
3183d2486aa Rollup merge of #136288 - joshtriplett:would-you-could-you-with-some-locks--would-you-could-you-in-some-docs, r=m-ou-se
97ffa18e8b7 Add documentation for derive(CoercePointee)
9ba61538858 document ptr comparison being by address
e889acbc44e Auto merge of #134824 - niklasf:int_from_ascii, r=ibraheemdev
e72e22d748c Auto merge of #134424 - 1c3t3a:null-checks, r=saethlin
f52f37b64aa Fix off-by-one error causing driftsort to crash
d045c6564e8 stabilize `once_wait`
7da926f4b8d Update encode_utf16 to mention it is native endian
566a5925c01 implement all min/max fns in terms of `<`/`is_lt`
53520b0e8c5 remove Rustc{En,De}codable from library and compiler
60ee85ff5e1 docs: Documented Send and Sync requirements for Mutex + MutexGuard
789f98920cd Fix sentence in process::abort
f5f5b66a6a0 float::min/max: mention the non-determinism around signed 0
4ada84a9be5 Rollup merge of #135414 - tgross35:stabilize-const_black_box, r=dtolnay
0dce309955f Rollup merge of #136300 - RalfJung:compare-and-swap, r=joboet
d49c94b7e1a Rollup merge of #136271 - Sky9x:debug-maybeuninit-footgun, r=tgross35
a5953ffe26b Insert null checks for pointer dereferences when debug assertions are enabled
477fe78bcef improve doc tests for (min/max/minmax).* functions
4daacfd4e5e make rustc_encodable_decodable feature properly unstable
7b0bae311a0 Stabilize `const_black_box`
696ed0b019e atomic: extend compare_and_swap migration docs
b526b38305c Rollup merge of #135852 - lukas-code:asyncfn-prelude-core, r=compiler-errors
57502ae8f45 Rollup merge of #135475 - Ayush1325:uefi-absolute-path, r=jhpratt
da7c5ba28ef Rollup merge of #136259 - hkBst:patch-30, r=thomcc
8d2b87f1012 Rollup merge of #135625 - c410-f3r:cfg-match-foo-bar-baz, r=tgross35,jhpratt
7358983940e Auto merge of #136248 - matthiaskrgr:rollup-leaxgfd, r=matthiaskrgr
6d9ab56fa76 Improve documentation for file locking
a3c624cdddd Implement `int_from_ascii` (#134821)
ba1a8d32f52 Remove minor future footgun in `impl Debug for MaybeUninit`
5cff2cbb997 Add `AsyncFn*` to core prelude
de79c4679bd uefi: Implement path
826fd52be60 Rollup merge of #136215 - btj:patch-1, r=cuviper
ef5c91b3b11 Cleanup docs for Allocator
109ac8f47de Auto merge of #136227 - fmease:rollup-ewpvznh, r=fmease
3b89126217e Rollup merge of #136092 - tbu-:pr_io_pipe_test, r=joboet
bacd65f90f9 Rollup merge of #135847 - edwloef:slice_ptr_rotate_opt, r=scottmcm
43f9d04b18b btree/node.rs: pop_internal_level: does not invalidate other handles
f079c8ac698 add inline attribute and codegen test
945cda6afc7 btree/node.rs: remove incorrect comment from pop_internal_level docs
7a07efab38f split slice::ptr_rotate into three separate algorithms, to hopefully help inlining
9d6cd040bfa optimize slice::ptr_rotate for compile-time-constant small rotates
338e97ae5d4 Auto merge of #136110 - RalfJung:miri-sync, r=RalfJung
ace9ceaeede Auto merge of #136116 - fmease:rollup-c8pk3mj, r=fmease
4d5a27623bd Rollup merge of #135876 - usamoi:mpmc-doc, r=tgross35
dae2af17933 Auto merge of #136203 - matthiaskrgr:rollup-1k0f44l, r=matthiaskrgr
603f0641f16 Auto merge of #135937 - bjorn3:separate_coretests_crate, r=jieyouxu,tgross35
2dc1920a6da [cfg_match] Document the use of expressions
f22a83346af Rollup merge of #136186 - Ayush1325:uefi-process-args-fix, r=nicholasbishop,Noratrieb
629a414e673 Test pipes also when not running on Windows and Linux simultaneously
2cb7f8e7b52 Rollup merge of #136012 - hkBst:patch-22, r=workingjubilee,tgross35
b315a0f3de9 Rollup merge of #135807 - jhpratt:phantom-variance, r=Amanieu
53898c04f20 Rollup merge of #136173 - taiki-e:c-char, r=tgross35
e8989e545ce uefi: process: Fix args
e474bddea42 Rollup merge of #135886 - hkBst:patch-14, r=workingjubilee
32193f9a947 Document powf and powi calls that always return 1.0
41c64eee9da Rollup merge of #135773 - hkBst:patch-10, r=tgross35
28e01c38bec Rollup merge of #136071 - wowinter13:clippy-add-diagnostic-items, r=flip1995
7b555b2f54f Update comments and sort target_arch in c_char_definition
cf42e055734 Rollup merge of #135805 - DiuDiu777:master, r=Noratrieb
72e67242a22 Rollup merge of #135869 - hkBst:patch-12, r=Noratrieb
2ff422c08af [Clippy] Add vec_reserve & vecdeque_reserve diagnostic items
c2d176b4f6f Rollup merge of #135367 - Urgau:unreach_pub-std-3, r=Noratrieb
3494f8f0c9b Fix platform-specific doc string for AtomicUsize::from_mut to be platform-independent
67df310f041 Rollup merge of #133829 - GrigorenkoPV:fetch_update_infallible, r=Noratrieb
352a163d96d Rollup merge of #136039 - nvanbenschoten:pin-typo, r=Amanieu
0c9a1eb5f29 Rollup merge of #135991 - no1wudi:master, r=thomcc
cd5fd526399 Auto merge of #136087 - jhpratt:rollup-tam1mzn, r=jhpratt
da5a6b9e97c Rollup merge of #135948 - bjorn3:update_emscripten_std_tests, r=Mark-Simulacrum
178314d41fd Merge from rustc
59f932e69d9 Rollup merge of #136079 - RalfJung:compiler-fence-example, r=jhpratt
97d526057d1 fix doc for std::sync::mpmc
38a7085ef95 Actually run the bstr test
3c5567b1b6e Update `std::io::{pipe, PipeReader, PipeWriter}` docs the new location
1d46984c30b Implement phantom variance markers
f190cc65ac6 Document purpose of closure in from_fn.rs more clearly
0cd822c2be6 Clarify WindowsMut (Lending)Iterator
45de455044f add missing allocator safety in alloc crate
d5bdbec687e alloc: add `#![warn(unreachable_pub)]`
513ce5be854 Implement `AtomicT::update` & `AtomicT::try_update`
08a8e379cd1 Rollup merge of #136005 - BLANKatGITHUB:library, r=RalfJung
b90df2b2421 Rollup merge of #135977 - nyurik:fix-fmt-options, r=joboet
99ceeecf2bf Rollup merge of #136019 - scottmcm:alias-unchecked-div, r=Mark-Simulacrum
f2855b7c4b0 Rollup merge of #134283 - epage:logfile, r=Amanieu
756e9987736 Merge from rustc
b3533525b98 Rollup merge of #135635 - tbu-:pr_io_pipe, r=joboet
bd0b64380d2 compiler_fence: fix example
4ef7ff23205 Update comment
85603b0989f Move `std::io::pipe` code into its own file
2730800bf90 Improve and expand documentation of pipes
6cca0e21fb5 Rollup merge of #133631 - flba-eb:add_nto_qnx71_iosock_support, r=workingjubilee
7a027f878c7 Add an `unchecked_div` alias to the `Div<NonZero<_>>` impls
f228279fdec Put all coretests in a separate crate
018b8cfbe65 add nto80 x86-64 and aarch64 target
8f906695c8f Add support for QNX 7.1 with io-sock on x64
17ea58476e3 Add new target for s