Add shared CPU hardware capability detection in uucore to prevent
code duplication across utilities. This provides a unified interface
for detecting CPU features (AVX512, AVX2, PCLMUL, SSE2, ASIMD) and
respecting GLIBC_TUNABLES environment variable.
This unblocks PR #9088 (cksum --debug) and PR #9144 (wc --debug) by
providing a common implementation that both utilities can use.
Features:
- CPU feature detection with caching (singleton pattern)
- GLIBC_TUNABLES parsing for hwcaps restrictions
- Cross-platform support (x86/x86_64, aarch64)
- Comprehensive test coverage
- Zero-cost abstractions using std::arch
Implementation details:
- Uses std::arch feature detection (no external deps for detection)
- Adds cfg-if dependency for conditional compilation
- Feature-gated behind "hardware" feature flag
- Android excluded (no CPUID access in sandboxed environment)
Related: #9088, #9144
- Implement correct CRC32B algorithm with proper polynomial and initialization
- Add comprehensive test fixtures for CRC32B validation
- Support raw output format for CRC32B checksums
- Update dependencies and lock files for compatibility
- Fix code formatting and style issues
* feat(sort): add adaptive buffer sizing and fast paths
- move heuristics into a new buffer_hint module and default to automatic sizing when the buffer flag is absent
- tune chunk and external sort buffers to avoid runaway allocations
- add fast lexicographic and ASCII case-insensitive comparisons for the default mode
- refresh spell-check and dependency metadata for the new code
* fix(sort): reuse SIGINT handler for temporary directory cleanup
- keep the latest path/lock pair in a shared registry so SIGINT always cleans the active directory
- guard handler installation with an atomic flag and reset state when the wrapper is dropped
* refactor(sort): simplify merge batch size to fixed value
Remove Linux-specific dynamic adjustment based on file descriptors and use a fixed batch size of 64 for consistency across platforms.
* fix Cargo.lock linux environments