]> git.ipfire.org Git - thirdparty/zlib-ng.git/log
thirdparty/zlib-ng.git
4 weeks agoExpand codeql testing to run on multiple platforms and two configs. codeql 2214/head
Hans Kristian Rosbach [Mon, 9 Mar 2026 13:09:14 +0000 (14:09 +0100)] 
Expand codeql testing to run on multiple platforms and two configs.

4 weeks agoReplace macros with inline functions in deflate_quick.
Nathan Moinvaziri [Tue, 10 Mar 2026 01:03:26 +0000 (18:03 -0700)] 
Replace macros with inline functions in deflate_quick.

On -O2, Clang produces identical output, GCC produces 2 fewer instructions.

4 weeks agoClean up dead assignments in insert_match
Nathan Moinvaziri [Tue, 10 Mar 2026 03:15:34 +0000 (20:15 -0700)] 
Clean up dead assignments in insert_match

When 56d3d985 was reverted in b85cfdf9, it restored dead
stores to match.strstart and match.match_length that
have no effect since match is passed by value. The
compiler already eliminated them; remove from source.

4 weeks ago[CI] Fix 32-bit ARM release.
Mika Lindqvist [Tue, 10 Mar 2026 07:33:04 +0000 (09:33 +0200)] 
[CI] Fix 32-bit ARM release.

4 weeks agoAdd parameterized deflate tests
Nathan Moinvaziri [Tue, 10 Mar 2026 03:53:22 +0000 (20:53 -0700)] 
Add parameterized deflate tests

Assisted-by: Claude Opus 4.6 <noreply@anthropic.com>
4 weeks agoUse uintptr_t for ASan function signatures and macro variables
Nathan Moinvaziri [Tue, 10 Mar 2026 03:20:40 +0000 (20:20 -0700)] 
Use uintptr_t for ASan function signatures and macro variables

The ASan runtime ABI expects uptr (pointer-sized unsigned) for both
parameters of __asan_loadN/__asan_storeN. On LLP64 targets like
Windows x64, long is 32-bit while pointers are 64-bit, truncating
size values. Use uintptr_t to match the ABI correctly.

4 weeks agoReorganize sanitizer header for readability
Nathan Moinvaziri [Tue, 10 Mar 2026 01:37:51 +0000 (18:37 -0700)] 
Reorganize sanitizer header for readability

4 weeks agoMove ASAN/MSAN instrumentation out of zbuild.h
Nathan Moinvaziri [Tue, 10 Mar 2026 01:27:58 +0000 (18:27 -0700)] 
Move ASAN/MSAN instrumentation out of zbuild.h

Create zsanitizer.h with all sanitizer detection, declaration
stubs, and instrument_read/write/read_write macros. Include it
only in the chunkset, inflate, and dfltcc files that perform
deliberate out-of-bounds reads for performance.

4 weeks agoSimplify slide_hash_lsx
Vladislav Shchapov [Sun, 1 Feb 2026 19:11:53 +0000 (00:11 +0500)] 
Simplify slide_hash_lsx

Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
4 weeks agoSlide 32 hash entries per loop iteration when using LASX
Vladislav Shchapov [Sun, 1 Feb 2026 19:11:18 +0000 (00:11 +0500)] 
Slide 32 hash entries per loop iteration when using LASX

Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
4 weeks agoCI: S390x has Clang, but the qemu fallback uses a toolchain specifying gcc,
Hans Kristian Rosbach [Mon, 9 Mar 2026 19:32:34 +0000 (20:32 +0100)] 
CI: S390x has Clang, but the qemu fallback uses a toolchain specifying gcc,
therefore make sure we install and use gcc.

4 weeks agoCMake: Fix incorrect order of compiler flags when using sanitizers
Hans Kristian Rosbach [Mon, 9 Mar 2026 19:32:04 +0000 (20:32 +0100)] 
CMake: Fix incorrect order of compiler flags when using sanitizers

4 weeks agoMake orchestrator the parent of most workflows, and let it handle
Hans Kristian Rosbach [Mon, 9 Mar 2026 10:22:21 +0000 (11:22 +0100)] 
Make orchestrator the parent of most workflows, and let it handle
most automatic cancellations of workflows when new commits are pushed.

