]> git.ipfire.org Git - thirdparty/zstd.git/log
thirdparty/zstd.git
11 days agoMerge pull request #4491 from facebook/cmake_root
Yann Collet [Sun, 26 Oct 2025 21:40:00 +0000 (13:40 -0800)] 
Merge pull request #4491 from facebook/cmake_root

[cmake] propose a root wrapper

11 days agoMerge pull request #4517 from Cyan4973/asyncio_revisit
Yann Collet [Sun, 26 Oct 2025 21:39:25 +0000 (13:39 -0800)] 
Merge pull request #4517 from Cyan4973/asyncio_revisit

Remove asyncio from the compression path

12 days agosyncio interface only enabled when compression is enabled 4517/head
Yann Collet [Sun, 26 Oct 2025 16:48:45 +0000 (09:48 -0700)] 
syncio interface only enabled when compression is enabled

12 days agochanged name to syncIO for clarity
Yann Collet [Sat, 25 Oct 2025 18:23:16 +0000 (11:23 -0700)] 
changed name to syncIO for clarity

12 days agominor: use init/destroy pair naming convention
Yann Collet [Sat, 25 Oct 2025 18:11:48 +0000 (11:11 -0700)] 
minor: use init/destroy pair naming convention

12 days agoremoved asyncio completely for compression path
Yann Collet [Sat, 25 Oct 2025 18:02:51 +0000 (11:02 -0700)] 
removed asyncio completely for compression path

this does not provide speed benefits,
since most of the leverage happens internally within the library,
and can even become detrimental in certain scenario, due to complex and wasteful memory management.
At a minimum, it makes the logic simpler, easier to debug, at essentially the same performance.

13 days agodisable asyncio during compression
Yann Collet [Sat, 25 Oct 2025 07:50:55 +0000 (00:50 -0700)] 
disable asyncio during compression

it's not helpful for performance, and can in some times be detrimental.
the synchronous mode is also much easier to follow and debug.

2 weeks agoMerge pull request #4515 from cclauss/patch-1
Yann Collet [Thu, 23 Oct 2025 16:57:19 +0000 (08:57 -0800)] 
Merge pull request #4515 from cclauss/patch-1

Fix undefined names in automated_benchmarking.py

2 weeks agoFix undefined names in automated_benchmarking.py 4515/head
Christian Clauss [Thu, 23 Oct 2025 04:08:36 +0000 (06:08 +0200)] 
Fix undefined names in automated_benchmarking.py

Fix variable name typos in automated_benchmarking.py

