Commit graph

27276 commits

Author SHA1 Message Date
github-actions
87187f107b cargo update
compiler & tools dependencies:     Locking 132 packages to latest compatible versions
    Updating addr2line v0.24.2 -> v0.25.1
    Updating annotate-snippets v0.12.10 -> v0.12.11
    Updating anstyle-svg v0.1.11 -> v0.1.12 (available: v1.0.0)
    Updating anyhow v1.0.100 -> v1.0.101
    Updating assert_cmd v2.1.1 -> v2.1.2
    Updating backtrace v0.3.75 -> v0.3.76
    Updating bitflags v2.10.0 -> v2.11.0
    Updating blake3 v1.8.2 -> v1.8.3
    Updating bumpalo v3.19.0 -> v3.19.1
    Updating camino v1.2.1 -> v1.2.2
    Updating cargo-platform v0.3.1 -> v0.3.2
    Updating chrono v0.4.42 -> v0.4.43
    Updating clap v4.5.54 -> v4.5.58
    Updating clap_builder v4.5.54 -> v4.5.58
    Updating clap_derive v4.5.49 -> v4.5.55
    Removing clap_lex v0.7.6
      Adding clap_lex v0.7.7
      Adding clap_lex v1.0.0
    Updating colored v3.0.0 -> v3.1.1
      Adding console v0.16.2
    Updating constant_time_eq v0.3.1 -> v0.4.2
    Updating curl-sys v0.4.84+curl-8.17.0 -> v0.4.85+curl-8.18.0
    Updating cxx v1.0.188 -> v1.0.194
    Updating cxx-build v1.0.188 -> v1.0.194
    Updating cxxbridge-cmd v1.0.188 -> v1.0.194
    Updating cxxbridge-flags v1.0.188 -> v1.0.194
    Updating cxxbridge-macro v1.0.188 -> v1.0.194
      Adding darling v0.21.3
      Adding darling_core v0.21.3
      Adding darling_macro v0.21.3
    Updating dbus v0.9.9 -> v0.9.10
    Updating derive_setters v0.1.8 -> v0.1.9
    Updating ena v0.14.3 -> v0.14.4
    Updating env_filter v0.1.4 -> v1.0.0
    Updating env_logger v0.11.8 -> v0.11.9
    Updating filetime v0.2.26 -> v0.2.27
    Updating find-msvc-tools v0.1.5 -> v0.1.9
    Updating flate2 v1.1.5 -> v1.1.9
    Removing getrandom v0.2.16
      Adding getrandom v0.2.17
      Adding getrandom v0.4.1
    Updating git2 v0.20.2 -> v0.20.4
    Updating iana-time-zone v0.1.64 -> v0.1.65
    Updating icu_locale_data v2.1.1 -> v2.1.2
    Updating icu_properties v2.1.1 -> v2.1.2
    Updating icu_properties_data v2.1.1 -> v2.1.2
    Updating id-arena v2.2.1 -> v2.3.0
      Adding indicatif v0.18.4
    Updating itoa v1.0.15 -> v1.0.17
    Updating jiff v0.2.16 -> v0.2.20
    Updating jiff-static v0.2.16 -> v0.2.20
    Updating js-sys v0.3.82 -> v0.3.85
    Updating libc v0.2.177 -> v0.2.182
    Updating libdbus-sys v0.2.6 -> v0.2.7
    Updating libgit2-sys v0.18.2+1.9.1 -> v0.18.3+1.9.2
    Updating libm v0.2.15 -> v0.2.16
    Updating libredox v0.1.10 -> v0.1.12
    Updating log v0.4.28 -> v0.4.29
    Updating memchr v2.7.6 -> v2.8.0
    Updating mio v1.1.0 -> v1.1.1
 Downgrading objc2-core-foundation v0.3.2 -> v0.3.1 (available: v0.3.2)
 Downgrading objc2-io-kit v0.3.2 -> v0.3.1 (available: v0.3.2)
    Updating pest v2.8.3 -> v2.8.6
    Updating pest_derive v2.8.3 -> v2.8.6
    Updating pest_generator v2.8.3 -> v2.8.6
    Updating pest_meta v2.8.3 -> v2.8.6
    Updating portable-atomic v1.11.1 -> v1.13.1
    Updating portable-atomic-util v0.2.4 -> v0.2.5
    Updating predicates v3.1.3 -> v3.1.4
    Updating predicates-core v1.0.9 -> v1.0.10
    Updating predicates-tree v1.0.12 -> v1.0.13
      Adding prettyplease v0.2.37
    Updating proc-macro2 v1.0.103 -> v1.0.106
    Updating quote v1.0.42 -> v1.0.44
    Updating rand_core v0.9.3 -> v0.9.5
      Adding redox_syscall v0.7.1
    Updating regex v1.12.2 -> v1.12.3
    Updating regex-automata v0.4.13 -> v0.4.14
    Updating regex-lite v0.1.8 -> v0.1.9
    Updating regex-syntax v0.8.8 -> v0.8.9
    Updating rustix v1.1.2 -> v1.1.3
    Removing ryu v1.0.20
    Updating schemars v1.1.0 -> v1.2.1
    Updating schemars_derive v1.1.0 -> v1.2.1
    Updating self_cell v1.2.1 -> v1.2.2
    Updating serde_json v1.0.145 -> v1.0.149
    Updating serde_spanned v1.0.3 -> v1.0.4
    Updating simd-adler32 v0.3.7 -> v0.3.8
    Updating siphasher v1.0.1 -> v1.0.2
    Updating socket2 v0.6.1 -> v0.6.2
    Updating syn v2.0.110 -> v2.0.115
    Updating sysinfo v0.38.0 -> v0.38.1
    Updating tempfile v3.23.0 -> v3.25.0
    Updating thiserror v2.0.17 -> v2.0.18
    Updating thiserror-impl v2.0.17 -> v2.0.18
    Updating toml v0.9.8 -> v0.9.12+spec-1.1.0 (available: v1.0.1+spec-1.1.0)
    Updating toml_datetime v0.7.3 -> v0.7.5+spec-1.1.0
    Updating toml_parser v1.0.4 -> v1.0.8+spec-1.1.0
    Updating toml_writer v1.0.4 -> v1.0.6+spec-1.1.0
    Updating tracing v0.1.41 -> v0.1.44
    Updating tracing-attributes v0.1.30 -> v0.1.31
    Updating tracing-core v0.1.34 -> v0.1.36
    Updating tracing-subscriber v0.3.20 -> v0.3.22
    Updating ui_test v0.30.3 -> v0.30.4
    Updating unicase v2.8.1 -> v2.9.0
    Updating unicode-ident v1.0.22 -> v1.0.23
    Updating unicode-script v0.5.7 -> v0.5.8
      Adding unit-prefix v0.5.2
    Updating url v2.5.7 -> v2.5.8
    Updating utf8-width v0.1.7 -> v0.1.8
    Updating uuid v1.18.1 -> v1.21.0
    Updating wasi-preview1-component-adapter-provider v40.0.0 -> v40.0.3
      Adding wasip2 v1.0.2+wasi-0.2.9
      Adding wasip3 v0.4.0+wasi-0.3.0-rc-2026-01-06
    Updating wasm-bindgen v0.2.105 -> v0.2.108
    Updating wasm-bindgen-macro v0.2.105 -> v0.2.108
    Updating wasm-bindgen-macro-support v0.2.105 -> v0.2.108
    Updating wasm-bindgen-shared v0.2.105 -> v0.2.108
      Adding wasm-encoder v0.244.0
      Adding wasm-encoder v0.245.1
      Adding wasm-metadata v0.244.0
      Adding wasmparser v0.244.0
      Adding wasmparser v0.245.1
    Updating wast v243.0.0 -> v245.0.1
    Updating wat v1.243.0 -> v1.245.1
    Updating winnow v0.7.13 -> v0.7.14
      Adding wit-bindgen v0.51.0
      Adding wit-bindgen-core v0.51.0
      Adding wit-bindgen-rust v0.51.0
      Adding wit-bindgen-rust-macro v0.51.0
      Adding wit-component v0.244.0
      Adding wit-parser v0.244.0
    Updating zerocopy v0.8.27 -> v0.8.39
    Updating zerocopy-derive v0.8.27 -> v0.8.39
      Adding zmij v1.0.21