Workflows 'fuzz', 'lint' and 'release' have different triggers,
so handle those separately.

4 weeks agoCombine extra_lbits/base_length and extra_dbits/base_dist lookup tables
Nathan Moinvaziri [Thu, 19 Feb 2026 22:54:19 +0000 (14:54 -0800)] 
Combine extra_lbits/base_length and extra_dbits/base_dist lookup tables

Pack base values and extra bit counts into combined tables (lbase_extra,
dbase_extra) to reduce memory loads in the deflate hot path.

Each match emission now requires 2 loads instead of 4 for the extra
bits handling.

Assisted-by: Claude Code
4 weeks agoAdd 256-bit VPCLMULQDQ CRC32 path for systems without AVX-512.
Nathan Moinvaziri [Mon, 9 Mar 2026 07:30:04 +0000 (00:30 -0700)] 
Add 256-bit VPCLMULQDQ CRC32 path for systems without AVX-512.

Split VPCLMULQDQ CRC32 into separate AVX2 and AVX-512 compilation
units. Compute fold-by-8 constants for the AVX2 path using
bitreverse(x^d mod G(x), 33) with d=992 and d=1056.

4 weeks agoAdd parameterized deflate benchmark
Nathan Moinvaziri [Fri, 27 Feb 2026 00:10:11 +0000 (16:10 -0800)] 
Add parameterized deflate benchmark

Assisted-by: Claude Opus 4.6 <noreply@anthropic.com>
4 weeks agoTests: Initialize buffer in test_crc32.cc
Hans Kristian Rosbach [Sun, 8 Mar 2026 22:30:45 +0000 (23:30 +0100)] 
Tests: Initialize buffer in test_crc32.cc

4 weeks agoAdd MSAN to Aarch64.
Hans Kristian Rosbach [Sun, 8 Mar 2026 13:02:33 +0000 (14:02 +0100)] 
Add MSAN to Aarch64.
Change tests so we run UBSAN on neon/armv8 code, testing without
our optimizations is less important.
Fix windows arm test skipping check.

4 weeks agoDisable sanitizer for ARM SF
pmqs [Mon, 9 Mar 2026 15:03:02 +0000 (15:03 +0000)] 
Disable sanitizer for ARM SF

4 weeks agoDisable ARM SF Jobs
pmqs [Mon, 9 Mar 2026 12:58:27 +0000 (12:58 +0000)] 
Disable ARM SF Jobs

4 weeks agoHarden sanitizer support
Paul Marquess [Sun, 15 Feb 2026 16:18:59 +0000 (16:18 +0000)] 
Harden sanitizer support

4 weeks ago[CI] Switch Windows ARM64 workflows to use native runners.
Mika Lindqvist [Mon, 9 Mar 2026 08:06:35 +0000 (10:06 +0200)] 
[CI] Switch Windows ARM64 workflows to use native runners.

4 weeks agoREADME: Small feature list updates
Hans Kristian Rosbach [Mon, 9 Mar 2026 09:14:57 +0000 (10:14 +0100)] 
README: Small feature list updates

4 weeks agoREADME: Add coveralls badge
Hans Kristian Rosbach [Mon, 9 Mar 2026 09:05:32 +0000 (10:05 +0100)] 
README: Add coveralls badge

4 weeks agoUnroll the slide hash loop similar to other ISAs
Adam Stylinski [Sat, 7 Mar 2026 18:27:27 +0000 (13:27 -0500)] 
Unroll the slide hash loop similar to other ISAs

We do this to backfill the pipeline a little bit better, particularly
on the G5.  We also conveniently operate on an entire cacheline for
this.

4 weeks agoRevert "Relax alignment requirement in NEON_accum32."
Nathan Moinvaziri [Fri, 6 Mar 2026 20:09:20 +0000 (12:09 -0800)] 
Revert "Relax alignment requirement in NEON_accum32."

This reverts commit ced54ac89cb79d8df912d741c25ea7bce9061761.

4 weeks agoAdd NMAX_ALIGNED32 and use it in NEON adler32
Nathan Moinvaziri [Fri, 6 Mar 2026 19:38:28 +0000 (11:38 -0800)] 
Add NMAX_ALIGNED32 and use it in NEON adler32