% `ruff check`
```
Error: tests/automated_benchmarking.py:237:21: F821 Undefined name `baseline_label`
Error: tests/automated_benchmarking.py:250:21: F821 Undefined name `baseline_label`
Error: tests/automated_benchmarking.py:318:55: F821 Undefined name `frequenc`
Error: Process completed with exit code 1.
```
% [`ruff rule F821`](https://docs.astral.sh/ruff/rules/undefined-name)

2 weeks agoMerge pull request #4516 from Cyan4973/mingw_calloc_order
Yann Collet [Thu, 23 Oct 2025 15:57:40 +0000 (07:57 -0800)] 
Merge pull request #4516 from Cyan4973/mingw_calloc_order

minor: fix mingw warnings: calloc argument order

2 weeks agominor: fix mingw warnings: calloc argument order 4516/head
Yann Collet [Thu, 23 Oct 2025 14:01:01 +0000 (07:01 -0700)] 
minor: fix mingw warnings: calloc argument order

2 weeks agoMerge pull request #4509 from arpadpanyik-arm/revert_branch_opt
Yann Collet [Sat, 18 Oct 2025 17:10:55 +0000 (10:10 -0700)] 
Merge pull request #4509 from arpadpanyik-arm/revert_branch_opt

AArch64: Revert previous branch optimization

4 weeks agoAArch64: Remove 32-bit code from ZSTD_decodeSequence 4509/head
Arpad Panyik [Wed, 8 Oct 2025 18:59:24 +0000 (18:59 +0000)] 
AArch64: Remove 32-bit code from ZSTD_decodeSequence

Remove the 32-bit code paths from the AArch64 only sections of
ZSTD_decodeSequence.

4 weeks agoAArch64: Revert previous branch optimization
Arpad Panyik [Wed, 8 Oct 2025 18:58:45 +0000 (18:58 +0000)] 
AArch64: Revert previous branch optimization

Revert a branch optimization that was based on an incorrect
assumption in the AArch64 part of ZSTD_decodeSequence. In extreme
cases the existing implementation could lead to data corruption.

Insert an UNLIKELY hint to guide the compilers toward generating more
efficient machine code.

4 weeks agoMerge pull request #4504 from rzikm/asm-conditional
Yann Collet [Tue, 7 Oct 2025 06:39:28 +0000 (23:39 -0700)] 
Merge pull request #4504 from rzikm/asm-conditional

Make ASM language conditional at CMake configure time

5 weeks agoEnable ASM language during CMake configure time only when needed 4504/head
Radek Zikmund [Thu, 2 Oct 2025 12:40:11 +0000 (14:40 +0200)] 
Enable ASM language during CMake configure time only when needed

5 weeks agoMerge pull request #4502 from zijianli1234/dev
Yann Collet [Tue, 30 Sep 2025 19:35:40 +0000 (12:35 -0700)] 
Merge pull request #4502 from zijianli1234/dev

- Modify the GCC version used for CI testing of the RISCV architecture

6 weeks ago- Modify the GCC version used for CI testing of the RISCV architecture 4502/head
ZijianLi [Fri, 26 Sep 2025 06:26:52 +0000 (14:26 +0800)] 
- Modify the GCC version used for CI testing of the RISCV architecture
- Fix a bug in the ZSTD_row_getRVVMask function
- Improve some performance for ZSTD_copy16()

6 weeks ago[cmake] add minimal build test cmake_root 4491/head
Yann Collet [Thu, 25 Sep 2025 04:55:31 +0000 (21:55 -0700)] 
[cmake] add minimal build test

for CMakeLists.txt at root

6 weeks ago[cmake] root wrapper
Yann Collet [Sun, 21 Sep 2025 05:49:20 +0000 (22:49 -0700)] 
[cmake] root wrapper

allow the existence of a `CMakeLists.txt` file at root,
for easier integration with other projects expecting this file at root.

Existing integration point, within `build/cmake/`, still works as expected.

6 weeks agoMerge pull request #4500 from facebook/legacy01_init
Yann Collet [Thu, 25 Sep 2025 05:46:05 +0000 (22:46 -0700)] 
Merge pull request #4500 from facebook/legacy01_init

fix minor initialization warnings

6 weeks agofix minor initialization warnings legacy01_init 4500/head
Yann Collet [Thu, 25 Sep 2025 05:08:03 +0000 (22:08 -0700)] 
fix minor initialization warnings

6 weeks agoMerge pull request #4498 from facebook/contentSize_doc
Yann Collet [Wed, 24 Sep 2025 06:59:34 +0000 (23:59 -0700)] 
Merge pull request #4498 from facebook/contentSize_doc

update documentation of ZSTD_getFrameContentSize()

6 weeks agoupdate documentation of ZSTD_getFrameContentSize() contentSize_doc 4498/head
Yann Collet [Wed, 24 Sep 2025 06:17:11 +0000 (23:17 -0700)] 
update documentation of ZSTD_getFrameContentSize()

hopefully answering #4495

6 weeks agoMerge pull request #4497 from facebook/legacy_fix
Yann Collet [Tue, 23 Sep 2025 20:55:50 +0000 (12:55 -0800)] 
Merge pull request #4497 from facebook/legacy_fix

fix minor warning in legacy decoders

6 weeks agofix minor warning in legacy decoders legacy_fix 4497/head
Yann Collet [Tue, 23 Sep 2025 18:25:54 +0000 (11:25 -0700)] 
fix minor warning in legacy decoders

for mingw + clang CI test

6 weeks agoMerge pull request #4490 from facebook/doc_profiling_vs
Yann Collet [Sun, 21 Sep 2025 06:30:40 +0000 (22:30 -0800)] 
Merge pull request #4490 from facebook/doc_profiling_vs

minor: add profiling notes for Visual Studio

6 weeks agoadded profiling notes for Visual Studio doc_profiling_vs 4490/head
Yann Collet [Sun, 21 Sep 2025 05:13:49 +0000 (22:13 -0700)] 
added profiling notes for Visual Studio

6 weeks agoMerge pull request #4489 from facebook/doc_install
Yann Collet [Sun, 21 Sep 2025 05:04:35 +0000 (21:04 -0800)] 
Merge pull request #4489 from facebook/doc_install

Added documentation details for Makefile installation and pkg-config.

6 weeks agoAdded documentation details for Makefile installation and pkg-config. doc_install 4489/head
Yann Collet [Sat, 20 Sep 2025 16:33:41 +0000 (16:33 +0000)] 
Added documentation details for Makefile installation and pkg-config.

6 weeks agoMerge pull request #4486 from rlefko/fix-pthread-init-memleak
Yann Collet [Sat, 20 Sep 2025 05:42:21 +0000 (21:42 -0800)] 
Merge pull request #4486 from rlefko/fix-pthread-init-memleak

Fix memory leak in pthread init functions on failure

6 weeks agoMerge pull request #4487 from neiljohari/adhoc/dictionary-file-counting
Yann Collet [Sat, 20 Sep 2025 05:42:06 +0000 (21:42 -0800)] 
Merge pull request #4487 from neiljohari/adhoc/dictionary-file-counting

make DiB_fileStats skip invalid files (fileSize <= 0) to prevent negative totals and bogus allocation

7 weeks agoMerge pull request #4481 from w1m024/support-rvv-getmask
Yann Collet [Tue, 16 Sep 2025 21:55:11 +0000 (13:55 -0800)] 
Merge pull request #4481 from w1m024/support-rvv-getmask

add RVV optimization for ZSTD_row_getMatchMask

7 weeks agoRemove debug logging 4487/head
Neil Johari [Tue, 16 Sep 2025 07:03:08 +0000 (00:03 -0700)] 
Remove debug logging

7 weeks agoFix bug
Neil Johari [Tue, 16 Sep 2025 07:02:04 +0000 (00:02 -0700)] 
Fix bug

7 weeks agoAdd debug logging and simple repro
Neil Johari [Tue, 16 Sep 2025 06:58:45 +0000 (23:58 -0700)] 
Add debug logging and simple repro

7 weeks ago🔧 Fix memory leak in pthread init functions on failure 4486/head
Ryan Lefkowitz [Mon, 15 Sep 2025 22:20:01 +0000 (18:20 -0400)] 
🔧 Fix memory leak in pthread init functions on failure

When pthread_mutex_init() or pthread_cond_init() fails in the debug
implementation (DEBUGLEVEL >= 1), the previously allocated memory was
not freed, causing a memory leak.

This fix ensures that allocated memory is properly freed when pthread
initialization functions fail, preventing resource leaks in error
conditions.

The issue affects:
- ZSTD_pthread_mutex_init() at lib/common/threading.c:146
- ZSTD_pthread_cond_init() at lib/common/threading.c:167

This is particularly important for long-running applications or
scenarios with resource constraints where pthread initialization
might fail due to system limits.

8 weeks agoRefactor ZSTD_row_getMatchMask for RVV optimization 4481/head
w1m024 [Thu, 11 Sep 2025 20:42:40 +0000 (20:42 +0000)] 
Refactor ZSTD_row_getMatchMask for RVV optimization

Performance (vs. SWAR)
- 16-byte data: 5.87x speedup
- 32-byte data: 9.63x speedup
- 64-byte data: 17.98x speedup

Co-authored-by: gong-flying <gongxiaofei24@iscas.ac.cn>
8 weeks agoadd RVV optimization for ZSTD_row_getMatchMask
w1m024 [Tue, 9 Sep 2025 06:20:55 +0000 (06:20 +0000)] 
add RVV optimization for ZSTD_row_getMatchMask

Co-authored-by: gong-flying <gongxiaofei24@iscas.ac.cn>
8 weeks agoMerge pull request #4480 from facebook/dependabot/github_actions/github/codeql-action...
Yann Collet [Mon, 8 Sep 2025 14:52:31 +0000 (07:52 -0700)] 
Merge pull request #4480 from facebook/dependabot/github_actions/github/codeql-action-3.30.1

Bump github/codeql-action from 3.29.4 to 3.30.1

8 weeks agoMerge pull request #4479 from facebook/dependabot/github_actions/msys2/setup-msys2...
Yann Collet [Mon, 8 Sep 2025 14:51:17 +0000 (07:51 -0700)] 
Merge pull request #4479 from facebook/dependabot/github_actions/msys2/setup-msys2-2.29.0

Bump msys2/setup-msys2 from 2.28.0 to 2.29.0

8 weeks agoBump github/codeql-action from 3.29.4 to 3.30.1 4480/head
dependabot[bot] [Mon, 8 Sep 2025 05:06:48 +0000 (05:06 +0000)] 
Bump github/codeql-action from 3.29.4 to 3.30.1

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.29.4 to 3.30.1.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/4e828ff8d448a8a6e532957b1811f387a63867e8...f1f6e5f6af878fb37288ce1c627459e94dbf7d01)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.30.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
8 weeks agoBump msys2/setup-msys2 from 2.28.0 to 2.29.0 4479/head
dependabot[bot] [Mon, 8 Sep 2025 05:06:40 +0000 (05:06 +0000)] 
Bump msys2/setup-msys2 from 2.28.0 to 2.29.0

