]> git.ipfire.org Git - thirdparty/zlib-ng.git/log
thirdparty/zlib-ng.git
32 hours agoRemove unnecessary string.h include in x86_features develop
Nathan Moinvaziri [Thu, 29 Jan 2026 03:48:43 +0000 (19:48 -0800)] 
Remove unnecessary string.h include in x86_features

39 hours agoUse index-based CRC macros and inline memcpy.
Nathan Moinvaziri [Mon, 26 Jan 2026 22:53:43 +0000 (14:53 -0800)] 
Use index-based CRC macros and inline memcpy.

39 hours agoLoop unroll for len >= 8 in crc32_copy_small.
Nathan Moinvaziri [Thu, 15 Jan 2026 04:17:53 +0000 (20:17 -0800)] 
Loop unroll for len >= 8 in crc32_copy_small.

39 hours agoMove crc32_copy_small to shared private header.
Nathan Moinvaziri [Thu, 15 Jan 2026 04:15:05 +0000 (20:15 -0800)] 
Move crc32_copy_small to shared private header.

2 days agoCombine Huffman code and extra bits into single shift operation
Dougall Johnson [Sun, 25 Jan 2026 18:34:14 +0000 (10:34 -0800)] 
Combine Huffman code and extra bits into single shift operation

This changes the "code" structure so that "bits" contains the total
number of bits, and "op & 15" contains the non-extra bit count.

Based on https://github.com/dougallj/zlib-dougallj/commit/34b9fc457b5247d7d2d732e6f28c9a80ff16abd7

Co-authored-by: Nathan Moinvaziri <nathan@nathanm.com>
4 days agoCheck cpuid availability on FreeBSD/OpenBSD when detecting fast/pmull
Nathan Moinvaziri [Sun, 25 Jan 2026 02:00:50 +0000 (18:00 -0800)] 
Check cpuid availability on FreeBSD/OpenBSD when detecting fast/pmull

6 days agoMove cleanup to inffast_tpl.h, clean up INFLATE_FAST
Pavel P [Wed, 21 Jan 2026 12:30:11 +0000 (14:30 +0200)] 
Move cleanup to inffast_tpl.h, clean up INFLATE_FAST

6 days agoAdd cleanup for defines that might be set before inclusion of chunkset_tpl.h
Pavel P [Wed, 21 Jan 2026 11:10:03 +0000 (13:10 +0200)] 
Add cleanup for defines that might be set before inclusion of chunkset_tpl.h

 + remove unused `HAVE_CHUNKUNROLL`
 + type `utilisation` => `utilization`

6 days agoRead architecture name from binary in detect-arch.
Nathan Moinvaziri [Sat, 17 Jan 2026 18:10:49 +0000 (10:10 -0800)] 
Read architecture name from binary in detect-arch.

6 days agoRemove architecture-specific compile definitions from build system
Nathan Moinvaziri [Sat, 17 Jan 2026 16:43:26 +0000 (08:43 -0800)] 
Remove architecture-specific compile definitions from build system

6 days agoConvert arch detection from preprocessor errors to runtime with header
Nathan Moinvaziri [Sun, 18 Jan 2026 03:12:44 +0000 (19:12 -0800)] 
Convert arch detection from preprocessor errors to runtime with header

6 days agoMove DoNotOptimize in benchmark loop to prevent it being optimized away
Nathan Moinvaziri [Thu, 22 Jan 2026 01:10:14 +0000 (17:10 -0800)] 
Move DoNotOptimize in benchmark loop to prevent it being optimized away

In some cases I've noticed incorrect 0 benchmark results from compiler
optimizing away len during hash benchmarks.

6 days agoUse MIN macro in a few more instances throughout the code
Nathan Moinvaziri [Tue, 20 Jan 2026 01:06:02 +0000 (17:06 -0800)] 
Use MIN macro in a few more instances throughout the code

6 days agoAdd ALIGN_UP and ALIGN_DOWN macros for readability
Nathan Moinvaziri [Thu, 8 Jan 2026 02:23:23 +0000 (18:23 -0800)] 
Add ALIGN_UP and ALIGN_DOWN macros for readability