Define NMAX_ALIGNED32 as NMAX rounded down to a multiple of 32 (5536)
and use it in the NEON adler32 implementation to ensure that src stays
32-byte aligned throughout the main SIMD loop. Previously, NMAX (5552)
is not a multiple of 32, so after the alignment preamble the first
iteration could process a non-32-aligned number of bytes, causing src
to lose 32-byte alignment for all subsequent iterations.

The first iteration's budget is rounded down with ALIGN_DOWN after
subtracting align_diff, ensuring k is always a multiple of 32.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4 weeks agoAdd compile-time native feature detection macros
Nathan Moinvaziri [Sat, 7 Feb 2026 08:00:44 +0000 (00:00 -0800)] 
Add compile-time native feature detection macros

Creates [ARCH]_[FEAT]_NATIVE preprocessor defines that can be re-used
in functable to bypass CPU checks.

They are from DISABLE_RUNTIME_CPU_DETECTION preprocessor logic.

4 weeks agoUse ARM64 runners for all ARM-based builds
Hans Kristian Rosbach [Sat, 7 Mar 2026 23:17:09 +0000 (00:17 +0100)] 
Use ARM64 runners for all ARM-based builds

4 weeks agoRun lint in ubuntu-slim, a lightweight actions runner
Hans Kristian Rosbach [Sat, 7 Mar 2026 23:02:01 +0000 (00:02 +0100)] 
Run lint in ubuntu-slim, a lightweight actions runner

4 weeks agoGithub workers have been increased from 2 to 4 cores, increase concurrency.
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.

4 weeks agoRemove culling of workflows after subsequent pushes.
Hans Kristian Rosbach [Sat, 7 Mar 2026 22:52:22 +0000 (23:52 +0100)] 
Remove culling of workflows after subsequent pushes.
Doing so breaks coveralls uploads, and the workarounds are causing
cancelled workflows when it should not, and it generally fragile.
It was a useful workaround when CI took ~2 hours, now that it takes
20 minutes, I think we can afford to complete them.

4 weeks agoAdd coveralls to pigz and make sure coveralls uploads are not finalized until
Hans Kristian Rosbach [Sat, 7 Mar 2026 20:41:02 +0000 (21:41 +0100)] 
Add coveralls to pigz and make sure coveralls uploads are not finalized until
all jobs are successful, as doing that blocks further uploads from retried builds.

4 weeks agoRemove codecov from CI
Hans Kristian Rosbach [Sat, 7 Mar 2026 21:05:22 +0000 (22:05 +0100)] 
Remove codecov from CI

4 weeks agoRename coverage name parameter
Hans Kristian Rosbach [Sat, 7 Mar 2026 20:48:31 +0000 (21:48 +0100)] 
Rename coverage name parameter

4 weeks agoDon't use GCC for ASAN/UBSAN on S390x
Hans Kristian Rosbach [Sat, 7 Mar 2026 15:38:32 +0000 (16:38 +0100)] 
Don't use GCC for ASAN/UBSAN on S390x

4 weeks agoReduce git clone download to only relevant source folders.
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.

4 weeks agoFix building with C23 support
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

4 weeks agoAdd support for building benchmarks with alternative zlib library
Nathan Moinvaziri [Thu, 26 Feb 2026 21:47:20 +0000 (13:47 -0800)] 
Add support for building benchmarks with alternative zlib library

4 weeks ago[CI] Add workflow to test MSVC 18 2026.
Mika Lindqvist [Sun, 22 Feb 2026 10:17:21 +0000 (12:17 +0200)] 
[CI] Add workflow to test MSVC 18 2026.

4 weeks agoAdd MSVC support for Z_UNREACHABLE macro
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>.

4 weeks agoRelax alignment requirement in NEON_accum32.
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.

5 weeks agoCI: Stop trying to use GCC on macOS, it is apparently deprecated and
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

5 weeks agoCMake: UBSAN: Don't enable 'unsigned-integer-overflow' and 'unsigned-shift-base'...
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.

5 weeks agoSimplify adler32 alignment loops to advance pointers
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.