Bumps [msys2/setup-msys2](https://github.com/msys2/setup-msys2) from 2.28.0 to 2.29.0.
- [Release notes](https://github.com/msys2/setup-msys2/releases)
- [Changelog](https://github.com/msys2/setup-msys2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/msys2/setup-msys2/compare/40677d36a502eb2cf0fb808cc9dec31bf6152638...fb197b72ce45fb24f17bf3f807a388985654d1f2)

---
updated-dependencies:
- dependency-name: msys2/setup-msys2
  dependency-version: 2.29.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2 months agoMerge pull request #4472 from bgilbert/override_dependency
Yann Collet [Fri, 5 Sep 2025 22:32:16 +0000 (15:32 -0700)] 
Merge pull request #4472 from bgilbert/override_dependency

meson: Call `meson.override_dependency()` if Meson is new enough

2 months agoMerge pull request #4475 from Cyan4973/default_nbThreads
Yann Collet [Wed, 3 Sep 2025 00:19:17 +0000 (17:19 -0700)] 
Merge pull request #4475 from Cyan4973/default_nbThreads

Default nb threads

2 months agofixed minor unused variable warning 4475/head
Yann Collet [Tue, 2 Sep 2025 23:36:44 +0000 (16:36 -0700)] 
fixed minor unused variable warning

in certain compilation modes

2 months agobenchmark uses 1 thread by default
Yann Collet [Tue, 2 Sep 2025 23:21:48 +0000 (16:21 -0700)] 
benchmark uses 1 thread by default

2 months agoonly display nbThread Msg in nbThreads > 1
Yann Collet [Tue, 2 Sep 2025 23:05:35 +0000 (16:05 -0700)] 
only display nbThread Msg in nbThreads > 1

2 months agospecify nb of threads used during benchmarking
Yann Collet [Tue, 2 Sep 2025 22:53:45 +0000 (15:53 -0700)] 
specify nb of threads used during benchmarking

used to require `-v` (verbose) modifier

2 months agofixed -T# documentation in zstd -H
Yann Collet [Tue, 2 Sep 2025 22:46:51 +0000 (15:46 -0700)] 
fixed -T# documentation in zstd -H

provide the local value for default nbThreads
which is dynamic and depends on local nb of cores.

2 months agoMerge pull request #4474 from jlokier/threads-doc-fix
Yann Collet [Tue, 2 Sep 2025 22:40:32 +0000 (15:40 -0700)] 
Merge pull request #4474 from jlokier/threads-doc-fix

Update manual about the default value of `-T#`/`--threads=#`

2 months agoUpdate manual about the default value of `-T#`/`--threads=#` 4474/head
Jamie Lokier [Tue, 2 Sep 2025 15:44:09 +0000 (16:44 +0100)] 
Update manual about the default value of `-T#`/`--threads=#`

The section about `ZSTD_NBTHREADS` already explains the default number of
threads, since it changed from 1 (commit 17beeb5).  But the option description
for `-T#`/`--threads=#` incorrectly said the default was still 1.

I noticed this when I found compression slower with `-T1` than without it.

2 months agomeson: Call meson.override_dependency() if Meson is new enough 4472/head
Benjamin Gilbert [Thu, 28 Aug 2025 23:50:34 +0000 (18:50 -0500)] 
meson: Call meson.override_dependency() if Meson is new enough

This tells Meson that we intend libzstd_dep to be used by a parent project
if the parent looks for a dependency named "libzstd".  Without this, the
mapping from "libzstd" to our variable libzstd_dep must be encoded in the
Meson wrap file or in the parent's meson.build.

2 months agoMerge pull request #4469 from facebook/dependabot/github_actions/actions/setup-java... 4478/head
Yann Collet [Mon, 25 Aug 2025 16:07:01 +0000 (09:07 -0700)] 
Merge pull request #4469 from facebook/dependabot/github_actions/actions/setup-java-5.0.0

Bump actions/setup-java from 4.7.1 to 5.0.0

2 months agoBump actions/setup-java from 4.7.1 to 5.0.0 4469/head
dependabot[bot] [Mon, 25 Aug 2025 09:00:57 +0000 (09:00 +0000)] 
Bump actions/setup-java from 4.7.1 to 5.0.0

Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.7.1 to 5.0.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/c5195efecf7bdfc987ee8bae7a71cb8b11521c00...dded0888837ed1f317902acf8a20df0ad188d165)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2 months agoMerge pull request #4440 from arpadpanyik-arm/convert_seq_sve2
Yann Collet [Fri, 22 Aug 2025 00:20:33 +0000 (17:20 -0700)] 
Merge pull request #4440 from arpadpanyik-arm/convert_seq_sve2

AArch64: Add SVE2 path for convertSequences_noRepcodes

2 months agoAArch64: Add SVE2 path for convertSequences_noRepcodes 4440/head
Arpad Panyik [Thu, 17 Jul 2025 07:46:01 +0000 (07:46 +0000)] 
AArch64: Add SVE2 path for convertSequences_noRepcodes

Add an 8-way vector length agnostic (VLA) SVE2 code path for
convertSequences_noRepcodes. It works with any SVE vector length.

Relative performance to GCC-13 using: `./fullbench -b18 -l5 enwik5`

               Neon      SVE2
Neoverse-V2   before     after    uplift
GCC-13:      100.000%  103.209%   1.032x
GCC-14:      100.309%  134.872%   1.344x
GCC-15:      100.355%  134.827%   1.343x
Clang-18:    123.614%  128.565%   1.040x
Clang-19:    123.587%  132.984%   1.076x
Clang-20:    123.629%  133.023%   1.075x

               Neon      SVE2
Cortex-A720   before     after    uplift
GCC-13:      100.000%  116.032%   1.160x
GCC-14:       99.700%  116.648%   1.169x
GCC-15:      100.354%  117.047%   1.166x
Clang-18:    100.447%  116.762%   1.162x
Clang-19:    100.454%  116.627%   1.160x
Clang-20:    100.452%  116.649%   1.161x

2 months agoMerge pull request #4463 from brad0/gnu_source_qsort
Yann Collet [Thu, 21 Aug 2025 16:30:29 +0000 (09:30 -0700)] 
Merge pull request #4463 from brad0/gnu_source_qsort

Check for build environment instead of just _GNU_SOURCE

2 months agoMerge pull request #4465 from thiru-mcw/arm64_support
Yann Collet [Wed, 20 Aug 2025 18:23:34 +0000 (11:23 -0700)] 
Merge pull request #4465 from thiru-mcw/arm64_support

WOA_support:: Add CI setup for packaging Windows on ARM artifacts

2 months agoCI: Enable MSVC ARM64 job using Github WOA runner test_artifacts 4465/head
Thirumalai Nagalingam [Wed, 20 Aug 2025 11:49:48 +0000 (17:19 +0530)] 
CI: Enable MSVC ARM64 job using Github WOA runner

- Reintroduce the MSVC ARM64 build configuration with "Visual Studio 17 2022"
- Update runner to `windows-11-arm` (GitHub-hosted Windows on ARM)

2 months agoCI: Add CI setup for packaging Win-ARM64 artifacts
Thirumalai Nagalingam [Wed, 20 Aug 2025 11:42:21 +0000 (17:12 +0530)] 
CI: Add CI setup for packaging Win-ARM64 artifacts

2 months agoCI: Update build_package.bat for CMake builds
Thirumalai Nagalingam [Wed, 20 Aug 2025 11:42:05 +0000 (17:12 +0530)] 
CI: Update build_package.bat for CMake builds

2 months agoMerge pull request #4464 from facebook/cli_traces_div0
Yann Collet [Wed, 20 Aug 2025 00:43:11 +0000 (17:43 -0700)] 
Merge pull request #4464 from facebook/cli_traces_div0

fixed a potential division by 0 in the cli trace unit

2 months agofixed a potential division by 0 in the cli trace unit cli_traces_div0 4464/head
Yann Collet [Wed, 20 Aug 2025 00:13:15 +0000 (17:13 -0700)] 
fixed a potential division by 0 in the cli trace unit

2 months agoCheck for build environment instead of just _GNU_SOURCE 4463/head
Brad Smith [Tue, 19 Aug 2025 13:23:38 +0000 (09:23 -0400)] 
Check for build environment instead of just _GNU_SOURCE

Fixes the build on OpenBSD and NetBSD. It is too easy for _GNU_SOURCE
to be defined even on non-Linux systems. Found via py-zstandard with
the embedded copy of zstandard and Python defines _GNU_SOURCE.

Also simplify the Linux checking, there is no need to check the rest
of the symbol names.

2 months agoMerge pull request #4419 from AZero13/patch-1
Yann Collet [Wed, 20 Aug 2025 00:02:48 +0000 (17:02 -0700)] 
Merge pull request #4419 from AZero13/patch-1

Check for job before releasing resources

2 months agoMerge pull request #4462 from facebook/dependabot/github_actions/actions/checkout-5
Yann Collet [Mon, 18 Aug 2025 16:10:13 +0000 (09:10 -0700)] 
Merge pull request #4462 from facebook/dependabot/github_actions/actions/checkout-5

Bump actions/checkout from 4 to 5

2 months agoBump actions/checkout from 4 to 5 4462/head
dependabot[bot] [Mon, 18 Aug 2025 08:13:07 +0000 (08:13 +0000)] 
Bump actions/checkout from 4 to 5

Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2 months agoMerge pull request #4459 from Margen67/premake
Yann Collet [Sun, 17 Aug 2025 19:14:42 +0000 (12:14 -0700)] 
Merge pull request #4459 from Margen67/premake

Remove need for trailing forward slash in dir

2 months agoRemove need for trailing forward slash in dir 4459/head
Margen67 [Sun, 17 Aug 2025 07:44:39 +0000 (00:44 -0700)] 
Remove need for trailing forward slash in dir

3 months agoMerge pull request #4448 from Cyan4973/install_oses
Yann Collet [Mon, 28 Jul 2025 19:01:58 +0000 (11:01 -0800)] 
Merge pull request #4448 from Cyan4973/install_oses

regroup list of OSes for install inside common variable

3 months agoregroup list of OSes for install inside common variable 4448/head
Yann Collet [Wed, 23 Jul 2025 22:59:23 +0000 (15:59 -0700)] 
regroup list of OSes for install inside common variable

within lib/install_oses.mk.

fixes #4445

3 months agoMerge pull request #4450 from facebook/dependabot/github_actions/github/codeql-action...
Yann Collet [Mon, 28 Jul 2025 15:33:09 +0000 (07:33 -0800)] 
Merge pull request #4450 from facebook/dependabot/github_actions/github/codeql-action-3.29.4

Bump github/codeql-action from 3.28.9 to 3.29.4

3 months agoBump github/codeql-action from 3.28.9 to 3.29.4 4450/head
dependabot[bot] [Mon, 28 Jul 2025 06:30:43 +0000 (06:30 +0000)] 
Bump github/codeql-action from 3.28.9 to 3.29.4

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.9 to 3.29.4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/9e8d0789d4a0fa9ceb6b1738f7e269594bdd67f0...4e828ff8d448a8a6e532957b1811f387a63867e8)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.29.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
3 months agoMerge pull request #4447 from facebook/android-cmake
Yann Collet [Thu, 24 Jul 2025 18:07:16 +0000 (10:07 -0800)] 
Merge pull request #4447 from facebook/android-cmake

added android cmake build

3 months agoMerge pull request #4413 from arpadpanyik-arm/huf_decode2x
Yann Collet [Wed, 23 Jul 2025 23:03:37 +0000 (15:03 -0800)] 
Merge pull request #4413 from arpadpanyik-arm/huf_decode2x

AArch64: Enhance struct access in Huffman decode 2X

3 months agoMerge pull request #4443 from facebook/opt_simplify_4442
Yann Collet [Wed, 23 Jul 2025 23:01:36 +0000 (15:01 -0800)] 
Merge pull request #4443 from facebook/opt_simplify_4442

simplify sequence resolution in zstd_opt

3 months agoadded android cmake build android-cmake 4447/head
Yann Collet [Wed, 23 Jul 2025 21:54:18 +0000 (14:54 -0700)] 
added android cmake build

is expecte to fail, due to #4444

3 months agosimplify sequence resolution in zstd_opt opt_simplify_4442 4443/head
Yann Collet [Sat, 19 Jul 2025 04:21:47 +0000 (21:21 -0700)] 
simplify sequence resolution in zstd_opt

initially hinted by @pitaj in #4442

3 months agoMerge pull request #4394 from AZero13/zstd
Yann Collet [Sat, 19 Jul 2025 02:55:47 +0000 (18:55 -0800)] 
Merge pull request #4394 from AZero13/zstd

Remove redundant setting of allJobsCompleted to 1

3 months agoMerge pull request #4418 from arpadpanyik-arm/decode_seq_opt
Yann Collet [Sat, 19 Jul 2025 02:54:49 +0000 (18:54 -0800)] 
Merge pull request #4418 from arpadpanyik-arm/decode_seq_opt

AArch64: Improve ZSTD_decodeSequence performance

3 months agoMerge pull request #4435 from zijianli1234/dev
Yann Collet [Sat, 19 Jul 2025 02:54:24 +0000 (18:54 -0800)] 
Merge pull request #4435 from zijianli1234/dev

add riscv  ci

3 months agoMerge pull request #4429 from arpadpanyik-arm/convertSequences_Neon
Yann Collet [Mon, 14 Jul 2025 07:52:48 +0000 (23:52 -0800)] 
Merge pull request #4429 from arpadpanyik-arm/convertSequences_Neon

Improve speed of ZSTD_compressSequencesAndLiterals using Neon

3 months agoMerge pull request #4436 from facebook/dependabot/github_actions/cygwin/cygwin-instal...
Yann Collet [Mon, 14 Jul 2025 07:52:32 +0000 (23:52 -0800)] 
Merge pull request #4436 from facebook/dependabot/github_actions/cygwin/cygwin-install-action-6

Bump cygwin/cygwin-install-action from 5 to 6

3 months agoBump cygwin/cygwin-install-action from 5 to 6 4436/head
dependabot[bot] [Mon, 14 Jul 2025 06:27:46 +0000 (06:27 +0000)] 
Bump cygwin/cygwin-install-action from 5 to 6

Bumps [cygwin/cygwin-install-action](https://github.com/cygwin/cygwin-install-action) from 5 to 6.
- [Release notes](https://github.com/cygwin/cygwin-install-action/releases)
- [Commits](https://github.com/cygwin/cygwin-install-action/compare/f61179d72284ceddc397ed07ddb444d82bf9e559...f2009323764960f80959895c7bc3bb30210afe4d)

---
updated-dependencies:
- dependency-name: cygwin/cygwin-install-action
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
3 months agoMerge pull request #4433 from facebook/vs2025
Yann Collet [Sun, 13 Jul 2025 03:44:28 +0000 (19:44 -0800)] 
Merge pull request #4433 from facebook/vs2025

removed VS2019 runners

3 months agoadd -DMEM_FORCE_MEMORY_ACCESS=0 in CI RVV test 4435/head
ZijianLi [Sun, 13 Jul 2025 02:46:00 +0000 (10:46 +0800)] 
add -DMEM_FORCE_MEMORY_ACCESS=0 in CI RVV test

3 months agoremoved VS2019 runners vs2025 4433/head
Yann Collet [Fri, 11 Jul 2025 17:29:07 +0000 (10:29 -0700)] 
removed VS2019 runners

replaced by one vs2025 runner,
which is badly named since it still running MSVC 2022,
but it's a good test that  shows that the matrix is able to handle multiple MSVC versions.

3 months agoAArch64: Enable optimized QEMU CI builds 4429/head
Arpad Panyik [Tue, 8 Jul 2025 17:09:09 +0000 (17:09 +0000)] 
AArch64: Enable optimized QEMU CI builds

Add missing `-O3` flag to the compilation of AArch64 SVE2 builds
executed by QEMU. This can decrease the CI job runtime considerably.

3 months agoAArch64: Add Neon path for convertSequences_noRepcodes
Arpad Panyik [Tue, 8 Jul 2025 17:07:41 +0000 (17:07 +0000)] 
AArch64: Add Neon path for convertSequences_noRepcodes

Add a 4-way Neon implementation for the convertSequences_noRepcodes
function. Remove 'static' keywords from all of its implementations to
be able to add unit tests.

Relative performance to Clang-18 using: `./fullbench -b18 -l5 enwik5`

Neoverse-V2   before     after
Clang-18:    100.000%  311.703%
Clang-19:    100.191%  311.714%
Clang-20:    100.181%  311.723%
GCC-13:      107.520%  252.309%
GCC-14:      107.652%  253.158%
GCC-15:      107.674%  253.168%

Cortex-A720   before     after
Clang-18:    100.000%  204.512%
Clang-19:    102.825%  204.600%
Clang-20:    102.807%  204.558%
GCC-13:      110.668%  203.594%
GCC-14:      110.684%  203.978%
GCC-15:      102.864%  204.299%

Co-authored by, Thomas Daubney <Thomas.Daubney@arm.com>

3 months agoImprove ZSTD_get1BlockSummary
Arpad Panyik [Tue, 8 Jul 2025 17:05:45 +0000 (17:05 +0000)] 
Improve ZSTD_get1BlockSummary

Add a faster scalar implementation of ZSTD_get1BlockSummary which
removes the data dependency of the accumulators in the hot loop to
leverage the superscalar potential of recent out-of-order CPUs.
The new algorithm leverages SWAR (SIMD Within A Register) methodology
to exploit the capabilities of 64-bit architectures. It achieves this
by packing two 32-bit data elements into a single 64-bit register,
enabling parallel operations on these subcomponents while ensuring
that the 32-bit boundaries prevent overflow, thereby optimizing
computational efficiency.

Corresponding unit tests are included.

Relative performance to GCC-13 using: `./fullbench -b19 -l5 enwik5`

Neoverse-V2   before     after
GCC-13:      100.000%  290.527%
GCC-14:      100.000%  291.714%
GCC-15:       99.914%  291.495%
Clang-18:    148.072%  264.524%
Clang-19:    148.075%  264.512%
Clang-20:    148.062%  264.490%

Cortex-A720   before     after
GCC-13:      100.000%  235.261%
GCC-14:      101.064%  234.903%
GCC-15:      112.977%  218.547%
Clang-18:    127.135%  180.359%
Clang-19:    127.149%  180.297%
Clang-20:    127.154%  180.260%

Co-authored by, Thomas Daubney <Thomas.Daubney@arm.com>

4 months agoadd compiler version check.
ZijianLi [Mon, 7 Jul 2025 15:07:39 +0000 (23:07 +0800)] 
add compiler version check.

4 months agofix dereferencing type-punned pointer error
ZijianLi [Sun, 29 Jun 2025 07:36:25 +0000 (15:36 +0800)] 
fix dereferencing type-punned pointer error

4 months agoadd riscv rvv ci
ZijianLi [Sun, 29 Jun 2025 07:33:50 +0000 (15:33 +0800)] 
add riscv rvv ci

4 months agoMerge pull request #4414 from arpadpanyik-arm/copy8
Yann Collet [Wed, 25 Jun 2025 11:47:01 +0000 (07:47 -0400)] 
Merge pull request #4414 from arpadpanyik-arm/copy8

AArch64: Use better block COPY8

4 months agoCheck for job before releasing 4419/head
Rose [Tue, 24 Jun 2025 18:05:08 +0000 (14:05 -0400)] 
Check for job before releasing

ZSTDMT_freeCCtx calls ZSTDMT_releaseAllJobResources, but ZSTDMT_releaseAllJobResources may be called when ZSTDMT_freeCCtx is called when initialization fails, resulting in a NULL pointer dereference.

4 months agoRemove redundant setting of allJobsCompleted to 1 4394/head
Rose [Mon, 26 May 2025 19:56:55 +0000 (15:56 -0400)] 
Remove redundant setting of allJobsCompleted to 1

This will do it automatically.

4 months agoAArch64: Improve ZSTD_decodeSequence performance 4418/head
Arpad Panyik [Tue, 24 Jun 2025 11:26:58 +0000 (11:26 +0000)] 
AArch64: Improve ZSTD_decodeSequence performance

LLVM's alias-analysis sometimes fails to see that a static-array member
of a struct cannot alias other members. This patch:

- Reduces array accesses via struct indirection to aid load/store alias
  analysis under Clang.
- Converts dynamic array indexing into conditional-move arithmetic,
  eliminating branches and extra loads/stores on out-of-order CPUs.
- Reloads the bitstream only when match-length bits are consumed
  (assuming each reload only needs to happen once per match-length
  read), improving branch-prediction rates.
- Removes the UNLIKELY() hint, which recent compilers already handle
  well without cost.

Decompression uplifts on a Neoverse V2 system, using Zstd-1.5.8
compiled with "-O3 -march=armv8.2-a+sve2":

                 Clang-19  Clang-20   Clang-*    GCC-14    GCC-15
 1#silesia.tar:  +11.556%  +16.203%   +0.240%   +2.216%   +7.891%
 2#silesia.tar:  +15.493%  +21.140%   -0.041%   +2.850%   +9.926%
 3#silesia.tar:  +16.887%  +22.570%   -0.183%   +3.056%  +10.660%
 4#silesia.tar:  +17.785%  +23.315%   -0.262%   +3.343%  +11.187%
 5#silesia.tar:  +18.125%  +24.175%   -0.466%   +3.350%  +11.228%
 6#silesia.tar:  +17.607%  +23.339%   -0.591%   +3.175%  +10.851%
 7#silesia.tar:  +17.463%  +22.837%   -0.486%   +3.292%  +10.868%

* Requires Clang-21 support from LLVM commit hash
  `a53003fe23cb6c871e72d70ff2d3a075a7490da2`
   (Clang-21 hasn’t been released as of this writing)

Co-authored by:
 David Sherwood, David.Sherwood@arm.com
 Ola Liljedahl, Ola.Liljedahl@arm.com

4 months agoAArch64: Enhance struct access in Huffman decode 2X 4413/head
Arpad Panyik [Fri, 20 Jun 2025 15:29:17 +0000 (15:29 +0000)] 
AArch64: Enhance struct access in Huffman decode 2X

In the multi-stream multi-symbol Huffman decoder GCC generates
suboptimal code - emitting more loads for HUF_DEltX2 struct member
accesses. Forcing it to use 32-bit loads and bit arithmetic to extract
the necessary parts (UBFX) improves the overall decode speed.

Also avoid integer type conversions in the symbol decodes, which
leads to better instruction selection in table lookup accesses.

On AArch64 the decoder no longer runs into register-pressure limits,
so we can simplify the hot path and improve throughput

Decompression uplifts on a Neoverse V2 system, using Zstd-1.5.8
compiled with "-O3 -march=armv8.2-a+sve2":

                 Clang-20   Clang-*    GCC-13    GCC-14    GCC-15
 1#silesia.tar:   +0.820%   +1.365%   +2.480%   +1.348%   +0.987%
 2#silesia.tar:   +0.426%   +0.784%   +1.218%   +0.665%   +0.554%
 3#silesia.tar:   +0.112%   +0.389%   +0.508%   +0.188%   +0.261%

* Requires Clang-21 support from LLVM commit hash
  `a53003fe23cb6c871e72d70ff2d3a075a7490da2`
  (Clang-21 hasn’t been released as of this writing)

4 months agoMerge pull request #4417 from facebook/dependabot/github_actions/msys2/setup-msys2...
Yann Collet [Mon, 23 Jun 2025 13:32:14 +0000 (06:32 -0700)] 
Merge pull request #4417 from facebook/dependabot/github_actions/msys2/setup-msys2-2.28.0

Bump msys2/setup-msys2 from 2.27.0 to 2.28.0