7 days agoRemove redundant include directives
Robert Kausch [Fri, 23 Jan 2026 13:16:46 +0000 (14:16 +0100)] 
Remove redundant include directives

7 days agoMake feature macro tests more consistent
Robert Kausch [Wed, 21 Jan 2026 23:15:08 +0000 (00:15 +0100)] 
Make feature macro tests more consistent

- Test feature macros before any includes
- Use #ifdef over #if defined() for single macro tests
- Always include zbuild.h first

7 days agoTest feature macros in all implementation files
Robert Kausch [Mon, 19 Jan 2026 15:41:14 +0000 (16:41 +0100)] 
Test feature macros in all implementation files

7 days agoReduce code size and directly call in adler32_copy
Nathan Moinvaziri [Thu, 15 Jan 2026 07:53:18 +0000 (23:53 -0800)] 
Reduce code size and directly call in adler32_copy

There is no need for _impl when there is no const int COPY being used

7 days agoFix oversized pair allocation in adler32_vmx
Nathan Moinvaziri [Wed, 14 Jan 2026 23:39:34 +0000 (15:39 -0800)] 
Fix oversized pair allocation in adler32_vmx

7 days agoSkip redundant literal checks in inflate_fast
Nathan Moinvaziri [Fri, 16 Jan 2026 18:36:57 +0000 (10:36 -0800)] 
Skip redundant literal checks in inflate_fast

When we know a code is not a literal we can skip the redundant check for
op == 0.

7 days agoShared macros for inflate decoding trace statements
Nathan Moinvaziri [Fri, 16 Jan 2026 18:50:48 +0000 (10:50 -0800)] 
Shared macros for inflate decoding trace statements

Previously, trace statements for some literal decodes were not being
reported in inflate_fast.

7 days agoReplace conditional byte swapping with portable host/LE conversion
Nathan Moinvaziri [Fri, 16 Jan 2026 19:49:10 +0000 (11:49 -0800)] 
Replace conditional byte swapping with portable host/LE conversion

8 days agoRemove unnecessary CHUNK_SIZE define - rm last ref
Pavel P [Thu, 22 Jan 2026 16:43:43 +0000 (18:43 +0200)] 
Remove unnecessary CHUNK_SIZE define - rm last ref

8 days agoRemove unnecessary CHUNK_SIZE define
Pavel P [Thu, 22 Jan 2026 09:04:33 +0000 (11:04 +0200)] 
Remove unnecessary CHUNK_SIZE define

8 days agoDon't run testing with the extra corpora for RISC-V builds,
Hans Kristian Rosbach [Thu, 22 Jan 2026 15:32:46 +0000 (16:32 +0100)] 
Don't run testing with the extra corpora for RISC-V builds,
they take ~15min to finish a single job and they easily bog down
the whole CI queue when multiple pushes/PRs are queued.

8 days agoAlso upload coverage reports to coveralls.io
Hans Kristian Rosbach [Wed, 21 Jan 2026 17:39:28 +0000 (18:39 +0100)] 
Also upload coverage reports to coveralls.io

8 days ago- Merge -O3 test into prefix test.
Hans Kristian Rosbach [Thu, 22 Jan 2026 12:51:44 +0000 (13:51 +0100)] 
- Merge -O3 test into prefix test.
- Enable benchmarks in both prefix tests, to make sure they work with prefixes.

8 days agoSplit OSB builds out into separate workflow.
Hans Kristian Rosbach [Thu, 22 Jan 2026 10:39:49 +0000 (11:39 +0100)] 
Split OSB builds out into separate workflow.
Enable verbose for cmake build stage.

9 days agoAdd Windows ARM support for EOR3 feature detection and MSVC intrinsics
Mika Lindqvist [Tue, 13 Jan 2026 21:07:56 +0000 (13:07 -0800)] 
Add Windows ARM support for EOR3 feature detection and MSVC intrinsics

9 days agoCheck for null return value from getauxval(AT_PLATFORM)
Nathan Moinvaziri [Tue, 13 Jan 2026 03:11:00 +0000 (19:11 -0800)] 
Check for null return value from getauxval(AT_PLATFORM)