note: pass `--verbose` to see 47 unchanged dependencies behind latest

library dependencies:     Locking 5 packages to latest compatible versions
    Updating dlmalloc v0.2.11 -> v0.2.12
    Updating libc v0.2.178 -> v0.2.182
    Updating memchr v2.7.6 -> v2.8.0
    Updating rand_core v0.9.3 -> v0.9.5
    Updating windows-sys v0.60.2 -> v0.61.2
    Removing windows-targets v0.53.5
    Removing windows_aarch64_gnullvm v0.53.1
    Removing windows_aarch64_msvc v0.53.1
    Removing windows_i686_gnu v0.53.1
    Removing windows_i686_gnullvm v0.53.1
    Removing windows_i686_msvc v0.53.1
    Removing windows_x86_64_gnu v0.53.1
    Removing windows_x86_64_gnullvm v0.53.1
    Removing windows_x86_64_msvc v0.53.1
note: pass `--verbose` to see 10 unchanged dependencies behind latest

rustbook dependencies:     Locking 74 packages to latest compatible versions
    Updating anstyle-query v1.1.4 -> v1.1.5
    Updating anstyle-wincon v3.0.10 -> v3.0.11
    Updating anyhow v1.0.100 -> v1.0.101
    Updating bitflags v2.10.0 -> v2.11.0
    Updating bumpalo v3.19.0 -> v3.19.1
    Updating cc v1.2.45 -> v1.2.56
    Updating chrono v0.4.42 -> v0.4.43
    Updating clap v4.5.51 -> v4.5.58
    Updating clap_builder v4.5.51 -> v4.5.58
    Updating clap_derive v4.5.49 -> v4.5.55
    Updating clap_lex v0.7.6 -> v1.0.0
    Updating crypto-common v0.1.6 -> v0.1.7
    Updating find-msvc-tools v0.1.4 -> v0.1.9
    Updating flate2 v1.1.5 -> v1.1.9
      Adding foldhash v0.1.5
 Downgrading generic-array v0.14.9 -> v0.14.7 (available: v0.14.9)
    Updating getrandom v0.3.4 -> v0.4.1
    Updating handlebars v6.3.2 -> v6.4.0
      Adding hashbrown v0.15.5
    Updating iana-time-zone v0.1.64 -> v0.1.65
      Adding id-arena v2.3.0
    Updating indexmap v2.12.1 -> v2.13.0
    Updating itoa v1.0.15 -> v1.0.17
    Updating js-sys v0.3.82 -> v0.3.85
      Adding leb128fmt v0.1.0
    Updating libc v0.2.177 -> v0.2.182
    Updating log v0.4.28 -> v0.4.29
    Updating memchr v2.7.6 -> v2.8.0
    Updating pest v2.8.3 -> v2.8.6
    Updating pest_derive v2.8.3 -> v2.8.6
    Updating pest_generator v2.8.3 -> v2.8.6
    Updating pest_meta v2.8.3 -> v2.8.6
      Adding prettyplease v0.2.37
    Updating proc-macro2 v1.0.103 -> v1.0.106
    Updating quote v1.0.42 -> v1.0.44
    Updating regex v1.12.2 -> v1.12.3
    Updating regex-automata v0.4.13 -> v0.4.14
    Updating regex-syntax v0.8.8 -> v0.8.9
    Updating rustix v1.1.2 -> v1.1.3
    Removing ryu v1.0.20
    Updating serde_json v1.0.145 -> v1.0.149
    Updating serde_spanned v1.0.3 -> v1.0.4
    Updating simd-adler32 v0.3.7 -> v0.3.8
    Updating siphasher v1.0.1 -> v1.0.2
    Updating syn v2.0.110 -> v2.0.115
    Updating tempfile v3.23.0 -> v3.25.0
    Updating thiserror v2.0.17 -> v2.0.18
    Updating thiserror-impl v2.0.17 -> v2.0.18
    Updating toml v0.9.8 -> v0.9.12+spec-1.1.0
    Updating toml_datetime v0.7.3 -> v0.7.5+spec-1.1.0
    Updating toml_parser v1.0.4 -> v1.0.8+spec-1.1.0
    Updating toml_writer v1.0.4 -> v1.0.6+spec-1.1.0
    Updating tracing v0.1.43 -> v0.1.44
    Updating tracing-core v0.1.35 -> v0.1.36
    Updating unicase v2.8.1 -> v2.9.0
    Updating unicode-ident v1.0.22 -> v1.0.23
      Adding unicode-xid v0.2.6
    Updating wasip2 v1.0.1+wasi-0.2.4 -> v1.0.2+wasi-0.2.9
      Adding wasip3 v0.4.0+wasi-0.3.0-rc-2026-01-06
    Updating wasm-bindgen v0.2.105 -> v0.2.108
    Updating wasm-bindgen-macro v0.2.105 -> v0.2.108
    Updating wasm-bindgen-macro-support v0.2.105 -> v0.2.108
    Updating wasm-bindgen-shared v0.2.105 -> v0.2.108
      Adding wasm-encoder v0.244.0
      Adding wasm-metadata v0.244.0
      Adding wasmparser v0.244.0
    Updating web_atoms v0.2.0 -> v0.2.3
    Removing windows-sys v0.60.2
    Removing windows-targets v0.53.5
    Removing windows_aarch64_gnullvm v0.53.1
    Removing windows_aarch64_msvc v0.53.1
    Removing windows_i686_gnu v0.53.1
    Removing windows_i686_gnullvm v0.53.1
    Removing windows_i686_msvc v0.53.1
    Removing windows_x86_64_gnu v0.53.1
    Removing windows_x86_64_gnullvm v0.53.1
    Removing windows_x86_64_msvc v0.53.1
    Updating winnow v0.7.13 -> v0.7.14
    Updating wit-bindgen v0.46.0 -> v0.51.0
      Adding wit-bindgen-core v0.51.0
      Adding wit-bindgen-rust v0.51.0
      Adding wit-bindgen-rust-macro v0.51.0
      Adding wit-component v0.244.0
      Adding wit-parser v0.244.0
      Adding zmij v1.0.21