5 weeks agoMake use of NEON alignment hints
Cameron Cawley [Sat, 8 Feb 2025 20:36:58 +0000 (20:36 +0000)] 
Make use of NEON alignment hints

5 weeks agoBump actions/download-artifact from 7 to 8
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>
5 weeks agoBump actions/upload-artifact from 6 to 7
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>
5 weeks agoUpdate MCST qemu-e2k
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>
6 weeks agoKeep bi_buf/bi_valid in registers across compress_block loop
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.

6 weeks agoSet version for the develop branch to 2.3.90
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>
7 weeks agoPrioritize compile-time checks in ARM feature detection
Nathan Moinvaziri [Mon, 2 Feb 2026 02:56:04 +0000 (18:56 -0800)] 
Prioritize compile-time checks in ARM feature detection

7 weeks agoAdd branch hints to inflate_fast.
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>
7 weeks ago[CI] Retain CMake configure log if configuring fails
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

7 weeks agoCleanup pointer style and parameter names in crc32 chorba functions
Nathan Moinvaziri [Wed, 18 Feb 2026 04:31:35 +0000 (20:31 -0800)] 
Cleanup pointer style and parameter names in crc32 chorba functions

7 weeks agoAdd missing native_crc32_copy define for SSE2 chorba
Nathan Moinvaziri [Tue, 3 Feb 2026 08:25:11 +0000 (00:25 -0800)] 
Add missing native_crc32_copy define for SSE2 chorba

7 weeks agoFix missing address-of operators for s390 functable assignments
Nathan Moinvaziri [Wed, 18 Feb 2026 04:24:51 +0000 (20:24 -0800)] 
Fix missing address-of operators for s390 functable assignments

7 weeks agoFix missing address-of operators for LoongArch functable assignments
Nathan Moinvaziri [Wed, 18 Feb 2026 04:24:36 +0000 (20:24 -0800)] 
Fix missing address-of operators for LoongArch functable assignments

7 weeks agoAdd POWER8 VSX and S390 VX CRC32 copy tests
Nathan Moinvaziri [Wed, 18 Feb 2026 08:08:25 +0000 (00:08 -0800)] 
Add POWER8 VSX and S390 VX CRC32 copy tests

7 weeks agoOptimize symbol buffer access based on platform unaligned access
Nathan Moinvaziri [Sun, 1 Feb 2026 00:57:24 +0000 (16:57 -0800)] 
Optimize symbol buffer access based on platform unaligned access

7 weeks agoUse offset addressing when accessing s->sym_buf.
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

7 weeks agoRefactor and unify adler32 short length processing.
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.

7 weeks agoFix incorrect use of chorba_word_t in 64-bit only function
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

7 weeks agoSimplify alignment casts in Chorba code
Cameron Cawley [Thu, 2 Oct 2025 22:09:58 +0000 (23:09 +0100)] 
Simplify alignment casts in Chorba code

7 weeks agoSplit CRC32 Braid and Chorba word types
Cameron Cawley [Thu, 2 Oct 2025 21:08:05 +0000 (22:08 +0100)] 
Split CRC32 Braid and Chorba word types

7 weeks agocmake: Fix ARCH is empty in detect-arch
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.

7 weeks agoSimplify types used in chunkset code
Cameron Cawley [Thu, 2 Oct 2025 18:53:14 +0000 (19:53 +0100)] 
Simplify types used in chunkset code

7 weeks agoRemove unnecessary casts on malloc return values
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

7 weeks agoRemove unnecessary (unsigned long) cast on BASE in adler32_combine
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

7 weeks agoRemove unnecessary (int) casts on sizeof in switch statements
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

7 weeks agoRemove unnecessary void */char * casts on memcpy/memset arguments
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

7 weeks agoChange zng_tr_stored_block/zng_tr_flush_block buf param to unsigned char *
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

7 weeks agoFix typo - missing closing quote
Paul Marquess [Sun, 15 Feb 2026 12:15:33 +0000 (12:15 +0000)] 
Fix typo - missing closing quote

7 weeks agoTake account of use-case where there is an empty git tree object when reading the...
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