9 days agoGuard FreeBSD/OpenBSD auxv calls with HAVE_SYS_AUXV_H check
Brad Smith [Tue, 13 Jan 2026 02:38:35 +0000 (18:38 -0800)] 
Guard FreeBSD/OpenBSD auxv calls with HAVE_SYS_AUXV_H check

9 days agoAdd elf_aux_info() support on FreeBSD/OpenBSD for PMULL and EOR3
Brad Smith [Tue, 13 Jan 2026 02:38:35 +0000 (18:38 -0800)] 
Add elf_aux_info() support on FreeBSD/OpenBSD for PMULL and EOR3

Use elf_aux_info() to detect PMULL and EOR3 on FreeBSD and OpenBSD
aarch64.

9 days agoRemove unnecessary ARM_AUXV_HAS_NEON preprocessor check
Nathan Moinvaziri [Tue, 13 Jan 2026 03:25:57 +0000 (19:25 -0800)] 
Remove unnecessary ARM_AUXV_HAS_NEON preprocessor check

9 days agoRemove unnecessary ARM_AUXV_HAS_CRC32 preprocessor check
Nathan Moinvaziri [Tue, 13 Jan 2026 02:39:13 +0000 (18:39 -0800)] 
Remove unnecessary ARM_AUXV_HAS_CRC32 preprocessor check

9 days agoUse ARCH_64BIT preprocessor define in arm feature checks.
Nathan Moinvaziri [Tue, 13 Jan 2026 03:13:22 +0000 (19:13 -0800)] 
Use ARCH_64BIT preprocessor define in arm feature checks.

9 days agoClean up arm feature check return values.
Nathan Moinvaziri [Tue, 13 Jan 2026 03:35:34 +0000 (19:35 -0800)] 
Clean up arm feature check return values.

9 days agoPre-calculate last vector check ptr in compare256 for sse2 and lsx
Nathan Moinvaziri [Thu, 8 Jan 2026 07:51:08 +0000 (23:51 -0800)] 
Pre-calculate last vector check ptr in compare256 for sse2 and lsx

9 days agoAdd "None" for sanitizer option
Pavel P [Tue, 20 Jan 2026 19:52:13 +0000 (21:52 +0200)] 
Add "None" for sanitizer option

9 days agoMove cleanup undefs to insert_string_tpl.h
Pavel P [Tue, 20 Jan 2026 19:50:58 +0000 (21:50 +0200)] 
Move cleanup undefs to insert_string_tpl.h

9 days agoFix integer overflow in gz_compress_mmap
Vladislav Shchapov [Sat, 17 Jan 2026 13:46:50 +0000 (18:46 +0500)] 
Fix integer overflow in gz_compress_mmap

Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
10 days agoFix CI configure workflow failure artifact upload
Hans Kristian Rosbach [Tue, 13 Jan 2026 21:01:44 +0000 (22:01 +0100)] 
Fix CI configure workflow failure artifact upload

10 days agoExpand configure script testing.
Hans Kristian Rosbach [Sun, 11 Jan 2026 21:50:21 +0000 (22:50 +0100)] 
Expand configure script testing.
- Remove 2 redundant jobs.
- Add 1 new jobs.
- Test multiple non-conflicting options in more of the jobs.

10 days agoEnable codecov for more CI jobs.
Hans Kristian Rosbach [Sun, 11 Jan 2026 14:14:11 +0000 (15:14 +0100)] 
Enable codecov for more CI jobs.
Disable codecov where -O1 or higher is requested, since codecov sets -O0.
Disable codecov where tests are not run.
Add comments for jobs where codecov is not enabled.

10 days agoUse default clang version for most builds.
Hans Kristian Rosbach [Sun, 11 Jan 2026 17:17:26 +0000 (18:17 +0100)] 
Use default clang version for most builds.
Let one job use clang-15, and a few clang-20

10 days agoCombine ARM CI jobs testing non-NEON with non-ARMv8, as these have no common optimized
Hans Kristian Rosbach [Sun, 11 Jan 2026 22:05:51 +0000 (23:05 +0100)] 
Combine ARM CI jobs testing non-NEON with non-ARMv8, as these have no common optimized
functions. For Aarch64, use no-opt config for testing bothwithout Neon/Armv8.
This reduced cmake and configure jobs by 3 each.
Also reorder and rename a few other jobs to try to use a common style.