2026-02-15 00:32:46 +00:00
Jonathan Brouwer
8a03b5f3ec
Rollup merge of #152531 - cyrgani:pm-yet-another-cleanup, r=petrochenkov
`proc_macro::bridge`: simplify `ExecutionStrategy` and `DispatcherTrait`

Also includes another tiny cleanup (functions can only have one return type).
2026-02-14 18:55:36 +01:00
Jonathan Brouwer
6213acdbb8
Rollup merge of #152618 - folkertdev:stdarch-sync-2026-02-14, r=folkertdev
stdarch subtree update

Subtree update of `stdarch` to 1239a9f83a.

Created using https://github.com/rust-lang/josh-sync.

r? @ghost
2026-02-14 18:55:34 +01:00
Jonathan Brouwer
65d982abd8
Rollup merge of #152469 - mu001999-contrib:cleanup/unused-features, r=nadrieril,jdonszelmann
Remove unused features

Detected by https://github.com/rust-lang/rust/pull/152164.

~~Only allow `unused_features` if there are complex platform-specific features enabled.~~
2026-02-13 13:34:58 +01:00
cyrgani
f601b29825 inline SameThread and CrossThread 2026-02-13 11:24:50 +00:00
cyrgani
31053484a7 replace MessagePipe trait with its impl 2026-02-13 11:23:26 +00:00
Stuart Cook
eaa6766793
Rollup merge of #152232 - chenyukang:add-must-use-for-filetimes, r=Mark-Simulacrum
Add must_use for FileTimes