7 weeks agoadd workflow_dispatch to most of the workflow files
Paul Marquess [Sat, 14 Feb 2026 16:29:40 +0000 (16:29 +0000)] 
add workflow_dispatch to most of the workflow files

7 weeks agoAdd .vscode to .gitignore
Nathan Moinvaziri [Tue, 17 Feb 2026 01:50:11 +0000 (17:50 -0800)] 
Add .vscode to .gitignore

7 weeks agoFixed unused function warning for arm_has_cpuid
Nathan Moinvaziri [Sat, 14 Feb 2026 22:24:33 +0000 (14:24 -0800)] 
Fixed unused function warning for arm_has_cpuid

7 weeks agoRemove unnecessary ARCH_ARM in arm_features.c
Nathan Moinvaziri [Sat, 14 Feb 2026 22:24:11 +0000 (14:24 -0800)] 
Remove unnecessary ARCH_ARM in arm_features.c

7 weeks agoFix building on RISC-V without RVV.
Mika T. Lindqvist [Fri, 13 Feb 2026 01:10:55 +0000 (03:10 +0200)] 
Fix building on RISC-V without RVV.

7 weeks agodeflate_medium: more readability initialize structs match
Herman Semenoff [Mon, 9 Feb 2026 14:19:55 +0000 (17:19 +0300)] 
deflate_medium: more readability initialize structs match

8 weeks ago[configure] Add initial support for NVHPC toolchain.
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

8 weeks ago[zconf] Fix LFS support on Windows
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.

8 weeks agoCleanup formatting for crc32_chorba files
Nathan Moinvaziri [Fri, 6 Feb 2026 06:25:07 +0000 (22:25 -0800)] 
Cleanup formatting for crc32_chorba files

2 months agoAdd e2k codecov build
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>
2 months agoAdd e2k CI
Vladislav Shchapov [Tue, 27 Jan 2026 15:13:57 +0000 (20:13 +0500)] 
Add e2k CI

Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2 months agoAdd e2k support
Vladislav Shchapov [Sun, 25 Jan 2026 17:52:15 +0000 (22:52 +0500)] 
Add e2k support

Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2 months agoRemove build script compiler checks for ctz builtins
Nathan Moinvaziri [Mon, 26 Jan 2026 08:45:07 +0000 (00:45 -0800)] 
Remove build script compiler checks for ctz builtins

2 months agoCleanup and rename bitreverse16 after ctz builtin refactoring
Nathan Moinvaziri [Mon, 26 Jan 2026 08:35:21 +0000 (00:35 -0800)] 
Cleanup and rename bitreverse16 after ctz builtin refactoring

2 months agoCleanup compare256 and compare256_rle implementations.
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.

2 months agoAlways use zng_ctz32 for W_BITS calculation
Nathan Moinvaziri [Mon, 26 Jan 2026 08:43:10 +0000 (00:43 -0800)] 
Always use zng_ctz32 for W_BITS calculation

2 months agoRefactor ctz builtins while always providing fallback.
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.

2 months agoChange "None" to "OFF" for sanitizer option (#2141)
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>
2 months agoRename chorba SSE files to crc32_chorba for consistency
Nathan Moinvaziri [Sun, 1 Feb 2026 20:11:27 +0000 (12:11 -0800)] 
Rename chorba SSE files to crc32_chorba for consistency

2 months agoSimplify logic in INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
Nathan Moinvaziri [Tue, 20 Jan 2026 00:45:53 +0000 (16:45 -0800)] 
Simplify logic in INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR

2 months agoSlide 32 hash entries per loop iteration when using AVX2.
Mika T. Lindqvist [Sat, 31 Jan 2026 19:44:33 +0000 (21:44 +0200)] 
Slide 32 hash entries per loop iteration when using AVX2.

2 months agoClean up crc32_braid/chorba calls.
Nathan Moinvaziri [Thu, 15 Jan 2026 07:46:28 +0000 (23:46 -0800)] 
Clean up crc32_braid/chorba calls.

2 months agoriscv: features: add support for detecting V/Zbc via hwprobe
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>
2 months agoriscv: features: add check for asm/hwprobe.h in build systems
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>
2 months agoriscv: features: prepare for more runtime detection facilities
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>
2 months agoFix building on FreeBSD/OpenBSD
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.