10 days agoRemove separate MMAP CI job by folding into another.
Hans Kristian Rosbach [Sun, 11 Jan 2026 18:03:27 +0000 (19:03 +0100)] 
Remove separate MMAP CI job by folding into another.
Remove separate REDUCED_MEM CI job by folding into another.
Make sure both are present for both GCC and Clang.
Add ZLIB_COMPAT to clang debug job.

10 days agoFix codecov parameter placement warnings.
Hans Kristian Rosbach [Sun, 11 Jan 2026 18:16:28 +0000 (19:16 +0100)] 
Fix codecov parameter placement warnings.

10 days agoAdd configured compiler defines to informational output,
Hans Kristian Rosbach [Sun, 11 Jan 2026 13:51:31 +0000 (14:51 +0100)] 
Add configured compiler defines to informational output,
this eases debugging, especially in CI where further inspection is hard.

10 days agoImprove detection of compiler code coverage support.
Hans Kristian Rosbach [Sun, 11 Jan 2026 13:49:06 +0000 (14:49 +0100)] 
Improve detection of compiler code coverage support.

10 days agoUnify baseline benchmarking for both adler32 and crc32.
Hans Kristian Rosbach [Thu, 15 Jan 2026 22:42:19 +0000 (23:42 +0100)] 
Unify baseline benchmarking for both adler32 and crc32.
Fix missing benchmarks of _copy functions for some platforms.

10 days agoUnify compare256/compare256_rle benchmarks and add rolling misalignment
Hans Kristian Rosbach [Wed, 14 Jan 2026 20:18:56 +0000 (21:18 +0100)] 
Unify compare256/compare256_rle benchmarks and add rolling misalignment

10 days agoUnify adler32/crc32 benchmarks and add rotating misalignment
Hans Kristian Rosbach [Wed, 14 Jan 2026 16:18:02 +0000 (17:18 +0100)] 
Unify adler32/crc32 benchmarks and add rotating misalignment
Add aligned benchmarks for adler32/crc32

10 days agoUse aligned alloc for insert_string benchmark
Hans Kristian Rosbach [Wed, 14 Jan 2026 20:20:47 +0000 (21:20 +0100)] 
Use aligned alloc for insert_string benchmark

10 days agoFix name collision in inflate benchmark
Hans Kristian Rosbach [Wed, 14 Jan 2026 22:37:34 +0000 (23:37 +0100)] 
Fix name collision in inflate benchmark

10 days agoMake deflate output deterministic if PREFIX3(stream) is reused after deflateReset
Vladislav Shchapov [Tue, 13 Jan 2026 20:02:47 +0000 (01:02 +0500)] 
Make deflate output deterministic if PREFIX3(stream) is reused after deflateReset

Co-authored-by: Marcin Kowalczyk <QrczakMK@gmail.com>
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
13 days agoPrefix macros with z in crc32_vpclmulqdq for clarity
Nathan Moinvaziri [Tue, 13 Jan 2026 18:04:55 +0000 (10:04 -0800)] 
Prefix macros with z in crc32_vpclmulqdq for clarity

13 days agoUse epi32 variants for older MSVC (v141/v140) to avoid cast warnings
Nathan Moinvaziri [Tue, 13 Jan 2026 16:43:26 +0000 (08:43 -0800)] 
Use epi32 variants for older MSVC (v141/v140) to avoid cast warnings

13 days agoFix cast truncates constant value warnings with ternarylogic on Win v141
Nathan Moinvaziri [Mon, 12 Jan 2026 01:16:36 +0000 (17:16 -0800)] 
Fix cast truncates constant value warnings with ternarylogic on Win v141

13 days agoUse epi64 intrinsics for VPCLMULQDQ operations
Nathan Moinvaziri [Sun, 11 Jan 2026 22:53:45 +0000 (14:53 -0800)] 
Use epi64 intrinsics for VPCLMULQDQ operations