Fixes rust-lang/rust#152231
2026-02-13 15:19:11 +11:00
mu001999
73c42c1800 Remove or allow unused features in library doc and tests 2026-02-13 09:27:16 +08:00
mu001999
0dc1556968 Remove unused features in library 2026-02-13 09:25:50 +08:00
bors
bb8b30a5fc Auto merge of #148537 - oli-obk:push-yxuttqrqqyvu, r=dianqk
Start using pattern types in libcore (NonZero and friends)

part of rust-lang/rust#136006 

This PR only changes the internal representation of `NonZero`, `NonMax`, ... and other integral range types in libcore. This subsequently affects other types made up of it, but nothing really changes except that the field of `NonZero` is now accessible safely in contrast to the `rustc_layout_scalar_range_start` attribute, which has all kinds of obscure rules on how to properly access its field.
2026-02-12 13:23:22 +00:00
cyrgani
2f24a5e491 remove DispatcherTrait 2026-02-12 11:38:33 +00:00
cyrgani
13189f48cf use ? instead of * for return types 2026-02-12 11:38:22 +00:00
bors
7ad4e69ad5 Auto merge of #152517 - jhpratt:rollup-fGRcId6, r=jhpratt
Rollup of 17 pull requests

Successful merges:

 - rust-lang/rust#142415 (Add note when inherent impl for a alias type defined outside of the crate)
 - rust-lang/rust#142680 (Fix passing/returning structs with the 64-bit SPARC ABI)
 - rust-lang/rust#150768 (Don't compute FnAbi for LLVM intrinsics in backends)
 - rust-lang/rust#151152 (Add FCW for derive helper attributes that will conflict with built-in attributes)
 - rust-lang/rust#151814 (layout: handle rigid aliases without params)
 - rust-lang/rust#151863 (Borrowck: simplify diagnostics for placeholders)
 - rust-lang/rust#152159 (Add note for `?Sized` params in int-ptr casts diag)
 - rust-lang/rust#152434 (Clarify names of `QueryVTable` functions for "executing" a query)
 - rust-lang/rust#152478 (Remove tm_factory field from CodegenContext)
 - rust-lang/rust#152498 (Partially revert "resolve: Update `NameBindingData::vis` in place")
 - rust-lang/rust#152316 (fix: add continue)
 - rust-lang/rust#152394 (Correctly check if a macro call is actually a macro call in rustdoc highlighter)
 - rust-lang/rust#152425 (Port #![test_runner] to the attribute parser)
 - rust-lang/rust#152481 (Use cg_ssa's produce_final_output_artifacts in cg_clif)
 - rust-lang/rust#152485 (fix issue#152482)
 - rust-lang/rust#152495 (Clean up some subdiagnostics)
 - rust-lang/rust#152502 (Implement `BinaryHeap::from_raw_vec`)
