]>
git.ipfire.org Git - thirdparty/zlib-ng.git/log
Hans Kristian Rosbach [Sat, 7 Mar 2026 23:17:09 +0000 (00:17 +0100)]
Use ARM64 runners for all ARM-based builds
Hans Kristian Rosbach [Sat, 7 Mar 2026 23:02:01 +0000 (00:02 +0100)]
Run lint in ubuntu-slim, a lightweight actions runner
Hans Kristian Rosbach [Sat, 7 Mar 2026 22:18:54 +0000 (23:18 +0100)]
Github workers have been increased from 2 to 4 cores, increase concurrency.
Hans Kristian Rosbach [Sat, 7 Mar 2026 21:05:22 +0000 (22:05 +0100)]
Remove codecov from CI
Hans Kristian Rosbach [Sat, 7 Mar 2026 20:48:31 +0000 (21:48 +0100)]
Rename coverage name parameter
Hans Kristian Rosbach [Sat, 7 Mar 2026 15:38:32 +0000 (16:38 +0100)]
Don't use GCC for ASAN/UBSAN on S390x
Hans Kristian Rosbach [Sat, 7 Mar 2026 13:44:25 +0000 (14:44 +0100)]
Reduce git clone download to only relevant source folders.
Reduces download from 2.3GB to 176MB.
Also reduce compile time by only compiling shared libcxx.
Mika Lindqvist [Fri, 6 Mar 2026 18:06:12 +0000 (20:06 +0200)]
Fix building with C23 support
* Z_UNREACHABLE() macro can't be followed by any code in same block scope
Nathan Moinvaziri [Thu, 26 Feb 2026 21:47:20 +0000 (13:47 -0800)]
Add support for building benchmarks with alternative zlib library
Mika Lindqvist [Sun, 22 Feb 2026 10:17:21 +0000 (12:17 +0200)]
[CI] Add workflow to test MSVC 18 2026.
Mathias Berchtold [Sat, 21 Feb 2026 22:01:11 +0000 (15:01 -0700)]
Add MSVC support for Z_UNREACHABLE macro
Add Z_UNREACHABLE fallback for MSVC, as the C23 unreachable macro is not yet defined in the Windows SDK's <stddef.h>.
Mika Lindqvist [Fri, 6 Mar 2026 12:24:43 +0000 (14:24 +0200)]
Relax alignment requirement in NEON_accum32.
* UBSAN thinks only 16 byte alignment can be guaranteed.
Hans Kristian Rosbach [Mon, 2 Mar 2026 19:17:36 +0000 (20:17 +0100)]
CI: Stop trying to use GCC on macOS, it is apparently deprecated and
keeps breaking every time github actions releases new images.
Converted to use Clang instead
Hans Kristian Rosbach [Mon, 2 Mar 2026 21:42:09 +0000 (22:42 +0100)]
CMake: UBSAN: Don't enable 'unsigned-integer-overflow' and 'unsigned-shift-base' checks.
Nathan Moinvaziri [Mon, 23 Feb 2026 22:26:41 +0000 (14:26 -0800)]
Simplify adler32 alignment loops to advance pointers
Replace done-offset tracking with direct pointer advancement in NEON,
VMX, and SSSE3 adler32 implementations. Use ALIGN_DIFF consistently
across all architectures for the initial alignment step.
Cameron Cawley [Sat, 8 Feb 2025 20:36:58 +0000 (20:36 +0000)]
Make use of NEON alignment hints
dependabot[bot] [Sun, 1 Mar 2026 07:03:46 +0000 (07:03 +0000)]
Bump actions/download-artifact from 7 to 8
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v7...v8)
---
updated-dependencies:
- dependency-name: actions/download-artifact
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] [Sun, 1 Mar 2026 07:03:56 +0000 (07:03 +0000)]
Bump actions/upload-artifact from 6 to 7
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Vladislav Shchapov [Tue, 24 Feb 2026 11:49:04 +0000 (16:49 +0500)]
Update MCST qemu-e2k
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
Nathan Moinvaziri [Tue, 20 Jan 2026 19:34:22 +0000 (11:34 -0800)]
Keep bi_buf/bi_valid in registers across compress_block loop
Refactor the emit functions to take bi_buf and bi_valid by reference,
allowing compress_block() to keep these values in CPU registers for the
entire duration of the main compression loop instead of reloading them
from memory on every iteration.
This eliminates two memory loads (s->bi_buf, s->bi_valid) and two memory
stores per symbol in the hot path.
Vladislav Shchapov [Thu, 19 Feb 2026 17:02:13 +0000 (22:02 +0500)]
Set version for the develop branch to 2.3.90
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
Nathan Moinvaziri [Mon, 2 Feb 2026 02:56:04 +0000 (18:56 -0800)]
Prioritize compile-time checks in ARM feature detection
Dougall Johnson [Fri, 23 Jan 2026 20:53:35 +0000 (12:53 -0800)]
Add branch hints to inflate_fast.
Co-authored-by: Nathan Moinvaziri <nathan@nathanm.com>
Mika T. Lindqvist [Wed, 18 Feb 2026 17:41:16 +0000 (19:41 +0200)]
[CI] Retain CMake configure log if configuring fails
* We need to add CMakeConfigureLog.yaml to build artifacts to diagnose configuration failures
Nathan Moinvaziri [Wed, 18 Feb 2026 04:31:35 +0000 (20:31 -0800)]
Cleanup pointer style and parameter names in crc32 chorba functions
Nathan Moinvaziri [Tue, 3 Feb 2026 08:25:11 +0000 (00:25 -0800)]
Add missing native_crc32_copy define for SSE2 chorba
Nathan Moinvaziri [Wed, 18 Feb 2026 04:24:51 +0000 (20:24 -0800)]
Fix missing address-of operators for s390 functable assignments
Nathan Moinvaziri [Wed, 18 Feb 2026 04:24:36 +0000 (20:24 -0800)]
Fix missing address-of operators for LoongArch functable assignments
Nathan Moinvaziri [Wed, 18 Feb 2026 08:08:25 +0000 (00:08 -0800)]
Add POWER8 VSX and S390 VX CRC32 copy tests
Nathan Moinvaziri [Sun, 1 Feb 2026 00:57:24 +0000 (16:57 -0800)]
Optimize symbol buffer access based on platform unaligned access
Nathan Moinvaziri [Wed, 21 Jan 2026 16:51:54 +0000 (08:51 -0800)]
Use offset addressing when accessing s->sym_buf.
Also optimize sym_next access by caching in local variable
Nathan Moinvaziri [Mon, 19 Jan 2026 01:03:26 +0000 (17:03 -0800)]
Refactor and unify adler32 short length processing.
We have one function for aligning and one for tail processing. When
processing the tail, we only need to rebase if there is data left to
process, by checking for this condition we can reduce a rebase which
is benefitical for slower machines.
Used a DO4 loop maximum for the inlined tail for GCC/-O2 to limit
register pressure on x86.
For tails where MAX_LEN can be larger, we support using DO16 similar
to the default loop used in scalar C version of adler32.
Z_RESTRICT is necessary to let the compiler know that src and dst
won't overlap and that it doesn't have to account for that case.
Cameron Cawley [Thu, 2 Oct 2025 22:21:35 +0000 (23:21 +0100)]
Fix incorrect use of chorba_word_t in 64-bit only function
Cameron Cawley [Thu, 2 Oct 2025 22:09:58 +0000 (23:09 +0100)]
Simplify alignment casts in Chorba code
Cameron Cawley [Thu, 2 Oct 2025 21:08:05 +0000 (22:08 +0100)]
Split CRC32 Braid and Chorba word types
Sergey [Tue, 17 Feb 2026 03:42:02 +0000 (20:42 -0700)]
cmake: Fix ARCH is empty in detect-arch
The both `CMAKE_C_COMPILER_TARGET` and `CMAKE_SYSTEM_PROCESSOR` are undefined
while configuring UWP/WinRT build with Clang:
`-G Ninja -D CMAKE_SYSTEM_NAME=WindowsStore`.
These variables are undefined because `-m` is not set to Clang.
`CMAKE_C_COMPILER_ARCHITECTURE_ID` could be used, but it would cause a more
significant change of the cmake script.
Cameron Cawley [Thu, 2 Oct 2025 18:53:14 +0000 (19:53 +0100)]
Simplify types used in chunkset code
Nathan Moinvaziri [Wed, 11 Feb 2026 19:32:42 +0000 (11:32 -0800)]
Remove unnecessary casts on malloc return values
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Entire-Checkpoint:
4161f7d0eb58
Nathan Moinvaziri [Wed, 11 Feb 2026 19:30:51 +0000 (11:30 -0800)]
Remove unnecessary (unsigned long) cast on BASE in adler32_combine
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Entire-Checkpoint:
6c7c0a66bf83
Nathan Moinvaziri [Wed, 11 Feb 2026 04:05:09 +0000 (20:05 -0800)]
Remove unnecessary (int) casts on sizeof in switch statements
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Entire-Checkpoint:
f6b3cea7e41a
Nathan Moinvaziri [Wed, 11 Feb 2026 04:03:36 +0000 (20:03 -0800)]
Remove unnecessary void */char * casts on memcpy/memset arguments
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Entire-Checkpoint:
67a463e1a497
Nathan Moinvaziri [Wed, 11 Feb 2026 03:57:32 +0000 (19:57 -0800)]
Change zng_tr_stored_block/zng_tr_flush_block buf param to unsigned char *
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Entire-Checkpoint:
ddbe63c4b22e
Paul Marquess [Sun, 15 Feb 2026 12:15:33 +0000 (12:15 +0000)]
Fix typo - missing closing quote
Paul Marquess [Sun, 15 Feb 2026 12:11:33 +0000 (12:11 +0000)]
Take account of use-case where there is an empty git tree object when reading the BASE_SHA
Paul Marquess [Sat, 14 Feb 2026 16:29:40 +0000 (16:29 +0000)]
add workflow_dispatch to most of the workflow files
Nathan Moinvaziri [Tue, 17 Feb 2026 01:50:11 +0000 (17:50 -0800)]
Add .vscode to .gitignore
Nathan Moinvaziri [Sat, 14 Feb 2026 22:24:33 +0000 (14:24 -0800)]
Fixed unused function warning for arm_has_cpuid
Nathan Moinvaziri [Sat, 14 Feb 2026 22:24:11 +0000 (14:24 -0800)]
Remove unnecessary ARCH_ARM in arm_features.c
Mika T. Lindqvist [Fri, 13 Feb 2026 01:10:55 +0000 (03:10 +0200)]
Fix building on RISC-V without RVV.
Herman Semenoff [Mon, 9 Feb 2026 14:19:55 +0000 (17:19 +0300)]
deflate_medium: more readability initialize structs match
Mika T. Lindqvist [Sat, 6 Dec 2025 21:52:57 +0000 (23:52 +0200)]
[configure] Add initial support for NVHPC toolchain.
* Improve detecting default compiler
Mika Lindqvist [Mon, 9 Feb 2026 10:48:21 +0000 (12:48 +0200)]
[zconf] Fix LFS support on Windows
* Windows doesn't have unistd.h, so z_off_t declaration only can depend on value of Z_HAVE_UNISTD_H.
Nathan Moinvaziri [Fri, 6 Feb 2026 06:25:07 +0000 (22:25 -0800)]
Cleanup formatting for crc32_chorba files
Vladislav Shchapov [Sat, 31 Jan 2026 17:08:29 +0000 (22:08 +0500)]
Add e2k codecov build
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
Vladislav Shchapov [Tue, 27 Jan 2026 15:13:57 +0000 (20:13 +0500)]
Add e2k CI
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
Vladislav Shchapov [Sun, 25 Jan 2026 17:52:15 +0000 (22:52 +0500)]
Add e2k support
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
Nathan Moinvaziri [Mon, 26 Jan 2026 08:45:07 +0000 (00:45 -0800)]
Remove build script compiler checks for ctz builtins
Nathan Moinvaziri [Mon, 26 Jan 2026 08:35:21 +0000 (00:35 -0800)]
Cleanup and rename bitreverse16 after ctz builtin refactoring
Nathan Moinvaziri [Mon, 2 Feb 2026 21:25:08 +0000 (13:25 -0800)]
Cleanup compare256 and compare256_rle implementations.
We no longer need to check for HAVE_BUILTIN_CTZ or HAVE_BUILTIN_CTZLL,
since that logic is now handled in zng_ctz32/zng_ctz64.
Nathan Moinvaziri [Mon, 26 Jan 2026 08:43:10 +0000 (00:43 -0800)]
Always use zng_ctz32 for W_BITS calculation
Nathan Moinvaziri [Mon, 2 Feb 2026 21:43:09 +0000 (13:43 -0800)]
Refactor ctz builtins while always providing fallback.
Centralize count trailing zeros logic in fallback_builtins.h with
zng_ctz32/zng_ctz64 that use hardware intrinsics when available and
De Bruijn multiplication as portable fallback.
Pavel P [Fri, 6 Feb 2026 00:17:14 +0000 (02:17 +0200)]
Change "None" to "OFF" for sanitizer option (#2141)
* Change "None" to "OFF" for sanitizer option
Co-authored-by: Benoit Pierre <benoit.pierre@gmail.com>
Nathan Moinvaziri [Sun, 1 Feb 2026 20:11:27 +0000 (12:11 -0800)]
Rename chorba SSE files to crc32_chorba for consistency
Nathan Moinvaziri [Tue, 20 Jan 2026 00:45:53 +0000 (16:45 -0800)]
Simplify logic in INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
Mika T. Lindqvist [Sat, 31 Jan 2026 19:44:33 +0000 (21:44 +0200)]
Slide 32 hash entries per loop iteration when using AVX2.
Nathan Moinvaziri [Thu, 15 Jan 2026 07:46:28 +0000 (23:46 -0800)]
Clean up crc32_braid/chorba calls.
Icenowy Zheng [Wed, 28 Jan 2026 08:13:56 +0000 (16:13 +0800)]
riscv: features: add support for detecting V/Zbc via hwprobe
Adding support for riscv_hwprobe and detecting V/Zbc via it.
The needed macros should be in Linux 6.12 UAPI headers, which are
shipped by Debian Trixie.
Tested via qemu-user that the Zbc codepath is examined by adding some
code there.
Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
Icenowy Zheng [Wed, 28 Jan 2026 15:34:45 +0000 (23:34 +0800)]
riscv: features: add check for asm/hwprobe.h in build systems
Currently the check follows the practice of arm_acle.h. It's checked in
the configure script only when riscv_features is built, but always
checked for CMake.
Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
Icenowy Zheng [Tue, 27 Jan 2026 15:12:15 +0000 (23:12 +0800)]
riscv: features: prepare for more runtime detection facilities
As hwprobe support is going to be added, do some preparation for it.
Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
Brad Smith [Wed, 28 Jan 2026 11:16:00 +0000 (06:16 -0500)]
Fix building on FreeBSD/OpenBSD
Put the checks in the right order. Newer before older.
Nathan Moinvaziri [Thu, 29 Jan 2026 03:48:43 +0000 (19:48 -0800)]
Remove unnecessary string.h include in x86_features
Nathan Moinvaziri [Mon, 26 Jan 2026 22:53:43 +0000 (14:53 -0800)]
Use index-based CRC macros and inline memcpy.
Nathan Moinvaziri [Thu, 15 Jan 2026 04:17:53 +0000 (20:17 -0800)]
Loop unroll for len >= 8 in crc32_copy_small.
Nathan Moinvaziri [Thu, 15 Jan 2026 04:15:05 +0000 (20:15 -0800)]
Move crc32_copy_small to shared private header.
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>
Nathan Moinvaziri [Sun, 25 Jan 2026 02:00:50 +0000 (18:00 -0800)]
Check cpuid availability on FreeBSD/OpenBSD when detecting fast/pmull
Pavel P [Wed, 21 Jan 2026 12:30:11 +0000 (14:30 +0200)]
Move cleanup to inffast_tpl.h, clean up INFLATE_FAST
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`
Nathan Moinvaziri [Sat, 17 Jan 2026 18:10:49 +0000 (10:10 -0800)]
Read architecture name from binary in detect-arch.
Nathan Moinvaziri [Sat, 17 Jan 2026 16:43:26 +0000 (08:43 -0800)]
Remove architecture-specific compile definitions from build system
Nathan Moinvaziri [Sun, 18 Jan 2026 03:12:44 +0000 (19:12 -0800)]
Convert arch detection from preprocessor errors to runtime with header
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.
Nathan Moinvaziri [Tue, 20 Jan 2026 01:06:02 +0000 (17:06 -0800)]
Use MIN macro in a few more instances throughout the code
Nathan Moinvaziri [Thu, 8 Jan 2026 02:23:23 +0000 (18:23 -0800)]
Add ALIGN_UP and ALIGN_DOWN macros for readability
Robert Kausch [Fri, 23 Jan 2026 13:16:46 +0000 (14:16 +0100)]
Remove redundant include directives
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
Robert Kausch [Mon, 19 Jan 2026 15:41:14 +0000 (16:41 +0100)]
Test feature macros in all implementation files
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
Nathan Moinvaziri [Wed, 14 Jan 2026 23:39:34 +0000 (15:39 -0800)]
Fix oversized pair allocation in adler32_vmx
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.
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.
Nathan Moinvaziri [Fri, 16 Jan 2026 19:49:10 +0000 (11:49 -0800)]
Replace conditional byte swapping with portable host/LE conversion
Pavel P [Thu, 22 Jan 2026 16:43:43 +0000 (18:43 +0200)]
Remove unnecessary CHUNK_SIZE define - rm last ref
Pavel P [Thu, 22 Jan 2026 09:04:33 +0000 (11:04 +0200)]
Remove unnecessary CHUNK_SIZE define
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.
Hans Kristian Rosbach [Wed, 21 Jan 2026 17:39:28 +0000 (18:39 +0100)]
Also upload coverage reports to coveralls.io
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.
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.
Mika Lindqvist [Tue, 13 Jan 2026 21:07:56 +0000 (13:07 -0800)]
Add Windows ARM support for EOR3 feature detection and MSVC intrinsics
Nathan Moinvaziri [Tue, 13 Jan 2026 03:11:00 +0000 (19:11 -0800)]
Check for null return value from getauxval(AT_PLATFORM)