Conversation
WalkthroughVersion constants updated across header and source files to reflect a transition from beta to release candidate status. ZLIBNG_VERNUM, ZLIBNG_VER_STATUS, ZLIBNG_VER_STATUSH macros modified, and the public version string updated from 2.3.0-beta to 2.3.0-rc1. Changes
Possibly related PRs
Suggested labels
Suggested reviewers
Pre-merge checks and finishing touches❌ Failed checks (1 inconclusive)
✅ Passed checks (1 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #1994 +/- ##
============================================
+ Coverage 40.67% 81.76% +41.09%
============================================
Files 73 161 +88
Lines 7364 12960 +5596
Branches 1308 3149 +1841
============================================
+ Hits 2995 10597 +7602
+ Misses 4112 1317 -2795
- Partials 257 1046 +789 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
x86-64 on a Intel i7-11700K (Rocket Lake) 2.3.0-beta1v2.2.5AVX512:
Decompression seems to bench slightly slower, but considering the very short times involved, it is hard to tell whether it is real or incidental, it does vary a bit between builds of different configs. |
This is a feature release that introduces several optimizations and improvements.
The biggest addition is the Chorba CRC32 code, this is a major improvement to crc32 calculation speed for pre-CLMUL cpus. For now, we have 3 variants of Chorba: Generic, SSE2 and SSE4.1.
We have also removed our detection and usage of the various aligned alloc functions, because we need to support an application-provided alloc function, we have to check and fix buffer alignments anyway, so now we just use malloc() if none is provided.
The gzopen-related init code has been rewritten to clean up and unify the gzread and gzwrite behavior. Several malloc calls removed, places in the gz* code with malloc calls is down from 7 to 4 places (using gzopen will now only result in 2-3 calls to malloc total).
The reason for releasing 2.3.x instead of another 2.2 release is the introduction of Chorba CRC32, rewritten gzopen init code, the increased CMake version requirement, and the removal of NMake project files. There should not be any API/ABI changes (other than on the previously failing platforms fixed by #1980).
2.3.0
Important fixes/changes
Optimizations
Arch-Specific improvements/optimizations
Buildsystem
Tests/Benchmarks
cleanup3#1979CI
Misc