Skip to content

Conversation

@onethumb
Copy link
Contributor

@onethumb onethumb commented Nov 9, 2025

The Problem

We're using rustversion to gate AVX-512 operations for Rust versions < 1.89 (when AVX-512 stabilized).

The Solution

At some point, 1.89.0 will have been around long enough, we should just baseline it and remove rustversion.

Planned version bump

  • Which: MINOR
  • Why: non-breaking Rust version requirement change

Notes

Not doing this quite yet, just getting ready for the day we can. We'll probably draft off of the AWS Rust SDK (the largest current consumer of this crate) and go from there.

1.89.0 is when AVX-512 support was stabilized. Moving to 1.89.0 allows
us to remove a lot of legacy code gated behind the `rustversion` crate,
simplifying things and improving maintainability.
@onethumb onethumb requested a review from Copilot November 9, 2025 05:45
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR bumps the minimum supported Rust version from 1.81 to 1.89 to enable unconditional use of AVX-512 intrinsics. The change removes all conditional compilation based on Rust version, simplifying the codebase significantly.

  • Removes the rustversion dependency and all #[rustversion::since(1.89)] and #[rustversion::before(1.89)] attributes
  • Eliminates runtime and compile-time checks for Rust version support of AVX-512 features
  • Updates CI workflows to test only Rust 1.89+ versions

Reviewed Changes

Copilot reviewed 10 out of 12 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
Cargo.toml Bumps rust-version to 1.89, removes rustversion and indexmap dependencies
Cargo.lock Updates lockfile version to 4 and indexmap version to 2.12.0, removes rustversion
src/feature_detection.rs Removes rust_version_supports_avx512 field and related version checking logic, removes duplicate version-gated enums and functions
src/crc32/fusion/x86/mod.rs Removes rustversion attributes and pre-1.89 fallback implementations
src/crc32/fusion/x86/iscsi/*.rs Removes rustversion attributes from AVX-512 functions
src/bin/checksum.rs Modernizes code to use is_multiple_of method
src/arch/x86_64/avx512_vpclmulqdq.rs Removes rustversion attributes from all items
src/arch/x86_64/avx512.rs Removes rustversion attributes and pre-1.89 fallback for xor3_vectors
src/arch/vpclmulqdq.rs Entire file removed (629 lines)
src/arch/mod.rs Removes duplicate version-gated update function and x86_software_update helper
.github/workflows/tests.yml Removes Rust 1.81 from test matrix across all jobs

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant