This release focuses on CLI stability and I/O performance optimizations, resolving issues with archive consistency across different output targets.
Changes
- Fixed stdout consistency: Resolved a memory management issue in the CLI where custom buffers were freed before stream closure, causing size discrepancies when redirecting output to
stdout(Issue #36). - Buffer management: Improved
setvbufhandling to ensure safe teardown and flushing of I/O streams across all platforms (Linux, Windows, macOS). - Increments patch version to 0.3.3 by @tansy
- Fixes buffering issues with
stdinandstdoutby @tansy & @hellobertrand in #37
Acknowledgments
A special thank you to @tansy for identifying the archive size discrepancy and providing the comprehensive test case required for reproduction and verification.
Download Guide
Build Selection
| CPU Generation | Linux | Windows | macOS |
|---|---|---|---|
| x86-64 (2006+) | zxc-linux-x86_64.tar.gz
| zxc-windows-x64.exe.zip
| - |
| AVX2 (2013+, Haswell) | zxc-linux-x86_64-avx2.tar.gz
| zxc-windows-x64-avx2.exe.zip
| - |
| AVX512 (2017+, Skylake-X) | zxc-linux-x86_64-avx512.tar.gz
| zxc-windows-x64-avx512.exe.zip
| - |
| ARM64 | zxc-linux-aarch64.tar.gz
| - | zxc-macos-arm64.tar.gz
|
Unsure? Use the generic x86-64 build for universal compatibility.
CPU Feature Detection (x86)
# Linux
grep -E 'avx512|avx2' /proc/cpuinfo | head -1
# Windows (PowerShell)
Get-WmiObject Win32_Processor | Select-Object NamePerformance
- x86-64: Baseline (SSE2)
- AVX2: ~20-30% faster than baseline
- AVX512: ~40-60% faster than baseline (tested with Intel SDE)
Build from Source
For optimal CPU-specific performance:
git clone https://github.com/hellobertrand/zxc.git
cd zxc && mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DZXC_NATIVE_ARCH=ON ..
cmake --build . --parallelEnables -march=native for maximum SIMD utilization.
Full Changelog: v0.3.2...v0.3.3