bors
7c2c3c0ded
Auto merge of #149063 - matthiaskrgr:rollup-6z23izv, r=matthiaskrgr
...
Rollup of 5 pull requests
Successful merges:
- rust-lang/rust#147887 (Improve the documentation of atomic::fence)
- rust-lang/rust#148281 (repr(transparent) check: do not compute check_unsuited more than once)
- rust-lang/rust#148484 (Fix suggestion for the `cfg!` macro)
- rust-lang/rust#149057 (`rust-analyzer` subtree update)
- rust-lang/rust#149061 (debug-assert FixedSizeEncoding invariant)
r? `@ghost`
`@rustbot` modify labels: rollup
2025-11-18 21:59:27 +00:00
Matthias Krüger
e6d08c6521
Rollup merge of #147887 - matthieu-m:task/lib-core-sync-atomic-fence-doc-improvement, r=Mark-Simulacrum
...
Improve the documentation of atomic::fence
Attempt to "fix" two flaws of the current documentation:
1. The over-emphasis of fence - fence synchronization, relegating atomic - fence and fence - atomic synchronization to second fiddle.
2. The lack of explanation as to how to properly perform atomic - fence and fence - atomic synchronization.
It does so by first making it clear that there are 3 different ways to use an atomic fence, then presenting a full example for each usecase, noting the particular position of the fence with regard to the atomic operation, and rounding up with generic notes.
2025-11-18 16:52:10 +01:00
bors
3d461af2a2
Auto merge of #149059 - GuillaumeGomez:rollup-s6m2mmy, r=GuillaumeGomez
...
Rollup of 4 pull requests
Successful merges:
- rust-lang/rust#148970 (std: sys: fs: uefi: Implement stat)
- rust-lang/rust#149020 (flush_delayed: add note about stashed diagnostics)
- rust-lang/rust#149026 (Add test for href of reexported enum variant)
- rust-lang/rust#149049 (compiletest: Use JSON "binary-format" to decide `//@ only-elf` and `//@ ignore-elf`)
r? `@ghost`
`@rustbot` modify labels: rollup
2025-11-18 14:07:46 +00:00
Guillaume Gomez
ff262bcb29
Rollup merge of #148970 - Ayush1325:uefi-fs-stat, r=joboet
...
std: sys: fs: uefi: Implement stat
- Implement std::fs::metadata function.
- Tested on qemu ovmf
2025-11-18 14:14:38 +01:00
bors
f9e7961506
Auto merge of #148151 - cjgillot:no-offset-of, r=scottmcm
...
Replace OffsetOf by an actual sum of calls to intrinsic.
This PR changes the way we compute the value of the `offset_of!` macro in MIR. The current implementation uses a dedicated MIR rvalue.
This PR proposes to replace it by an inline constant which sums calls to a new intrinsic `offset_of(variant index, field index)`. The desugaring is done at THIR building time, easier that doing it on MIR.
The new intrinsic is only meant to be used by const-eval. LLVM codegen will refuse to generate code for it.
We replace:
```rust
a = offset_of!(T, Variant1.Field1.Variant2.Field2);
```
By:
```rust
a = const {constant#n};
{constant#n}: usize = {
_1 = offset_of::<T>(index of Variant1, index of Field1);
_2 = offset_of::<U>(index of Variant2, index of Field2); // Where T::Variant1::Field1 has type U
_0 = _1 + _2
}
```
The second commit modifies intrinsic const checking to take `allow_internal_unstable` into account. The new intrinsic should only be called from stable `offset_of!` macro. The intrinsic itself is unstable, const-unstable, but `rustc_intrinsic_const_stable_indirect`.
Fixes rust-lang/rust#123959
Fixes rust-lang/rust#125680
Fixes rust-lang/rust#129425
Fixes rust-lang/rust#136175
r? `@ghost`
2025-11-18 10:55:59 +00:00
Ayush Singh
6106760f31
std: sys: fs: uefi: Implement stat
...
- Implement std::fs::metadata function.
- Tested on qemu ovmf
Signed-off-by: Ayush Singh <ayush@beagleboard.org >
2025-11-18 15:11:08 +05:30
Camille Gillot
aeb9332b28
Complete doc.
2025-11-18 00:10:04 +00:00
Camille Gillot
12e91cf814
Honor allow_internal_unstable for const intrinsics.
2025-11-18 00:10:03 +00:00
Camille Gillot
72444372ae
Replace OffsetOf by an actual sum.
2025-11-18 00:10:03 +00:00
Matthias Krüger
c3af6292ec
Rollup merge of #147077 - joboet:mov_kernel_copy_sys, r=ibraheemdev
...
std: move `kernel_copy` to `sys`
Part of rust-lang/rust#117276 .
The current organisation of the `kernel_copy` mechanism used to specialise `io::copy` on Linux necessitated circular links between the `io::copy` module and the implementation in `sys::pal::unix::kernel_copy`, as well as presenting an exception to the tidy PAL rule that forbids OS-based `#[cfg]`s outside of `sys` and `os`.
This PR fixes this by moving `kernel_copy` to `sys` (as per rust-lang/rust#117276 ) and returning a `CopyState` from that function specifying whether `io::copy` should use its fallback. The `kernel_copy` function on other platforms just unconditionally returns `CopyState::Fallback`.
2025-11-17 21:47:58 +01:00
Matthieu M
5431c6fd8e
Improve the documentation of atomic::fence
...
Attempt to "fix" two flaws of the current documentation:
1. The over-emphasis of fence - fence synchronization, relegating
atomic - fence and fence - atomic synchronization to second fiddle.
2. The lack of explanation as to how to properly perform atomic - fence
and fence - atomic synchronization.
It does so by first making it clear that there are 3 different ways to
use an atomic fence, then presenting a full example for each usecase,
noting the particular position of the fence with regard to the atomic
operation, and rounding up with generic notes.
2025-11-17 18:12:43 +01:00
Matthias Krüger
4e5c61e932
Rollup merge of #148504 - NeatNit:intlong, r=ibraheemdev
...
Fix link in c_longlong documentation
Ran across this mistake when reading [the documentation](https://doc.rust-lang.org/std/ffi/type.c_longlong.html ). I went through the other `.md` files in this directory and didn't spot any other errors.
**I did not check the output of this change** - I couldn't figure out how to get `cargo doc` to work and I figured it's not worth the distraction. It can't really go wrong, can it?
2025-11-17 18:07:32 +01:00
Matthias Krüger
5dd82e8ed9
Rollup merge of #145610 - GrigorenkoPV:char_max_len, r=Amanieu
...
Stabilize `char_max_len`
Tracking issue: rust-lang/rust#121714
r? t-libs-api
`@rustbot` label +needs-fcp -T-libs +T-libs-api
Closes rust-lang/rust#121714
2025-11-17 18:07:31 +01:00
joboet
d870149672
std: move kernel_copy to sys
2025-11-17 17:44:21 +01:00
bors
cc328c1238
Auto merge of #149013 - Zalathar:rollup-io1ddhc, r=Zalathar
...
Rollup of 11 pull requests
Successful merges:
- rust-lang/rust#148505 (add larger test for `proc_macro` `FromStr` implementations)
- rust-lang/rust#148752 (Constify `ManuallyDrop::take`)
- rust-lang/rust#148757 (Constify `mem::take`)
- rust-lang/rust#148855 (Error if an autodiff user does not set lto=fat)
- rust-lang/rust#148912 (add note to `lines` docs about empty str behavior)
- rust-lang/rust#148958 (Run codegen tests on a 32-bit target in PR CI)
- rust-lang/rust#148994 (Abi compatibility test cleanup)
- rust-lang/rust#148999 (Tweak Motor OS linker preset, fix `remote-test-server` for Motor OS)
- rust-lang/rust#149004 (compiletest: Avoid race condition in file deletion)
- rust-lang/rust#149008 (triagebot: remove jsha from notifications for rustdoc HTML)
- rust-lang/rust#149010 (compiletest: Remove the "wasm32-bare" alias for `wasm32-unknown-unknown`)
r? `@ghost`
`@rustbot` modify labels: rollup
2025-11-17 07:49:48 +00:00
Stuart Cook
47585c9f48
Rollup merge of #148912 - msmoiz:main, r=scottmcm
...
add note to `lines` docs about empty str behavior
This pull request adds a short note to the documentation for `str::lines` that describes the behavior of the resulting iterator when called on an empty string. I tripped over this a few days ago because I thought (incorrectly) that the iterator would return a single line with an empty string. I don't doubt that the actual behavior (return no lines) is the correct behavior, but in the absence of explicit documentation describing it, I came to the wrong conclusion about it and maybe others will too. If this is so obvious as to be not worth including, I'm happy to withdraw the pull request! Thanks for taking a look.
2025-11-17 16:41:03 +11:00
Stuart Cook
6fe5c1d544
Rollup merge of #148757 - nxsaken:const_mem_take, r=scottmcm
...
Constify `mem::take`
Feature: `const_default` (rust-lang/rust#143894 )
2025-11-17 16:41:02 +11:00
Stuart Cook
dd9b8e65a4
Rollup merge of #148752 - nxsaken:const_manually_drop_take, r=scottmcm
...
Constify `ManuallyDrop::take`
Feature: `const_manually_drop_take`
Tracking issue: rust-lang/rust#148773
This PR constifies `ManuallyDrop::take`.
2025-11-17 16:41:01 +11:00
bors
89fe96197d
Auto merge of #148478 - RalfJung:rotating-funnel, r=Mark-Simulacrum
...
use funnel shift as fallback impl for rotating shifts
That lets us remove this gnarly implementation from Miri and const-eval.
However, `rotate_left`/`rotate_right` are stable as const fn, so to do this we have to `rustc_allow_const_fn_unstable` a bunch of const trait stuff. Is that a bad idea? Cc `@oli-obk` `@fee1-dead`
2025-11-17 04:36:16 +00:00
Matthias Krüger
046e09096e
Rollup merge of #148995 - RalfJung:extract_if, r=the8472
...
add must_use to extract_if methods
Also, mention the `.for_each(drop)` pattern in the documentation. One can't always use `retain` with a negated predicate as that does not have a range argument.
r? `@the8472`
2025-11-16 20:40:25 +01:00
Matthias Krüger
cb94a8411c
Rollup merge of #148971 - purplesyringa:pre-exec-error-constructor, r=Mark-Simulacrum
...
Document Error::{new,other} as to be avoided in pre_exec
This is a mistake I've found in many projects on GitHub and made myself. It's obvious that `Error::new`/`Error::other` allocate when you look at their signatures, and it's obvious that the `pre_exec` closure shouldn't allocate, but when you're asked to write a closure that returns a specific type, you don't expect its main constructor to be problematic.
I've included the list of 71 affected projects in a spoiler, though I don't expect anyone to look through it closely. It includes popular projects like alacritty, pika-backup, rio, rpm-ostree, and headcrab, as well as many smaller ones. For the most part, the snippets I've found are careful to only call functions from `libc`, `nix`, or `rustix`, so it's not a case of general incompetence, but something that just slipped through the cracks.
This docs section is already cluttered, so I've kept it terse.
If this is merged, I'd like to mass-post issues to the affected projects linking to this PR as a centralized source of information and place for discussion. Are there any objections about that?
`@rustbot` label +A-docs +A-process +O-unix +T-libs-api
<details>
<summary>List of affected projects</summary>
Format: links (witness of multi-threading)
- https://github.com/0x4D44/mdmcp/blob/cccdfab32d5a203d03ccbc6ed261a2f4a4e6420d/mdmcpsrvr/src/sandbox.rs#L385 (`tokio::main`)
- https://github.com/alacritty/alacritty/blob/bf68154f9e4b91e5ba21dfb8151dbde23c46d47d/alacritty_terminal/src/tty/unix.rs#L250 (`thread::spawn`)
- https://github.com/AsterZephyr/polyagent/blob/6a7f5aced0335926941931ca965e5455890a7ce3/rust/agent-core/src/sandbox.rs#L257 (`tokio::main`)
- https://github.com/bootc-dev/containers-image-proxy-rs/blob/68673c836a91070811c17858183266e634f9719d/src/imageproxy.rs#L285 (`library`)
- https://github.com/delft-hyperloop/DH09-sw/blob/27f489edd297e9b93b8caa2c0b222ae8a9f1a70f/gs/station/src/tui/app.rs#L69 (`thread::spawn`)
- https://github.com/fcoury/oxproc/blob/85e8b510102d1caf7f15fd88694b4ad24bcd59b7/src/manager.rs#L55 (`tokio::runtime::Builder::new_multi_thread`)
- https://github.com/galqiwi/runner/blob/35d4756bc518b5947e0275e4251b674c8c354b62/src/run.rs#L75 (`tokio::main`)
- https://github.com/golemfactory/yagna/blob/31f5353e5532e947abb824adc30791583d01bf74/golem_cli/src/command/yagna.rs#L384 , https://github.com/golemfactory/yagna/blob/31f5353e5532e947abb824adc30791583d01bf74/test-utils/test-framework/src/yagna.rs#L103 (`actix_rt::main`)
- https://github.com/greshake/i3status-rust/blob/2d797c50702873fc8efe518156e204a0b3979fc8/src/subprocess.rs#L14 (`thread::Builder::new`)
- https://github.com/hattmo/projects/blob/626feea965cebd90490e3e16f2c4b0c6725212e1/opstation/src/manager/mod.rs#L50 (`none`)
- https://github.com/iamazy/nxshell/blob/ca3b94324831cdc8f8b533c1ff252bdeeba3acbf/crates/alacritty_terminal/src/tty/unix.rs#L256 (`thread::spawn`)
- https://github.com/ironcore-dev/FeOS/blob/9dee27162f5860991dc176bf2e0d9f948dc97d5b/feos/services/vm-service/src/vmm/ch_adapter.rs#L272 (`tokio::main`)
- https://github.com/jamesmcm/vopono/blob/d1aad75d9fc8959488e020f3ffea6ffd1f798609/vopono_core/src/network/application_wrapper.rs#L193 (`thread::spawn`)
- https://github.com/Kocoro-lab/Shannon/blob/05b0c5ca7b65b2d2c2c8be83906b37d5307718e7/rust/agent-core/src/sandbox.rs#L261 (`tokio::main`)
- https://github.com/kolloch/zack/blob/2244f29a74f74401abd8869c50c7d868afd656b9/zaun/src/lib.rs#L157 (`library`)
- https://github.com/MaxVerevkin/wlr-which-key/blob/179261a45867544f2b3c25871b8ef77c6f9bdf43/src/main.rs#L532 (`none`)
- https://github.com/openanolis/cryptpilot/blob/8deab3eee1d6488f6578f6284d0494c70ce7f6b4/src/provider/mod.rs#L228 (`tokio::main`)
- https://github.com/pantsbuild/pants/blob/e5ee289fc67a02a8d011f3fd160e8544727bd613/src/rust/process_execution/children/src/lib.rs#L44 (`tokio::main`)
- https://github.com/pika-backup/pika-backup/blob/297d21a2b02dc7230c2d8e7cf86289d25ba82de1/pika-backup/src/utils.rs#L171 (`library`)
- https://github.com/proxmox/pve-xtermjs/blob/1c92330cccb21fb65abcff6e35848b712592dccb/termproxy/src/main.rs#L290 (`none`)
- https://github.com/rand/mnemosyne/blob/3db85ed0bde68f25c38fb4a77c6cac50fa638d52/src/daemon/mod.rs#L181 , https://github.com/rand/mnemosyne/blob/3db85ed0bde68f25c38fb4a77c6cac50fa638d52/src/daemon/orchestration.rs#L204 (`tokio::main`)
- https://github.com/raphamorim/rio/blob/c0d687a3a1a439dbe81405d805c3dc191c90c45f/teletypewriter/src/unix/mod.rs#L551 (`library`)
- https://github.com/rawkode/cuenv/blob/2e76ab93b0faa25a53094406e7f5f1ca15e32068/crates/security/src/access_restrictions.rs#L379 (`thread::spawn`)
- https://github.com/reubeno/brush/blob/b1a76480bf000bb2d351b65c2012eb06f88fa0ae/brush-core/src/sys/unix/commands.rs#L64 (`tokio::runtime::Runtime::new()`)
- https://github.com/sebosp/chartacritty/blob/b2c19ee7836ca3d939fff045cad93182749cc0ea/alacritty_terminal/src/tty/unix.rs#L250 (`thread::spawn`)
- https://github.com/skanehira/ghost/blob/ad500f9fb47b7266e6d5989b0232881efe1bfa87/src/app/process.rs#L82 (`tokio::main`)
- https://github.com/coreos/rpm-ostree/blob/0ad2ee53f3c2d77bc4adfd618d865e919c943865/rust/src/bwrap.rs#L100 (`thread::spawn`)
- https://github.com/zerocore-ai/microsandbox/blob/9d334572a821775070de68d7cb20f1b2b65da9c3/microsandbox-utils/lib/runtime/supervisor.rs#L131 (`tokio::main`)
- https://github.com/willfindlay/bpfcontain-rs/blob/eb2cd826b609e165d63d784c0f562b7a278171d2/src/subcommands/run.rs#L62 (`library`)
- https://github.com/willothy/sesh/blob/c013dda71e69d59de3e23c08aa7fc4f71c8e087c/shared/src/pty.rs#L216 (`tokio::main`)
- https://github.com/AiTerminalFoundation/ai-terminal/blob/33618aedf66229ee5075519640344fef44b058e1/ai-terminal/src-tauri/src/command/core/execute_command.rs#L388 (`thread::spawn`)
- https://github.com/Toromino/chromiumos-platform2/blob/97e6ba18f0e5ab6723f3448a66f82c1a07538d87/os_install_service/src/util.rs#L92 (`thread::spawn`)
- https://github.com/jimmyff/nixfiles/blob/462d487680d91b25a74f69ce2509e519504ea5de/scripts/flitter/flitter.rs#L455 (`tokio::main`)
- https://github.com/simonrw/dap-gui/blob/5d073ff0ea4e99ba94af6c0137c089418ead5298/crates/server/src/debugpy.rs#L43 (`thread::spawn`)
- https://github.com/Team-Atlanta/aixcc-afc-atlantis/blob/ef3425da2bc8951afcfe419913e88b064eb3bcf0/example-crs-webservice/crs-multilang/uniafl/src/concolic/executor/symcc/symcc.rs#L216 , https://github.com/Team-Atlanta/aixcc-afc-atlantis/blob/ef3425da2bc8951afcfe419913e88b064eb3bcf0/example-crs-webservice/crs-multilang/uniafl/src/concolic/executor/symcc/symqemu.rs#L259 (`thread::spawn`)
- https://github.com/nullpo-head/dbgee/blob/e2a34f3271ee7e100eeccd8e00f8a50729ef0f1a/dbgee/src/os/linux.rs#L162 (`thread::spawn`)
- https://github.com/KingBright/training_manager/blob/22e54166ed4e153e05b6902d7d8661a6a4b5e31a/src/task_manager.rs#L87 (`tokio::main`)
- https://github.com/SparkyTD/ovpn/blob/c55e2945776ab0da0616707315141a5a04c4129c/ovpnd/src/session_manager.rs#L32 (`tokio::main`)
- https://github.com/FulanXisen/like/blob/e5b6543e8f1729e410439e1e50ceed1fdc9fddc2/like-strace/src/main.rs#L51 (`none`)
- https://github.com/patrickdappollonio/dotenv/blob/5ec161045b21c5548f867cae637bea64bea59550/src/main.rs#L166 (`none`)
- https://github.com/jefflouisma/KasmVNCPlus/blob/765a77371645cbbba5b639f49591c251aa97f363/novnc_recorder/src/ffmpeg.rs#L11 (`thread::spawn`)
- https://github.com/xlsynth/xlsynth-crate/blob/02967d938910cf23a09e93ffb3284e50c1e11d7d/xlsynth-driver/src/prover.rs#L474 (`thread::spawn`)
- https://github.com/M00NLIG7/pandoras_box/blob/d2dcfff230426688af6d6770899d9865d27b5733/rustrc/src/stateful_process.rs#L37 (`tokio::main`)
- https://github.com/bendiksolheim/term/blob/9906f5c5a0115fc330ac6c56e947d41c4ad78545/src/term/term.rs#L155 (`async_std::task::spawn`)
- https://github.com/yskszk63/ssssh/blob/9c03e1d7bab2b1cdc52892d4c28e11daf639bd94/examples/bash.rs#L87 (`tokio::main`)
- https://github.com/jarhodes314/tcp-buffer-test/blob/63c366f5c1dd940f9a392fc73be653c0c0d81b4c/src/main.rs#L281 (`tokio::main`)
- https://github.com/luser/spawn-ptrace/blob/d29c538c0c81ac1d62f19cee8be48e4ab0926392/src/lib.rs#L59 (`library`)
- https://github.com/OSH-2020/x-chital/blob/fadcc96868b619f4463c95edd01b71f23fb20c13/rvisor/src/sentry/platform/ptrace.rs#L21 (`none`)
- https://github.com/sbstp/supermon/blob/3353fad862970eb54c293c63dda9980539e1ac0b/src/reactor.rs#L76 (`thread::spawn`)
- https://github.com/headcrab-rs/headcrab/blob/5a420c5da3f51196cd991680bb2b3fded6ce7033/src/target/unix.rs#L55 (`library`)
- https://github.com/taoky/greenhook/blob/2a69aa432ab7fd4eee68eea2a2b4dbec845165cc/src/lib.rs#L430 (`thread::spawn`)
- https://github.com/saltnpepper97/snug/blob/b59df7f112f059f144c7a32c00bd8ad73a7d584d/src/process.rs#L89 (`thread::spawn`)
- https://github.com/regiontog/WebDM/blob/43b557295316668a975466354d86703f7ad3dd2d/src/main.rs#L488 (`gtk`)
- https://github.com/KailasMahavarkar/rustbox/blob/c27801cc479c75fec6c12a08272d507793769871/rustbox/src/executor.rs#L226 (`thread::spawn`)
- https://github.com/roboplc/virtual-terminal/blob/967e6c9dea5455c7f7f3b9276b88abb445009a3a/src/lib.rs#L224 (`library`)
- https://github.com/nui/caco3/blob/ce093f81c6a57dd9172894e7d5ab28d2984f5cc8/caco3-pty/src/nixpty.rs#L67 (`library`)
- https://github.com/nohackjustnoobb/Macro-Deck-Driver/blob/531421e41266ca952cf7c62644da0194877c1e24/src/cli/background_start.rs#L69 (`thread::spawn`)
- https://github.com/ManishaChavva/a653rs-linux/blob/1b2830594519d9eff3779f6cd22795dbe14f8d54/hypervisor/src/hypervisor/partition.rs#L258 (`thread::spawn`)
- https://github.com/rhinos0608/codecrucible-synth/blob/7c7d5fb7743116a2a94c3156dee43439675a4e2e/rust-executor/src/executors/command.rs#L422 (`library`)
- https://github.com/Nughm3/sandbox/blob/5146a95e29b198b85c496077dc096bbe1e882d23/src/lib.rs#L73 (`library`)
- https://github.com/naverwhale/whaleos-platform2/blob/166e825c8a43753dda3b021c5519124842d1d8d5/os_install_service/src/util.rs#L92 (`thread::spawn`)
- https://github.com/de-vri-es/webterm-server-rs/blob/69845f7f0678dce942de8313d6d4b0a57f83a9a9/src/pty/pseudo_terminal_pair.rs#L59 , https://github.com/de-vri-es/webterm-server-rs/blob/69845f7f0678dce942de8313d6d4b0a57f83a9a9/src/pty/pseudo_terminal_pair.rs#L63 (`tokio::main`)
- https://github.com/jjs-dev/jjs/blob/bf00423f70f8a6ed508bbcb8b38840225e43cc73/src/invoker/src/worker/valuer.rs#L39 (`tokio::main`)
- https://github.com/Drumblow/seac/blob/9c9fea1222ab98aee25376b51de8a66fe0eb4676/src/executor/process_manager.rs#L139 (`tokio::main`)
- https://github.com/CJacob314/rustcon/blob/92c582fa21fc68bb8740f617455820c3377a0274/src/main.rs#L166 (`none`)
- https://github.com/antialize/simple-admin/blob/cbde17d1b132be8427340fcc55f82958641d32a6/src/bin/sadmin/persist_daemon.rs#L223 (`tokio::main`)
- https://github.com/jonathanforhan/pty-exec/blob/c08b037747aa049cd7d41d6ea8de02305775d789/src/unix/pty.rs#L48 (`library`)
- https://github.com/0b01/tail2/blob/5f699b6aafb4c5be677c21e8f619c35bca33efcf/tail2/src/client/run.rs#L178 (`tokio::main`)
- https://github.com/owtaylor/ttymon/blob/61dfc842151c1e45920c427471617cbb27caff0d/src/pty.rs#L187 (`none`)
- https://github.com/Nughm3/contest-platform/blob/25a6ad7ff84550f5a2b32f270660acdd010e5a93/judge/src/sandbox.rs#L96 (`tokio::main`)
- https://github.com/valoq/glycin/blob/3447555afb60245f4e2329f129c921573f077d1b/glycin/src/sandbox.rs#L335 (`library`)
</details>
2025-11-16 20:40:24 +01:00
Matthias Krüger
098260034a
Rollup merge of #148914 - folkertdev:aarch64-openbsd-fix-import, r=Mark-Simulacrum
...
fix incorrect import in `std_detect` on `aarch64-unknown-openbsd`
fixes https://github.com/rust-lang/rust/issues/148898
In https://github.com/rust-lang/rust/pull/147024 the module structure of `std_detect` for `openbsd` was changed which invalidated this `super::` usage.
I've now tested that `std_detect` builds (or well, checks, because I don't have the right linkers) with `aarch64-unknown-openbsd` and `powerpc64-unknown-openbsd`.
2025-11-16 20:40:24 +01:00
Matthias Krüger
79d765ed38
Rollup merge of #148703 - pitaj:rangefrom-overflow_checks, r=Mark-Simulacrum
...
Use `overflow_checks` intrinsic so `IterRangeFrom` yields MAX before panicking in debug
Based on rust-lang/rust#128666 . For your convenience, here is the [diff from that PR](https://github.com/pitaj/rust/compare/intrinsic-overflow_checks...pitaj:rust:rangefrom-overflow_checks ).
When `overflow_checks` are enabled, the following code will output as shown
```rust
for n in std::range::RangeFrom::from(253_u8..) {
println!("{n}");
}
// 253
// 254
// 255
// panic
```
Which is a change from the current behavior, where it will panic after printing 254.
This behavior was [requested by the libs team](https://github.com/rust-lang/rust/issues/125687#issuecomment-2151118208 )
r? `@Mark-Simulacrum`
2025-11-16 20:40:22 +01:00
Ralf Jung
fc07052f8b
add must_use to extract_if methods
2025-11-16 15:57:23 +01:00
bors
e1a2ec6051
Auto merge of #148259 - RalfJung:const-ptr-fragment, r=oli-obk
...
const-eval: fix and re-enable pointer fragment support
The pointer fragment support from https://github.com/rust-lang/rust/pull/144081 got disabled due to https://github.com/rust-lang/rust/issues/146291 . This brings it back. To fix the issue, the per-byte provenance fragment tracking tracks *both* the provenance and raw address of the full pointer, so we can ensure that only fragments that are truly part of the same pointer are being merged.
r? `@oli-obk`
Cc `@theemathas`
Fixes https://github.com/rust-lang/const-eval/issues/72 again.
Also fixes https://github.com/rust-lang/rust/issues/147959 .
`@traviscross` I assume this won't need another t-lang FCP since it already got FCP'd in rust-lang/rust#144081 ?
2025-11-16 07:09:45 +00:00
Peter Jaszkowiak
0e5c96c3ec
IterRangeFrom: overflow panic after yielding MAX
...
check overflow after yielding MAX value
new `0_u8..` will yield `255` and only panic on the subsequent `next()`
2025-11-15 21:29:59 -07:00
Peter Jaszkowiak
6d2eb33391
fix a couple unstable attributes
2025-11-15 21:29:59 -07:00
Stuart Cook
8ea74b1a8f
Rollup merge of #148836 - ericseppanen:primitive_reference_docs, r=Mark-Simulacrum
...
tweak primitive reference docs
This is a docs-only change for primitive reference.
I noticed a typo ("safe to use at type `T`") and fixed it to read "safe to use *as* type `T`".
While reading over the whole page, I also noticed another sentence that was hard to read. I tried to improve it: feel free to comment on the wisdom of this change...
2025-11-16 14:39:59 +11:00
Stuart Cook
79e2a2f47c
Rollup merge of #148832 - clubby789:cargo-update-library-11-11-25, r=Mark-Simulacrum
...
Bump library dependencies
https://github.com/rust-lang/rust/pull/145849#issuecomment-3394832713
2025-11-16 14:39:59 +11:00
Stuart Cook
ec2f7397ce
Rollup merge of #148827 - GoldsteinE:stabilize-vec-into-raw-parts, r=Mark-Simulacrum
...
Stabilize vec_into_raw_parts
This stabilizes `Vec::into_raw_parts()` and `String::into_raw_parts()` per FCP in https://github.com/rust-lang/rust/issues/65816#issuecomment-3517630971 . While this _does not_ stabilize `Vec::into_parts()`, I fixed up the examples that said they were waiting for `vec_into_raw_parts`. As `Vec::from_parts()` and `Vec::into_parts()` are covered by the same feature `box_vec_non_null`, any doctest that uses `Vec::from_parts()` can also use `Vec::into_parts()` (and same for allocator-aware versions).
Closes rust-lang/rust#65816
``@rustbot`` modify labels: +T-libs-api
2025-11-16 14:39:58 +11:00
Stuart Cook
7b73b2126d
Rollup merge of #148416 - GrigorenkoPV:vec_recycle, r=Mark-Simulacrum
...
`vec_recycle`: implementation
Tracking issue: rust-lang/rust#148227
Going with the `TransmuteFrom` approach suggested in https://github.com/rust-lang/libs-team/issues/674#issuecomment-3457795183 , but a bit simplified.
Currently does not work in some places where it should due to the limitations of the current implementation of the transmutability analysis: https://github.com/rust-lang/rust/issues/148227#issuecomment-3478099591
2025-11-16 14:39:56 +11:00
bors
54f417673c
Auto merge of #148526 - reddevilmidzy:docs, r=Mark-Simulacrum
...
Expand pow docs with special-case tests
resolve : rust-lang/rust#148316
Files changed:
* library/std/src/num: f32.rs, f64.rs,
* powi
* powf
* library/std/src/num: f16.rs, f128.rs
* powf
* library/core/src/num: f16.rs, f128.rs
* powi
* library/core/src/num: int_macros.rs, uint_macros.rs
* checked_pow
* strict_pow
* saturating_pow
* wrapping_pow
* overflowing_pow
* pow
2025-11-15 22:01:14 +00:00
Alisa Sireneva
33a6142ee0
Document Error::{new,other} as to be avoided in pre_exec
2025-11-15 12:30:16 +03:00
Ralf Jung
907fd85e16
const-eval: fix and re-enable pointer fragment support
2025-11-15 10:09:42 +01:00
bors
b6d7ff3aa7
Auto merge of #148944 - theemathas:rm_inherit_overflow, r=joboet
...
Remove `rustc_inherit_overflow_checks` from `position()` in slice iterators
This method implementation can never cause an overflow, since `i` can never go over the slice's length.
2025-11-14 18:47:43 +00:00
bors
42f4793e5a
Auto merge of #138918 - Ayush1325:uefi-fs-time, r=joboet
...
uefi: fs: Add file times plumbing
- Add plumbing to allow conversions to and from UEFI Time to Rust SystemTime.
- Also add FileTimes implementation.
cc `@nicholasbishop`
r? `@petrochenkov`
2025-11-14 15:35:39 +00:00
Pavel Grigorenko
f9dcc6b21c
Stabilize char_max_len
2025-11-14 18:23:19 +03:00
Theemathas Chirananthavat
8d075ae0aa
Remove rustc_inherit_overflow_checks from position() in slice iterators
...
This method implementation can never cause an overflow,
since `i` can never go over the slice's length.
2025-11-14 20:12:11 +07:00
bors
c91009892b
Auto merge of #148940 - dtolnay:implarguments, r=joboet
...
Combine `impl<'a> Arguments<'a>` blocks
This makes a difference in the documentation rendered by rustdoc.
**Before:**
<p align="center"><img width="700" src="https://github.com/user-attachments/assets/cd5cc519-a8fa-4409-a347-f5a19638efc1 " /></p>
**After:**
<p align="center"><img width="700" src="https://github.com/user-attachments/assets/4c6a9564-7f46-4879-a085-51715453bbae " /></p>
2025-11-14 12:19:17 +00:00
David Tolnay
85332e39d2
Combine impl<'a> Arguments<'a> blocks
2025-11-14 02:12:43 -08:00
Stuart Cook
f61bfb0037
Rollup merge of #148725 - scottmcm:experiment-new-try-block-v3, r=petrochenkov
...
Implement the alternative `try` block desugaring
As discussed in https://github.com/rust-lang/rfcs/pull/3721#issuecomment-3208342727 , update the `try` in nightly to match the RFC as a way to experiment.
This addresses the following unresolved issue from https://github.com/rust-lang/rust/issues/31436
> Address issues with type inference (`try { expr? }?` currently requires an explicit type annotation somewhere).
2025-11-14 19:57:06 +11:00
Scott McMurray
e5803fceed
Move into_try_type to a free function
2025-11-13 19:53:02 -08:00
Stuart Cook
355e4cf8d6
Rollup merge of #148906 - m-ou-se:fmt-args-from-str, r=dtolnay
...
Expose fmt::Arguments::from_str as unstable.
Now that https://github.com/rust-lang/rust/pull/148789 is merged, we can have a fmt::Arguments::from_str. I don't know if we want to commit to always having an implementation that allows for this, but we can expose it as unstable for now so we can play with it.
Tracking issue: https://github.com/rust-lang/rust/issues/148905
2025-11-14 13:14:08 +11:00
Stuart Cook
e32379b445
Rollup merge of #148902 - folkertdev:detect-s390x-target-feature, r=tgross35
...
add missing s390x target feature to std detect test
Fix an oversight from https://github.com/rust-lang/rust/pull/145656 , where the `is_s390x_feature_detected!` macro and some target features were stabilized, but other target features remain unstable under a new target feature name.
I tested this locally using a `stage1` build on the test file with the `s390x-unknown-linux-gnu` target.
cc ```@uweigand```
r? ```@Amanieu``` (or whoever really)
2025-11-14 13:14:07 +11:00
Stuart Cook
ad91711d79
Rollup merge of #148867 - edwloef:refactor-box-take, r=joboet
...
Refactor `Box::take`
as per https://github.com/rust-lang/rust/pull/147227#discussion_r2395521349
2025-11-14 13:14:02 +11:00
Stuart Cook
9ff7390470
Rollup merge of #148850 - joshtriplett:read-array, r=joboet
...
Implement `Read::read_array`
Tracking issue: https://github.com/rust-lang/rust/issues/148848
2025-11-14 13:14:02 +11:00
Stuart Cook
7481e91e65
Rollup merge of #148826 - btj:cstr-docs, r=joboet
...
CStr docs: Fix CStr vs &CStr confusion
The CStr documentation used to say things about CStr that are only true for &CStr.
Also, it's the bytes that are being borrowed, not the reference. One could say that it's the reference that is doing the borrowing, rather than being borrowed.
2025-11-14 13:14:01 +11:00
msmoiz
e628b059bb
update language from "no lines" to "empty iterator"
2025-11-13 16:44:07 -08:00
Folkert de Vries
ac3faf0cae
fix incorrect import on aarch64-unknown-openbsd
2025-11-13 18:31:14 +01:00
msmoiz
4996edc53d
add note to lines docs about empty str behavior
2025-11-13 08:36:22 -08:00