PCLMULQDQ operates on 64-bit polynomial elements, so use epi64 intrinsics
throughout to provide accurate type information to the compiler.

13 days agoUse masked load/store in partial folding in crc32_vpclmulqdq.
Nathan Moinvaziri [Sun, 11 Jan 2026 20:05:46 +0000 (12:05 -0800)] 
Use masked load/store in partial folding in crc32_vpclmulqdq.

13 days agoCombine final_fold function to remove extra len branch
Nathan Moinvaziri [Sun, 11 Jan 2026 20:03:26 +0000 (12:03 -0800)] 
Combine final_fold function to remove extra len branch

13 days agoEliminate extra vmovdqu instruction folding xmm into zmm.
Nathan Moinvaziri [Sun, 11 Jan 2026 19:32:44 +0000 (11:32 -0800)] 
Eliminate extra vmovdqu instruction folding xmm into zmm.

Fixed by using _mm512_castsi128_si512() and removing redundant insert.

13 days agoClean up variable names for readability in zmm path.
Nathan Moinvaziri [Sat, 3 Jan 2026 07:47:34 +0000 (23:47 -0800)] 
Clean up variable names for readability in zmm path.

13 days agoDon't compile in Chorba for vpclmulqdq because it is never used
Nathan Moinvaziri [Sat, 3 Jan 2026 02:14:24 +0000 (18:14 -0800)] 
Don't compile in Chorba for vpclmulqdq because it is never used

By the time Chorba if statement is hit, len is already reduced to < 256.

13 days agoCombine partial and final fold and reduce the number of operations
Nathan Moinvaziri [Sun, 11 Jan 2026 19:34:45 +0000 (11:34 -0800)] 
Combine partial and final fold and reduce the number of operations

We do the partial fold after we have folded the crc32 state into a single
128-bit value.

13 days agoGenerate shuffle masks in registers for partial_fold.
Nathan Moinvaziri [Fri, 2 Jan 2026 23:03:33 +0000 (15:03 -0800)] 
Generate shuffle masks in registers for partial_fold.

Faster than loading table into memory.

13 days agoUse mm_blend_epi16 in crc32_(v)pclmulqdq final reduction
Nathan Moinvaziri [Fri, 2 Jan 2026 22:47:53 +0000 (14:47 -0800)] 
Use mm_blend_epi16 in crc32_(v)pclmulqdq final reduction

This is the preferred operation mentioned in
https://www.corsix.org/content/alternative-exposition-crc32_4k_pclmulqdq

13 days agoUse ternarylogic when available in crc32_vpclmulqdq.
Nathan Moinvaziri [Sun, 11 Jan 2026 20:17:34 +0000 (12:17 -0800)] 
Use ternarylogic when available in crc32_vpclmulqdq.

13 days agoHoist folding constants to function scope to avoid repeated loads
Nathan Moinvaziri [Sat, 3 Jan 2026 02:26:16 +0000 (18:26 -0800)] 
Hoist folding constants to function scope to avoid repeated loads

13 days agoBatch PCLMULQDQ operations to reduce latency
Nathan Moinvaziri [Sun, 11 Jan 2026 21:28:20 +0000 (13:28 -0800)] 
Batch PCLMULQDQ operations to reduce latency

13 days agoMove remaining fold calls before load to hide latency
Nathan Moinvaziri [Fri, 2 Jan 2026 08:46:36 +0000 (00:46 -0800)] 
Move remaining fold calls before load to hide latency

All fold calls are now consistent in this respect.

13 days agoRevert "Move fold calls closer to last change in xmm_crc# variables."
Nathan Moinvaziri [Fri, 2 Jan 2026 03:26:14 +0000 (19:26 -0800)] 
Revert "Move fold calls closer to last change in xmm_crc# variables."

The fold calls were in a better spot before begin located after loads to
reduce latency.

This reverts commit cda0827b6d522acdb2656114e2c4b7b18b6c1c20.

13 days agoRemove old comments about crc32 folding from crc32 benchmark.
Nathan Moinvaziri [Wed, 31 Dec 2025 23:18:38 +0000 (15:18 -0800)] 
Remove old comments about crc32 folding from crc32 benchmark.