2026-02-12 06:57:59 +00:00
Jacob Pratt
faac3c579f
Rollup merge of #152502 - Dan54:heap-from-raw-vec, r=scottmcm
Implement `BinaryHeap::from_raw_vec`

Implements rust-lang/rust#152500.

Adds a `BinaryHeap::from_raw_vec` function, which constructs a `BinaryHeap` without performing a heapify, for data that is already a max-heap.
2026-02-12 00:41:12 -05:00
bors
605f49b274 Auto merge of #152506 - Urgau:rollup-MlGAszj, r=Urgau
Rollup of 7 pull requests

Successful merges:

 - rust-lang/rust#152505 (Sync relnotes for stable 1.93.1)
 - rust-lang/rust#137487 (Stabilize `assert_matches`)
 - rust-lang/rust#152281 (borrowck: suggest `&mut *x` for pattern reborrows)
 - rust-lang/rust#151142 (Support ADT types in type info reflection)
 - rust-lang/rust#152477 (rustc-dev-guide subtree update)
 - rust-lang/rust#152488 (allow `deprecated(since = "CURRENT_RUSTC_VERSION")`)
 - rust-lang/rust#152491 (Remove unused `fluent-syntax` dependency from tidy)
2026-02-12 03:44:50 +00:00
Urgau
c87a89ed14
Rollup merge of #151142 - SpriteOvO:type-info-adt, r=oli-obk
Support ADT types in type info reflection

Tracking issue: rust-lang/rust#146922 `#![feature(type_info)]`

