-
Notifications
You must be signed in to change notification settings - Fork 13
Rust 1.89 baseline #27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
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.
There was a problem hiding this 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
rustversiondependency 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.
…t into rust-1.89-baseline
The Problem
We're using
rustversionto 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
MINORNotes
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.