13 days agoRemove unnecessary casts from crc32_(v)pclmulqdq.
Nathan Moinvaziri [Fri, 2 Jan 2026 06:49:56 +0000 (22:49 -0800)] 
Remove unnecessary casts from crc32_(v)pclmulqdq.

Originally, some compilers and older versions of intrinsics libraries only
provided _mm_xor_ps (for __m128) and not _mm_xor_si128 (for __m128i).
Developers would cast integer vectors to float vectors to use the XOR
operation, then cast back. Modern compilers and intrinsics headers provide
_mm_xor_si128, making these casts unnecessary.

2 weeks agoSimplify CRC32 complement operations using bitwise NOT operator
Nathan Moinvaziri [Tue, 13 Jan 2026 00:47:43 +0000 (16:47 -0800)] 
Simplify CRC32 complement operations using bitwise NOT operator

2 weeks agoFix space indentation formatting in crc32_zbc
Nathan Moinvaziri [Tue, 13 Jan 2026 00:44:48 +0000 (16:44 -0800)] 
Fix space indentation formatting in crc32_zbc

2 weeks agoAdd fallback for __has_builtin to prevent unmatched parenthesis warning
Nathan Moinvaziri [Sun, 11 Jan 2026 21:11:08 +0000 (13:11 -0800)] 
Add fallback for __has_builtin to prevent unmatched parenthesis warning

Occurs on MSVC.

2 weeks agoAdd ARM __builtin_bitreverse16 fallback implementation for GCC.
Nathan Moinvaziri [Tue, 13 Jan 2026 17:01:11 +0000 (09:01 -0800)] 
Add ARM __builtin_bitreverse16 fallback implementation for GCC.

2 weeks agoRemove compiler check for builtin_bitreverse16 since we check in code
Nathan Moinvaziri [Sun, 11 Jan 2026 00:22:43 +0000 (16:22 -0800)] 
Remove compiler check for builtin_bitreverse16 since we check in code

And we have a generic fallback

2 weeks ago__builtin_bitreverse16 CMake compiler check fails for GCC 13
Nathan Moinvaziri [Sat, 10 Jan 2026 01:38:55 +0000 (17:38 -0800)] 
__builtin_bitreverse16 CMake compiler check fails for GCC 13

Provide a final check for __builtin_bitreverse16 in code.

2 weeks agoUse GCC's may_alias attribute for access to buffers in crc32_chorba
Vladislav Shchapov [Wed, 7 Jan 2026 19:30:19 +0000 (00:30 +0500)] 
Use GCC's may_alias attribute for access to buffers in crc32_chorba

Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2 weeks agoAdd Z_UNREACHABLE compiler hint
Hans Kristian Rosbach [Tue, 13 Jan 2026 14:32:53 +0000 (15:32 +0100)] 
Add Z_UNREACHABLE compiler hint

2 weeks agoFix (impossible) infinite loop in gz_fetch() detected by GCC-14 static analyzer.
Hans Kristian Rosbach [Tue, 13 Jan 2026 13:55:37 +0000 (14:55 +0100)] 
Fix (impossible) infinite loop in gz_fetch() detected by GCC-14 static analyzer.
According to the comment, gz_fetch() also assumes that state->x.have == 0, so
lets add an Assert to that effect.

2 weeks agoUpdate static analyzer from targeting GCC v10 to v14
Hans Kristian Rosbach [Mon, 12 Jan 2026 19:52:47 +0000 (20:52 +0100)] 
Update static analyzer from targeting GCC v10 to v14

2 weeks agoFix symbol mangling so symbols in shared library are exported correctly
Mika T. Lindqvist [Mon, 12 Jan 2026 01:42:13 +0000 (03:42 +0200)] 
Fix symbol mangling so symbols in shared library are exported correctly
* We need to mangle symbols in the map file, otherwise none of the symbols are exported
* Fix gz_error name conflict with zlib-ng API

2 weeks agoRemove extra indirection calling into crc32_z functions.
Nathan Moinvaziri [Mon, 12 Jan 2026 22:57:50 +0000 (14:57 -0800)] 
Remove extra indirection calling into crc32_z functions.