This PR supports ADT types for feature `type_info` reflection.
(It's still a draft PR, with implementation in progress)

Note that this PR does not take SemVer into consideration (I left a FIXME comment). As discussed earlier ([comment](https://github.com/rust-lang/rust/pull/146923#discussion_r2372249477)), this requires further discussion. However, I hope we could get an initial implementation to land first, so we can start playing with it.

### Progress / Checklist

- [x] Struct support.
- [x] Enum
- [x] Union
- [x] Generics
- [ ] ~Methods~ Implemented and to be implemented in other PRs
- [ ] ~Traits~ Implemented and to be implemented in other PRs
- [x] Rebasing PR to `main` branch
  ~~(It's currently based on PR rust-lang/rust#151123, so here's an extra commit)~~
- [x] Cleanup and Rebase.
- [x] Fix field info for references. (see [comment](https://github.com/rust-lang/rust/pull/151142#discussion_r2777920512))

r? @oli-obk
2026-02-12 00:04:15 +01:00
Dan54
9383138801 add BinaryHeap::from_raw_vec 2026-02-11 21:18:07 +00:00
Sayantan Chakraborty
74397dcc68
Merge pull request #2020 from Snehal-Reddy/main
aarch64: Guard RCPC3 intrinsics with target_has_atomic = "64"
2026-02-11 20:40:14 +00:00
Lukas Bergdoll
2f3b952349 Stabilize assert_matches 2026-02-11 14:13:44 +01:00
Matthias Krüger
88eda646f2
Rollup merge of #152431 - oli-obk:limited_stability_attr, r=jdonszelmann
Restrict the set of things that const stability can be applied to

r? @jdonszelmann
2026-02-11 13:48:47 +01:00
bors
d34f1f9314 Auto merge of #152420 - tgross35:update-builtins, r=tgross35
compiler-builtins subtree update

Subtree update of `compiler-builtins` to 6a67a9f627.

Created using https://github.com/rust-lang/josh-sync.

r? @ghost
2026-02-11 04:12:19 +00:00
yukang
d72eac8465 add must_use for FileTimes 2026-02-11 09:30:50 +08:00
Sayantan Chakraborty
3e0724784b
Merge pull request #2004 from folkertdev/arm-ld1-read
aarch64: use `read_unaligned` for `vld1_*`
2026-02-10 14:18:57 +00:00
Asuna
a575fe168f Erase type lifetime before writing type ID 2026-02-10 14:08:11 +01:00
Asuna
98e0c34f7f Support unions in type info reflection 2026-02-10 13:53:27 +01:00
Asuna
e9037882c1 Support enums in type info reflection 2026-02-10 13:53:26 +01:00
Asuna
870fd9070b Add generics info for structs in type info 2026-02-10 13:45:09 +01:00
Asuna
b23d308853 Support structs in type info reflection 2026-02-10 13:45:07 +01:00
Oli Scherer
85e8282fab Start using pattern types in libcore 2026-02-10 11:19:24 +00:00
Oli Scherer
0ebd56ebbb Remove accidental const stability marker on a struct 2026-02-10 09:02:31 +00:00
Matthias Krüger
2ce5f487e0
Rollup merge of #145504 - Jules-Bertholet:more_conversion_trait_impls, r=tgross35
Add some conversion trait impls

- `impl<T, const N: usize> From<[MaybeUninit<T>; N]> for MaybeUninit<[T; N]>` (cc https://github.com/rust-lang/rust/issues/96097)
- `impl<T, const N: usize> AsRef<[MaybeUninit<T>; N]> for MaybeUninit<[T; N]>` (cc https://github.com/rust-lang/rust/issues/96097)
- `impl<T, const N: usize> AsRef<[MaybeUninit<T>]> for MaybeUninit<[T; N]>` (cc https://github.com/rust-lang/rust/issues/96097)
- `impl<T, const N: usize> AsMut<[MaybeUninit<T>; N]> for MaybeUninit<[T; N]>` (cc https://github.com/rust-lang/rust/issues/96097)
- `impl<T, const N: usize> AsMut<[MaybeUninit<T>]> for MaybeUninit<[T; N]>` (cc https://github.com/rust-lang/rust/issues/96097)
- `impl<T, const N: usize> From<MaybeUninit<[T; N]>> for [MaybeUninit<T>; N]` (cc https://github.com/rust-lang/rust/issues/96097)
- `impl<T, const N: usize> AsRef<[Cell<T>; N]> for Cell<[T; N]>` (equivalent of `as_array_of_cells`, cc https://github.com/rust-lang/rust/issues/88248)
- `impl<T, const N: usize> AsRef<[Cell<T>]> for Cell<[T; N]>`
- `impl<T> AsRef<[Cell<T>]> for Cell<[T]>` (equivalent of `as_slice_of_cells`)

@rustbot label T-libs-api needs-fcp -T-libs

I’ve tried to only add impls that are unlikely to cause single-applicable-impl inference breakage.
2026-02-09 18:39:42 +01:00
Matthias Krüger
c15f4e0e47
Rollup merge of #142957 - xizheyin:142931, r=tgross35
std: introduce path normalize methods at top of `std::path`

Closes rust-lang/rust#142931

Mention other methods that call `conponents` and `canonicalize` that fully normalize path. And fix two typo.

r? libs
2026-02-09 18:39:41 +01:00
Matthias Krüger
e2ddf5c951
Rollup merge of #152166 - cyrgani:questionable-pm-cleanups, r=petrochenkov
cleanup some more things in `proc_macro::bridge`

Each commit should be reviewable on its own.
2026-02-09 18:39:40 +01:00
Matthias Krüger
144b77aad2
Rollup merge of #151613 - cuviper:array-windows-parity, r=Amanieu
Align `ArrayWindows` trait impls with `Windows`

With `slice::ArrayWindows` getting ready to stabilize in 1.94, I noticed that it currently has some differences in trait implementations compared to `slice::Windows`, and I think we should align these.

- Remove `derive(Copy)` -- we generally don't want `Copy` for iterators at all, as this is seen as a footgun (e.g. rust-lang/rust#21809). This is obviously a breaking change though, so we should only remove this if we also backport the removal before it's stable. Otherwise, it should at least be replaced by a manual impl without requiring `T: Copy`.
- Manually `impl Clone`, simply to avoid requiring `T: Clone`.
- `impl FusedIterator`, because it is trivially so. The `since = "1.94.0"` assumes we'll backport this, otherwise we should change that to the "current" placeholder.
- `impl TrustedLen`, because we can trust our implementation.
- `impl TrustedRandomAccess`, because the required `__iterator_get_unchecked` method is straightforward.

r? libs-api

@rustbot label beta-nominated
(at least for the `Copy` removal, but we could be more selective about the rest).
2026-02-09 18:39:39 +01:00
Juho Kahala
8cd47adab2
libm: Fix tests for lgamma
The tests were using `rug::ln_gamma` as a reference for `libm::lgamma`,
which actually computes the natural logarithm *of the absolute value* of
the Gamma function.

This changes the range of inputs used for the icount-benchmarks of these
functions, which causes false regressions in [1].

[1]: https://github.com/rust-lang/compiler-builtins/actions/runs/21788698368/job/62864230903?pr=1075#step:7:2710.

Fixes: a1a066611dc2 ("Create interfaces for testing against MPFR")
2026-02-09 04:32:04 -06:00
xizheyin
88c296a19f std: introduce path normalize methods at top of std::path 2026-02-09 18:25:26 +08:00
Jacob Pratt
e046884f49
Rollup merge of #152357 - nicholasbishop:push-uolpvnvrlznw, r=joboet
std: Don't panic when removing a nonexistent UEFI var

`std::env::remove_var` does not say that deleting a nonexistent variable is an error (and at least on Linux, it indeed does not cause an error).

The UEFI Shell Protocol spec also doesn't say it's an error, but the edk2 implementation delegates to the UEFI runtime `SetVariable` function, which returns `EFI_NOT_FOUND` when trying to delete a nonexistent variable.

Change the UEFI implementation to check for a `NotFound` error and treat it as success.

CC @Ayush1325
2026-02-09 05:20:27 -05:00
Stuart Cook
7cb4501916
Rollup merge of #152291 - jdonszelmann:port-rustc-insignificant-dtor, r=jonathanbrouwer
Port `rustc_insignificant_dtor`

r? @JonathanBrouwer

Second commit removes it from an impl in std. I looked, and I really think it had no effect in the past. We only look for this attr on ADTs...
2026-02-09 14:32:01 +11:00
Stuart Cook
11c7917874
Rollup merge of #152071 - hanna-kruppe:stdio-fd-consts, r=ChrisDenton
Implement stdio FD constants

Tracking issue: rust-lang/rust#150836
2026-02-09 14:32:00 +11:00
Folkert de Vries
dfef1209b1
x86: use intrinsics::simd for masked truncated saturating stores 2026-02-08 22:42:48 +01:00
Jana Dönszelmann
9d6e120939
remove from impl block in std 2026-02-08 22:22:58 +01:00
Jonathan Brouwer
9f778b4341
Rollup merge of #152275 - scottmcm:range-range-inclusive, r=Mark-Simulacrum
Stop having two different alignment constants

Now that there's a `<T as SizedTypeProperties>::ALIGNMENT` constant, `Alignment::of` can use that instead of an inline constant, like how `Layout::new` uses the constant from `SizedTypeProperties`.
2026-02-08 21:06:30 +01:00
Jonathan Brouwer
c33bd8aa53
Rollup merge of #126100 - scottmcm:decaveat-map, r=Mark-Simulacrum
Reword the caveats on `array::map`

Thanks to #107634 and some improvements in LLVM (particularly [`dead_on_unwind`](https://llvm.org/docs/LangRef.html#parameter-attributes)), the method actually optimizes reasonably well now.

So focus the discussion on the fundamental ordering differences where the optimizer might never be able to fix it because of the different behaviour, and keep encouraging `Iterator::map` where an array wasn't actually ever needed.
2026-02-08 21:06:29 +01:00
Mark Rousskov
4a979d546b Stop having two different alignment constants
* Stop having two different alignment constants
* Update library/core/src/alloc/global.rs
2026-02-08 19:54:03 +00:00
Nicholas Bishop
4d07a8f24c std: Don't panic when removing a nonexistent UEFI var
`std::env::remove_var` does not say that deleting a nonexistent variable
is an error (and at least on Linux, it indeed does not cause an
error).

The UEFI Shell Protocol spec also doesn't say it's an error, but the
edk2 implementation delegates to the UEFI runtime `SetVariable`
function, which returns `EFI_NOT_FOUND` when trying to delete a
nonexistent variable.

Change the UEFI implementation to check for a `NotFound` error and treat
it as success.
2026-02-08 12:38:28 -05:00
Jules Bertholet
d0b3a0bdc0
Add some conversion trait impls
- `impl<T, const N: usize> From<[MaybeUninit<T>; N]> for MaybeUninit<[T; N]>`
- `impl<T, const N: usize> AsRef<[MaybeUninit<T>; N]> for MaybeUninit<[T; N]>`
- `impl<T, const N: usize> AsRef<[MaybeUninit<T>]> for MaybeUninit<[T; N]>`
- `impl<T, const N: usize> AsMut<[MaybeUninit<T>; N]> for MaybeUninit<[T; N]>`
- `impl<T, const N: usize> AsMut<[MaybeUninit<T>]> for MaybeUninit<[T; N]>`
- `impl<T, const N: usize> From<MaybeUninit<[T; N]>> for [MaybeUninit<T>; N]`
- `impl<T, const N: usize> AsRef<[Cell<T>; N]> for Cell<[T; N]>`
- `impl<T, const N: usize> AsRef<[Cell<T>]> for Cell<[T; N]>`
- `impl<T> AsRef<[Cell<T>]> for Cell<[T]>`
2026-02-07 17:09:23 -05:00
Jonathan Brouwer
7b8be37c1f
Rollup merge of #152292 - GrigorenkoPV:sigma, r=Noratrieb
Minor change for readability

Everyone praise inline const blocks!
2026-02-07 19:34:51 +01:00
Jonathan Brouwer
5964330d29
Rollup merge of #152056 - hzeller:feature-20260203-clarify-rwlock-reentrance, r=joboet
RwLock: refine documentation to emphasize non-reentrancy guarantees

This addresses the need for clarification brought up in rust-lang/rust#149693. Specifically, it notes that some implementations may choose to panic if they detect deadlock situations during recursive locking attempts for both `read()` and `write()` calls.

  * Provide an example highlighting that multiple read locks can be held across different threads simultaneously.
  * Remove the example that shows a situation that can potentially deadlock. (as demonstrated in the very same documentation a few paragraphs above)
  * Improve documentation regarding the possibility of panics during recursive read or write lock attempts.

Issues: https://github.com/rust-lang/rust/issues/149693
2026-02-07 19:34:49 +01:00
Trevor Gross
3d0989266d cleanup: Perform some simplifications possible with the MSRV bump 2026-02-07 08:46:41 -06:00
Trevor Gross
1ec5101f20 Bump the libm MSRV to 1.67
This gets us:

* `saturating_sub_unsigned`
* `<int>::ilog2`
* Correct lexing of float literals with the `f16` or `f128` suffix

Link: https://github.com/rust-lang/compiler-builtins/issues/1017
2026-02-07 08:46:41 -06:00