diff -audpNr third_party/rust/bytemuck.orig/v1/BUILD.gn third_party/rust/bytemuck/v1/BUILD.gn --- third_party/rust/bytemuck.orig/v1/BUILD.gn 2026-01-06 08:20:51.000000000 +0900 +++ third_party/rust/bytemuck/v1/BUILD.gn 2026-04-24 20:19:34.251595000 +0900 @@ -39,16 +39,20 @@ cargo_crate("lib") { cargo_pkg_name = "bytemuck" cargo_pkg_description = "A crate for mucking around with piles of bytes." cargo_pkg_repository = "https://github.com/Lokathor/bytemuck" - cargo_pkg_version = "1.23.2" + cargo_pkg_version = "1.25.0" allow_unsafe = true - deps = [ "//third_party/rust/bytemuck_derive/v1:lib" ] + deps = [ + "//third_party/rust/bytemuck_derive/v1:lib", + "//third_party/rust/rustversion/v1:lib", + ] features = [ "bytemuck_derive", "derive", + "extern_crate_alloc", "min_const_generics", - "nightly_portable_simd", + "rustversion", ] # `gnrt_config.toml` for this crate specifies `allow_unstable_features`. diff -audpNr third_party/rust/bytemuck.orig/v1/README.chromium third_party/rust/bytemuck/v1/README.chromium --- third_party/rust/bytemuck.orig/v1/README.chromium 2026-01-06 08:20:51.000000000 +0900 +++ third_party/rust/bytemuck/v1/README.chromium 2026-04-24 20:19:34.251692000 +0900 @@ -1,8 +1,8 @@ URL: https://crates.io/crates/bytemuck Name: bytemuck URL: https://crates.io/crates/bytemuck -Version: 1.23.2 -Revision: c069a2f6a4c7f3416257d0378c799085aa5626bb -Update Mechanism: Manual +Version: 1.25.0 +Revision: 164cedda0eae131bc6cb67902599f4ec253642ca +Update Mechanism: Manual (https://crbug.com/449898466) License: Apache-2.0 License File: //third_party/rust/chromium_crates_io/vendor/bytemuck-v1/LICENSE-APACHE Shipped: yes diff -audpNr third_party/rust/rustversion.orig/v1/BUILD.gn third_party/rust/rustversion/v1/BUILD.gn --- third_party/rust/rustversion.orig/v1/BUILD.gn 2026-01-06 08:20:51.000000000 +0900 +++ third_party/rust/rustversion/v1/BUILD.gn 2026-04-24 20:19:37.854246000 +0900 @@ -44,7 +44,7 @@ cargo_crate("lib") { build_root = "//third_party/rust/chromium_crates_io/vendor/rustversion-v1/build/build.rs" build_sources = [ "//third_party/rust/chromium_crates_io/vendor/rustversion-v1/build/build.rs" ] - build_script_inputs = [ "//third_party/rust/chromium_crates_io/vendor/rustversion-v1/src/../build/rustc.rs" ] + build_script_inputs = [ "//third_party/rust/chromium_crates_io/vendor/rustversion-v1/src/../../rustversion-v1/build/rustc.rs" ] build_script_outputs = [ "version.expr" ] # Only for usage from third-party crates. Add the crate to diff -audpNr third_party/rust/rustversion.orig/v1/README.chromium third_party/rust/rustversion/v1/README.chromium --- third_party/rust/rustversion.orig/v1/README.chromium 2026-01-06 08:20:51.000000000 +0900 +++ third_party/rust/rustversion/v1/README.chromium 2026-04-24 20:19:37.854320000 +0900 @@ -2,7 +2,7 @@ Revision: 9e86f839b6a34a7d9398f243d88bf400b7fa1f7c URL: https://crates.io/crates/rustversion Version: 1.0.22 Revision: 9e86f839b6a34a7d9398f243d88bf400b7fa1f7c -Update Mechanism: Manual +Update Mechanism: Manual (https://crbug.com/449898466) License: Apache-2.0 License File: //third_party/rust/chromium_crates_io/vendor/rustversion-v1/LICENSE-APACHE Shipped: yes diff -audpNr third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/.cargo_vcs_info.json third_party/rust/chromium_crates_io/vendor/bytemuck-v1/.cargo_vcs_info.json --- third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/.cargo_vcs_info.json 2026-01-06 08:20:51.000000000 +0900 +++ third_party/rust/chromium_crates_io/vendor/bytemuck-v1/.cargo_vcs_info.json 2026-04-24 20:20:01.406187000 +0900 @@ -1,6 +1,6 @@ { "git": { - "sha1": "c069a2f6a4c7f3416257d0378c799085aa5626bb" + "sha1": "164cedda0eae131bc6cb67902599f4ec253642ca" }, "path_in_vcs": "" } \ No newline at end of file diff -audpNr third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/.github/workflows/rust.yml third_party/rust/chromium_crates_io/vendor/bytemuck-v1/.github/workflows/rust.yml --- third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/.github/workflows/rust.yml 2026-01-06 08:20:51.000000000 +0900 +++ third_party/rust/chromium_crates_io/vendor/bytemuck-v1/.github/workflows/rust.yml 2026-04-24 20:20:01.406367000 +0900 @@ -19,7 +19,7 @@ jobs: include: # versions (all on linux-x86_64) - { rust: 1.34.0, os: ubuntu-latest } - - { rust: 1.61.0, os: ubuntu-latest } + - { rust: 1.68.0, os: ubuntu-latest } - { rust: stable, os: ubuntu-latest } - { rust: beta, os: ubuntu-latest } - { rust: nightly, os: ubuntu-latest } @@ -38,19 +38,20 @@ jobs: - run: cargo test --verbose --no-default-features - run: cargo test --verbose - run: cargo test --verbose --features derive - if: matrix.rust == '1.61.0' + if: matrix.rust == '1.68.0' - run: cargo test --verbose --all-features if: matrix.rust == 'nightly' - run: cargo test --verbose --manifest-path=derive/Cargo.toml --all-features if: matrix.rust == 'nightly' + - run: cd contiguous_bitset && cargo test + if: matrix.rust == 'stable' cross-test: name: Test on ${{ matrix.target }} with cross runs-on: ubuntu-latest strategy: matrix: - # we once had mips runners for Big-endian coverage but those got demoted to tier 3. - target: [i686-unknown-linux-gnu] + target: [i686-unknown-linux-gnu, s390x-unknown-linux-gnu] steps: - uses: hecrj/setup-rust-action@v1 with: @@ -59,6 +60,7 @@ jobs: - run: cargo install cross - run: cross test --verbose --target=${{ matrix.target }} --no-default-features - run: cross test --verbose --target=${{ matrix.target }} + - run: cd derive && cross test --verbose --target=${{ matrix.target }} - run: cross test --verbose --target=${{ matrix.target }} --all-features if: matrix.rust == 'nightly' - run: cross test --verbose --target=${{ matrix.target }} --manifest-path=derive/Cargo.toml --all-features diff -audpNr third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/.gitignore third_party/rust/chromium_crates_io/vendor/bytemuck-v1/.gitignore --- third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/.gitignore 2026-01-06 08:20:51.000000000 +0900 +++ third_party/rust/chromium_crates_io/vendor/bytemuck-v1/.gitignore 2026-04-24 20:20:01.406164000 +0900 @@ -1,10 +1,6 @@ Cargo.lock Cargo.lock -/target/ -/.vscode/ - -# These are backup files generated by rustfmt **/*.rs.bk -/derive/target/ -/derive/.vscode/ +**/target/ +**/.vscode/ diff -audpNr third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/Cargo.lock third_party/rust/chromium_crates_io/vendor/bytemuck-v1/Cargo.lock --- third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/Cargo.lock 2026-01-06 08:20:51.000000000 +0900 +++ third_party/rust/chromium_crates_io/vendor/bytemuck-v1/Cargo.lock 2026-04-24 20:20:01.406323000 +0900 @@ -4,16 +4,17 @@ name = "bytemuck" [[package]] name = "bytemuck" -version = "1.23.2" +version = "1.25.0" dependencies = [ "bytemuck_derive", + "rustversion", ] [[package]] name = "bytemuck_derive" -version = "1.10.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", @@ -22,9 +23,9 @@ name = "proc-macro2" [[package]] name = "proc-macro2" -version = "1.0.94" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] @@ -39,10 +40,16 @@ dependencies = [ ] [[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] name = "syn" -version = "2.0.100" +version = "2.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" dependencies = [ "proc-macro2", "quote", diff -audpNr third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/Cargo.toml third_party/rust/chromium_crates_io/vendor/bytemuck-v1/Cargo.toml --- third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/Cargo.toml 2026-01-06 08:20:51.000000000 +0900 +++ third_party/rust/chromium_crates_io/vendor/bytemuck-v1/Cargo.toml 2026-04-24 20:20:01.406173000 +0900 @@ -12,10 +12,14 @@ name = "bytemuck" [package] edition = "2018" name = "bytemuck" -version = "1.23.2" +version = "1.25.0" authors = ["Lokathor "] build = false -exclude = ["/pedantic.bat"] +exclude = [ + "/pedantic.bat", + "derive/", + "contiguous_bitset/", +] autolib = false autobins = false autoexamples = false @@ -84,7 +88,7 @@ nightly_float = [] must_cast_extra = ["must_cast"] nightly_docs = [] nightly_float = [] -nightly_portable_simd = [] +nightly_portable_simd = ["rustversion"] nightly_stdsimd = [] pod_saturating = [] track_caller = [] @@ -136,7 +140,11 @@ path = "tests/wrapper_forgets.rs" path = "tests/wrapper_forgets.rs" [dependencies.bytemuck_derive] -version = "1.10.1" +version = "1.10.2" +optional = true + +[dependencies.rustversion] +version = "1.0.22" optional = true [lints.rust.unexpected_cfgs] diff -audpNr third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/changelog.md third_party/rust/chromium_crates_io/vendor/bytemuck-v1/changelog.md --- third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/changelog.md 2026-01-06 08:20:51.000000000 +0900 +++ third_party/rust/chromium_crates_io/vendor/bytemuck-v1/changelog.md 2026-04-24 20:20:01.406200000 +0900 @@ -1,5 +1,16 @@ # `bytemuck` changelog +## 1.25 + +* [Remove extern "stdcall" fn ptr impls on non-x86-32 windows.](https://github.com/Lokathor/bytemuck/pull/333) +* [Fix nightly_portable_simd after LaneCount removal.](https://github.com/Lokathor/bytemuck/pull/344) + +## 1.24 + +* [use new stable avx512 types from rust 1.89](https://github.com/Lokathor/bytemuck/pull/322) +* [impl AnyBitPattern for [MaybeUninit; N]](https://github.com/Lokathor/bytemuck/pull/317) +* bump `derive` minimum version. + ## 1.23.2 * bump `derive` minimum version. diff -audpNr third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/rustfmt.toml third_party/rust/chromium_crates_io/vendor/bytemuck-v1/rustfmt.toml --- third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/rustfmt.toml 2026-01-06 08:20:51.000000000 +0900 +++ third_party/rust/chromium_crates_io/vendor/bytemuck-v1/rustfmt.toml 2026-04-24 20:20:01.406304000 +0900 @@ -3,7 +3,7 @@ edition = "2018" # Stable edition = "2018" -fn_args_layout = "Compressed" +fn_params_layout = "Compressed" max_width = 80 tab_spaces = 2 use_field_init_shorthand = true diff -audpNr third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/src/anybitpattern.rs third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/anybitpattern.rs --- third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/src/anybitpattern.rs 2026-01-06 08:20:51.000000000 +0900 +++ third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/anybitpattern.rs 2026-04-24 20:20:01.406450000 +0900 @@ -62,3 +62,16 @@ unsafe impl AnyBitPattern for core::mem::MaybeUnini )] unsafe impl AnyBitPattern for core::mem::MaybeUninit where T: AnyBitPattern {} + +#[cfg(all(feature = "zeroable_maybe_uninit", feature = "min_const_generics"))] +#[cfg_attr( + feature = "nightly_docs", + doc(cfg(all( + feature = "zeroable_maybe_uninit", + feature = "min_const_generics" + ))) +)] +unsafe impl AnyBitPattern for [core::mem::MaybeUninit; N] where + T: AnyBitPattern +{ +} diff -audpNr third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/src/lib.rs third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/lib.rs --- third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/src/lib.rs 2026-01-06 08:20:51.000000000 +0900 +++ third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/lib.rs 2026-04-24 20:20:01.406482000 +0900 @@ -5,16 +5,10 @@ #![allow(clippy::uninlined_format_args)] #![allow(clippy::result_unit_err)] #![allow(clippy::type_complexity)] +#![allow(clippy::manual_is_multiple_of)] #![cfg_attr(feature = "nightly_docs", feature(doc_cfg))] #![cfg_attr(feature = "nightly_portable_simd", feature(portable_simd))] #![cfg_attr(feature = "nightly_float", feature(f16, f128))] -#![cfg_attr( - all( - feature = "nightly_stdsimd", - any(target_arch = "x86_64", target_arch = "x86") - ), - feature(stdarch_x86_avx512) -)] //! This crate gives small utilities for casting between plain data types. //! @@ -569,7 +563,7 @@ pub fn fill_zeroes(slice: &mut [T]) { // case one of the intermediate drops does a panic. slice.iter_mut().for_each(write_zeroes); } else { - // Otherwise we can be really fast and just fill everthing with zeros. + // Otherwise we can be really fast and just fill everything with zeros. let len = slice.len(); unsafe { core::ptr::write_bytes(slice.as_mut_ptr(), 0u8, len) } } diff -audpNr third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/src/must.rs third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/must.rs --- third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/src/must.rs 2026-01-06 08:20:51.000000000 +0900 +++ third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/must.rs 2026-04-24 20:20:01.406489000 +0900 @@ -114,7 +114,7 @@ maybe_const_fn! { /// ## Failure /// /// * If the target type has a greater alignment requirement. -/// * If the target element type doesn't evenly fit into the the current element +/// * If the target element type doesn't evenly fit into the current element /// type (eg: 3 `u16` values is 1.5 `u32` values, so that's a failure). /// * Similarly, you can't convert from a non-[ZST](https://doc.rust-lang.org/nomicon/exotic-sizes.html#zero-sized-types-zsts) /// to a ZST (e.g. 3 `u8` values is not any number of `()` values). diff -audpNr third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/src/pod.rs third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/pod.rs --- third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/src/pod.rs 2026-01-06 08:20:51.000000000 +0900 +++ third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/pod.rs 2026-04-24 20:21:02.083055000 +0900 @@ -143,6 +143,7 @@ impl_unsafe_marker_for_simd!( } ); +#[rustversion::before(1.95)] // See https://github.com/Lokathor/bytemuck/issues/343 #[cfg(feature = "nightly_portable_simd")] #[cfg_attr( feature = "nightly_docs", @@ -155,29 +156,41 @@ where { } +#[rustversion::since(1.95)] // See https://github.com/Lokathor/bytemuck/issues/343 +#[cfg(feature = "nightly_portable_simd")] +#[cfg_attr( + feature = "nightly_docs", + doc(cfg(feature = "nightly_portable_simd")) +)] +unsafe impl Pod for core::simd::Simd +where + T: core::simd::SimdElement + Pod, +{ +} + impl_unsafe_marker_for_simd!( - #[cfg(all(target_arch = "x86", any(feature = "nightly_stdsimd", feature = "avx512_simd")))] + #[cfg(all(target_arch = "x86", feature = "avx512_simd"))] unsafe impl Pod for x86::{ __m512, __m512d, __m512i } ); impl_unsafe_marker_for_simd!( - #[cfg(all(target_arch = "x86_64", any(feature = "nightly_stdsimd", feature = "avx512_simd")))] + #[cfg(all(target_arch = "x86_64", feature = "avx512_simd"))] unsafe impl Pod for x86_64::{ __m512, __m512d, __m512i } ); impl_unsafe_marker_for_simd!( - #[cfg(all(target_arch = "x86", feature = "nightly_stdsimd"))] + #[cfg(all(target_arch = "x86", feature = "avx512_simd"))] unsafe impl Pod for x86::{ __m128bh, __m256bh, __m512bh } ); impl_unsafe_marker_for_simd!( - #[cfg(all(target_arch = "x86_64", feature = "nightly_stdsimd"))] + #[cfg(all(target_arch = "x86_64", feature = "avx512_simd"))] unsafe impl Pod for x86_64::{ __m128bh, __m256bh, __m512bh } diff -audpNr third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/src/zeroable.rs third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/zeroable.rs --- third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/src/zeroable.rs 2026-01-06 08:20:51.000000000 +0900 +++ third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/zeroable.rs 2026-04-24 20:21:22.909406000 +0900 @@ -222,6 +222,7 @@ impl_unsafe_marker_for_simd!( } ); +#[rustversion::before(1.95)] // See https://github.com/Lokathor/bytemuck/issues/343 #[cfg(feature = "nightly_portable_simd")] #[cfg_attr( feature = "nightly_docs", @@ -234,29 +235,41 @@ where { } +#[rustversion::since(1.95)] // See https://github.com/Lokathor/bytemuck/issues/343 +#[cfg(feature = "nightly_portable_simd")] +#[cfg_attr( + feature = "nightly_docs", + doc(cfg(feature = "nightly_portable_simd")) +)] +unsafe impl Zeroable for core::simd::Simd +where + T: core::simd::SimdElement + Zeroable, +{ +} + impl_unsafe_marker_for_simd!( - #[cfg(all(target_arch = "x86", any(feature = "nightly_stdsimd", feature = "avx512_simd")))] + #[cfg(all(target_arch = "x86", feature = "avx512_simd"))] unsafe impl Zeroable for x86::{ __m512, __m512d, __m512i } ); impl_unsafe_marker_for_simd!( - #[cfg(all(target_arch = "x86_64", any(feature = "nightly_stdsimd", feature = "avx512_simd")))] + #[cfg(all(target_arch = "x86_64", feature = "avx512_simd"))] unsafe impl Zeroable for x86_64::{ __m512, __m512d, __m512i } ); impl_unsafe_marker_for_simd!( - #[cfg(all(target_arch = "x86", feature = "nightly_stdsimd"))] + #[cfg(all(target_arch = "x86", feature = "avx512_simd"))] unsafe impl Zeroable for x86::{ __m128bh, __m256bh, __m512bh } ); impl_unsafe_marker_for_simd!( - #[cfg(all(target_arch = "x86_64", feature = "nightly_stdsimd"))] + #[cfg(all(target_arch = "x86_64", feature = "avx512_simd"))] unsafe impl Zeroable for x86_64::{ __m128bh, __m256bh, __m512bh } diff -audpNr third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/src/zeroable_in_option.rs third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/zeroable_in_option.rs --- third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/src/zeroable_in_option.rs 2026-01-06 08:20:51.000000000 +0900 +++ third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/zeroable_in_option.rs 2026-04-24 20:20:01.406512000 +0900 @@ -52,9 +52,9 @@ macro_rules! impl_for_fn { unsafe impl<$($ArgTy,)* R> ZeroableInOption for unsafe extern "C" fn($($ArgTy,)*) -> R {} unsafe impl<$($ArgTy,)* R> ZeroableInOption for extern "system" fn($($ArgTy,)*) -> R {} unsafe impl<$($ArgTy,)* R> ZeroableInOption for unsafe extern "system" fn($($ArgTy,)*) -> R {} - #[cfg(target_os="windows")] + #[cfg(all(target_os="windows", target_arch = "x86"))] unsafe impl<$($ArgTy,)* R> ZeroableInOption for extern "stdcall" fn($($ArgTy,)*) -> R {} - #[cfg(target_os="windows")] + #[cfg(all(target_os="windows", target_arch = "x86"))] unsafe impl<$($ArgTy,)* R> ZeroableInOption for unsafe extern "stdcall" fn($($ArgTy,)*) -> R {} #[cfg(feature = "zeroable_unwind_fn")] impl_for_unwind_fn!($($ArgTy),*); diff -audpNr third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/tests/std_tests.rs third_party/rust/chromium_crates_io/vendor/bytemuck-v1/tests/std_tests.rs --- third_party/rust/chromium_crates_io/vendor/bytemuck-v1.orig/tests/std_tests.rs 2026-01-06 08:20:51.000000000 +0900 +++ third_party/rust/chromium_crates_io/vendor/bytemuck-v1/tests/std_tests.rs 2026-04-24 20:20:01.406225000 +0900 @@ -58,7 +58,7 @@ fn test_try_from_box_bytes() { // Different layout: target alignment is less than source alignment. assert_eq!( - try_from_box_bytes::(Box::new(0u64).into()).map_err(|(x, _)| x), + try_from_box_bytes::(Box::new(0u64).into()).map_err(|(x, _)| x), Err(PodCastError::AlignmentMismatch) );