This also prevents the double-checking of buf == NULL.

2 weeks agoClean up buf == NULL handling on adler32 functions and test strings.
Nathan Moinvaziri [Mon, 12 Jan 2026 19:18:56 +0000 (11:18 -0800)] 
Clean up buf == NULL handling on adler32 functions and test strings.

2 weeks agoFixed UB in adler32_avx512_copy storemask when len is 0.
Nathan Moinvaziri [Sun, 11 Jan 2026 00:13:54 +0000 (16:13 -0800)] 
Fixed UB in adler32_avx512_copy storemask when len is 0.

2 weeks agoRename and reorder properties in hash_test.
Nathan Moinvaziri [Thu, 8 Jan 2026 19:02:08 +0000 (11:02 -0800)] 
Rename and reorder properties in hash_test.

2 weeks agoMerge adler32 and crc32 hash test strings.
Nathan Moinvaziri [Sat, 10 Jan 2026 18:29:05 +0000 (10:29 -0800)] 
Merge adler32 and crc32 hash test strings.

2 weeks agoAdd adler32_copy unit test
Nathan Moinvaziri [Wed, 7 Jan 2026 08:39:25 +0000 (00:39 -0800)] 
Add adler32_copy unit test

2 weeks agoSeparate adler32 test strings into their own source header
Nathan Moinvaziri [Wed, 7 Jan 2026 08:34:02 +0000 (00:34 -0800)] 
Separate adler32 test strings into their own source header

2 weeks agoSimplify the gzread.c name mangling workaround by splitting out just
Hans Kristian Rosbach [Sat, 10 Jan 2026 21:08:13 +0000 (22:08 +0100)] 
Simplify the gzread.c name mangling workaround by splitting out just
the workaround into a separate file. This allows us to browse gzread.c
with code highlighting and it allows codecov to record coverage data.

2 weeks agoDon't count tests/tools towards overall project coverage.
Hans Kristian Rosbach [Sat, 10 Jan 2026 22:32:49 +0000 (23:32 +0100)] 
Don't count tests/tools towards overall project coverage.
Set project coverage target to 80%.
Loosen project coverage reduction threshold to 10% to avoid failing coverage
tests when CI happens to run on hosts that do not support AVX-512.
Set component coverage reduction thresholds low, except for common and
arch_x86 that need higher limits due to the AVX-512 CI hosts.

2 weeks agoUpdate to GoogleTest 1.16.0.
Vladislav Shchapov [Fri, 9 Jan 2026 20:02:11 +0000 (01:02 +0500)] 
Update to GoogleTest 1.16.0.
This requires minimum CMake 3.13 and C++14, this matches nicely with zlib-ng 2.3.x requirements.

Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2 weeks agoReplace deprecated FetchContent_Populate with FetchContent_MakeAvailable
Vladislav Shchapov [Fri, 9 Jan 2026 19:47:20 +0000 (00:47 +0500)] 
Replace deprecated FetchContent_Populate with FetchContent_MakeAvailable

Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2 weeks agoRemove always TRUE or FALSE CMake version checks
Vladislav Shchapov [Fri, 9 Jan 2026 19:01:03 +0000 (00:01 +0500)] 
Remove always TRUE or FALSE CMake version checks

Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2 weeks agoSet minimum and upper compatible CMake version
Vladislav Shchapov [Fri, 9 Jan 2026 18:55:13 +0000 (23:55 +0500)] 
Set minimum and upper compatible CMake version

Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2 weeks agodeflateinit was still checking for failed secondary allocations, this is
Hans Kristian Rosbach [Sat, 10 Jan 2026 20:31:06 +0000 (21:31 +0100)] 
deflateinit was still checking for failed secondary allocations, this is
no longer necessary as we only allocate a single buffer and has already
been checked for failure before this.

2 weeks agoExplicitly define the __SSE__ and __SSE2__ macros, since starting with MSVS 2012...
Vladislav Shchapov [Thu, 8 Jan 2026 19:27:55 +0000 (00:27 +0500)] 
Explicitly define the __SSE__ and __SSE2__ macros, since starting with MSVS 2012 the default instruction set is SSE2

Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>