]> git.ipfire.org Git - thirdparty/zstd.git/log
thirdparty/zstd.git
3 weeks agoEnsure BMK_timedFnState is always freed in benchMem 4408/head
jinyaoguo [Thu, 12 Jun 2025 23:52:58 +0000 (19:52 -0400)] 
Ensure BMK_timedFnState is always freed in benchMem

When an error occurs in BMK_isSuccessful_runOutcome, the code
previously skipped the call to BMK_freeTimedFnState(tfs),
leaking the allocated tfs object.
Fiexed by calling BMK_freeTimedFnState(tfs) before goto _cleanOut.

4 weeks agoMerge pull request #4406 from Cyan4973/separate-cmake-tests
Yann Collet [Mon, 9 Jun 2025 22:19:47 +0000 (15:19 -0700)] 
Merge pull request #4406 from Cyan4973/separate-cmake-tests

cmake CI tests refactor

4 weeks agoremove global variable 4406/head
Yann Collet [Mon, 9 Jun 2025 21:55:06 +0000 (21:55 +0000)] 
remove global variable

overkill and leaky to transport a test result just in one place.

4 weeks agoMerge pull request #4403 from dloidolt/fix_FUZZ_malloc_rand
Yann Collet [Mon, 9 Jun 2025 17:57:59 +0000 (10:57 -0700)] 
Merge pull request #4403 from dloidolt/fix_FUZZ_malloc_rand

fuzz: Fix FUZZ_malloc_rand() to return non-NULL for zero-size allocations

4 weeks agoMerge pull request #4397 from xiaoge1001/free
Yann Collet [Mon, 9 Jun 2025 17:06:36 +0000 (10:06 -0700)] 
Merge pull request #4397 from xiaoge1001/free

Fix several locations with potential memory leak

4 weeks agoFix several locations with potential memory leak 4397/head
shixuantong [Sat, 31 May 2025 16:37:57 +0000 (00:37 +0800)] 
Fix several locations with potential memory leak

4 weeks agofix #4405
Yann Collet [Mon, 9 Jun 2025 07:24:03 +0000 (07:24 +0000)] 
fix #4405

4 weeks agofixed cmake + windows + visual + clang-cl
Yann Collet [Mon, 9 Jun 2025 07:09:51 +0000 (07:09 +0000)] 
fixed cmake + windows + visual + clang-cl

by removing processing of resource files in this case

4 weeks agoremove fail-fast so that the outcome of other tests can be observed
Yann Collet [Mon, 9 Jun 2025 06:47:28 +0000 (06:47 +0000)] 
remove fail-fast so that the outcome of other tests can be observed

4 weeks agorefactor: modularize CMakeLists.txt for better maintainability
Yann Collet [Mon, 9 Jun 2025 03:47:33 +0000 (03:47 +0000)] 
refactor: modularize CMakeLists.txt for better maintainability

- Split monolithic 235-line CMakeLists.txt into focused modules
- Main file reduced to 78 lines with clear section organization
- Created 5 specialized modules:
  * ZstdVersion.cmake - CMake policies and version management
  * ZstdOptions.cmake - Build options and platform configuration
  * ZstdDependencies.cmake - External dependency management
  * ZstdBuild.cmake - Build targets and validation
  * ZstdPackage.cmake - Package configuration generation

Benefits:
- Improved readability and maintainability
- Better separation of concerns
- Easier debugging and modification
- Preserved 100% backward compatibility
- All existing build options and targets unchanged

The refactored build system passes all tests and maintains
identical functionality while being much easier to understand
and maintain.

4 weeks agoadd cmake build test with ZSTD_BUILD_TESTS disabled
Yann Collet [Sun, 8 Jun 2025 23:51:55 +0000 (23:51 +0000)] 
add cmake build test with ZSTD_BUILD_TESTS disabled

should reproduce #4405 and fail

4 weeks agoadded macos arm64 tests
Yann Collet [Sun, 8 Jun 2025 22:40:15 +0000 (22:40 +0000)] 
added macos arm64 tests

and comment out windows arm64 tests due to unacceptably long queue time

4 weeks agoadded windows arm64 runner to cmake tests
Yann Collet [Sun, 8 Jun 2025 22:19:57 +0000 (22:19 +0000)] 
added windows arm64 runner to cmake tests

4 weeks agorefactor CMake tests workflow for readability
Yann Collet [Sun, 8 Jun 2025 21:39:59 +0000 (21:39 +0000)] 
refactor CMake tests workflow for readability

4 weeks agoci: separate cmake tests into dedicated workflow file
Yann Collet [Sun, 8 Jun 2025 20:25:25 +0000 (20:25 +0000)] 
ci: separate cmake tests into dedicated workflow file

- Create new .github/workflows/cmake-tests.yml with all cmake-related jobs
- Move cmake-build-and-test-check, cmake-source-directory-with-spaces, and cmake-visual-2022 jobs
- Remove cmake tests from dev-short-tests.yml to improve organization
- Maintain same trigger conditions and test configurations
- Add dedicated concurrency group for cmake tests

This separation allows cmake tests to run independently and makes
the CI configuration more modular and easier to maintain.

4 weeks agoMerge pull request #4384 from xiaoge1001/dev
Yann Collet [Sun, 8 Jun 2025 19:39:26 +0000 (12:39 -0700)] 
Merge pull request #4384 from xiaoge1001/dev

update `--rm` cmd help info

4 weeks agoMerge pull request #4392 from mugitya03/MLK
Yann Collet [Sun, 8 Jun 2025 19:38:31 +0000 (12:38 -0700)] 
Merge pull request #4392 from mugitya03/MLK

Fix potential memory leak in function `benchMem`

4 weeks agoMerge pull request #4399 from zijianli1234/dev
Yann Collet [Sun, 8 Jun 2025 19:38:02 +0000 (12:38 -0700)] 
Merge pull request #4399 from zijianli1234/dev

Improve speed of convertSequences() and get1BlockSummary() using RVV

4 weeks agofuzz: Fix FUZZ_malloc_rand() to return non-NULL for zero-size allocations 4403/head
Dominik Loidolt [Thu, 5 Jun 2025 13:36:29 +0000 (15:36 +0200)] 
fuzz: Fix FUZZ_malloc_rand() to return non-NULL for zero-size allocations

The FUZZ_malloc_rand() function was incorrectly always returning NULL for
zero-size allocations. The random offset generated by
FUZZ_dataProducer_int32Range() was not being added to the pointer variable,
causing the function to always return (void *)0.

4 weeks agoMerge pull request #4401 from mugitya03/MLK-1
Yann Collet [Wed, 4 Jun 2025 19:49:38 +0000 (12:49 -0700)] 
Merge pull request #4401 from mugitya03/MLK-1

Release resources before returning

4 weeks agoRelease resources before returning 4401/head
jinyaoguo [Tue, 3 Jun 2025 19:28:11 +0000 (15:28 -0400)] 
Release resources before returning

In main, resources were freed on the success path but not in the error path.
This change ensures all allocated resources are released before returning.

5 weeks agoImprove speed of ZSTD_compressSequencesAndLiterals() using RVV 4399/head
李子建 [Fri, 16 May 2025 06:57:32 +0000 (14:57 +0800)] 
Improve speed of ZSTD_compressSequencesAndLiterals() using RVV

5 weeks agoupdate `--rm` cmd help info 4384/head
shixuantong [Fri, 9 May 2025 14:47:08 +0000 (22:47 +0800)] 
update `--rm` cmd help info

Starting from cee6bec9fa6aa249f2df9f84165b682eb793eab, --rm is ignored when the output is `stdout`.

6 weeks agoFix memory leak in function benchMem 4392/head
jinyaoguo [Sun, 25 May 2025 19:21:23 +0000 (15:21 -0400)] 
Fix memory leak in function benchMem

`speedPerRound` is allocated at the start of benchMem to collect per-round speeds,
but is never freed, causing a leak on each invocation.

2 months agolz4: Remove ancient test helpers
Dave Vasilevsky [Wed, 7 May 2025 07:03:29 +0000 (03:03 -0400)] 
lz4: Remove ancient test helpers

Building lz4 as root was causing `make clean` to fail with permission
errors.

We used to have to install lz4 from source back in Ubuntu 14.04, but
nowadays the installed lz4 is fine. Get rid of ancient helpers and
cruft!

2 months agoseekable_format: Fix conversion warnings in parallel_compression
Dave Vasilevsky [Wed, 7 May 2025 06:12:29 +0000 (02:12 -0400)] 
seekable_format: Fix conversion warnings in parallel_compression

2 months agoseekable_format: Add test for parallel_compression memory usage
Dave Vasilevsky [Wed, 7 May 2025 05:43:36 +0000 (01:43 -0400)] 
seekable_format: Add test for parallel_compression memory usage

Use ulimit to fail the test if we use O(filesize) memory, rather than
O(threads).

2 months agoseekable_format: Fix race in parallel_processing
Dave Vasilevsky [Wed, 7 May 2025 04:10:10 +0000 (00:10 -0400)] 
seekable_format: Fix race in parallel_processing

There was no memory barrier between writing and reading `done`, which
would allow reordering to cause races. With so little data to handle
after each job completes, we might as well just join.

2 months agoseekable_format: Cleanup POOL in parallel_compression
Dave Vasilevsky [Wed, 7 May 2025 03:45:04 +0000 (23:45 -0400)] 
seekable_format: Cleanup POOL in parallel_compression

2 months agoseekable_format: Make parallel_compression use memory properly
Dave Vasilevsky [Wed, 7 May 2025 03:26:32 +0000 (23:26 -0400)] 
seekable_format: Make parallel_compression use memory properly

Previously, parallel_compression would only handle each job's results
after ALL jobs were successfully queued. This caused all src/dst
buffers to remain in memory until then!

It also polled to check whether a job completed, which is racy without
any memory barrier.

Now, we flush results as a side effect of completing a job. Completed
frames are placed in an ordered linked-list, and any eligible frames
are flushed. This may be zero or multiple frames, depending on the
order in which jobs finish.

This design also makes it simple to support streaming input, so that
is now available. Just pass `-` as the filename, and stdin/stdout will
be used for I/O.

2 months agoseekable_format: Link against multi-threaded libzstd.a
Dave Vasilevsky [Wed, 7 May 2025 01:57:29 +0000 (21:57 -0400)] 
seekable_format: Link against multi-threaded libzstd.a

Some of these examples are intended to be parallel, and don't make
sense to link against single-threaded libzstd.

The filename of mt and nomt libzstd are identical, so it's still
possible to link against the single-threaded one, just harder.

2 months agoseekable_format: Build with $(MAKE)
Dave Vasilevsky [Wed, 7 May 2025 01:55:22 +0000 (21:55 -0400)] 
seekable_format: Build with $(MAKE)

This passes make flags, such as `-jN` for building in parallel, to
the underlying make.

2 months ago[cmake] only require a CXX compiler when tests are build
Thomas Devoogdt [Tue, 1 Apr 2025 20:47:45 +0000 (22:47 +0200)] 
[cmake] only require a CXX compiler when tests are build

Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
2 months agoAdd License variable to pkg-config file
Nobuhiro Iwamatsu [Mon, 28 Apr 2025 09:03:33 +0000 (18:03 +0900)] 
Add License variable to pkg-config file

The pkg-config file has License variable that allows you to set the license for
the software. This sets 'BSD-3-Clause OR GPL-2.0-only' to License.

Ref: https://github.com/pkgconf/pkgconf/blob/master/man/pc.5#L116
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2 months agoMerge pull request #4378 from Cyan4973/fix_zstreamtest_minor
Yann Collet [Tue, 29 Apr 2025 21:01:14 +0000 (14:01 -0700)] 
Merge pull request #4378 from Cyan4973/fix_zstreamtest_minor

fix minor warning in zstreamtest

2 months agoMerge pull request #4371 from ecordonnier-sc/eco/fix-macos-duplicate-lc-rpath
Yann Collet [Tue, 29 Apr 2025 21:00:41 +0000 (14:00 -0700)] 
Merge pull request #4371 from ecordonnier-sc/eco/fix-macos-duplicate-lc-rpath

Fix duplicate LC_RPATH error on MacOS

2 months agofix minor warning in zstreamtest 4378/head
Yann Collet [Tue, 29 Apr 2025 15:55:19 +0000 (08:55 -0700)] 
fix minor warning in zstreamtest

2 months agoFix duplicate LC_RPATH error on MacOS 4370/head 4371/head
Etienne Cordonnier [Fri, 18 Apr 2025 12:37:50 +0000 (14:37 +0200)] 
Fix duplicate LC_RPATH error on MacOS

After the update to MacOS 15.4, the dynamic loader dyld treats duplicated LC_RPATH as an error.
The `FLAGS` variable already contains `LDFLAGS`, thus using both `FLAGS` and `LDFLAGS`
duplicates all `LDFLAGS`, including `-Wl,rpath` parameters.

The duplicate LC_RPATH causes this kind of errors:

```
dyld[29361]: Library not loaded: @loader_path/../lib/libzstd.1.dylib
      Referenced from: <7131C877-3CF0-33AC-AA05-257BA4FDD770> /Users/foobar/...
      Reason: tried: '/Users/foobar/..../lib/libzstd.1.dylib' (duplicate LC_RPATH '/usr/mypath.../lib')
```

Closes https://github.com/facebook/zstd/issues/4369

Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
2 months agoMerge pull request #4362 from facebook/dependabot/github_actions/actions/setup-java...
Yann Collet [Mon, 14 Apr 2025 10:19:07 +0000 (03:19 -0700)] 
Merge pull request #4362 from facebook/dependabot/github_actions/actions/setup-java-4.7.1

Bump actions/setup-java from 4.7.0 to 4.7.1

2 months agoBump actions/setup-java from 4.7.0 to 4.7.1 4362/head
dependabot[bot] [Mon, 14 Apr 2025 05:21:33 +0000 (05:21 +0000)] 
Bump actions/setup-java from 4.7.0 to 4.7.1

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

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

Signed-off-by: dependabot[bot] <support@github.com>
3 months agoMerge pull request #4353 from afq984/sparse
Yann Collet [Mon, 7 Apr 2025 10:48:41 +0000 (03:48 -0700)] 
Merge pull request #4353 from afq984/sparse

Check regular file for sparse support after opening

3 months agoUpdate cli-tests/file-stat tests 4353/head
Li-Yu Yu [Fri, 28 Mar 2025 21:45:47 +0000 (21:45 +0000)] 
Update cli-tests/file-stat tests

3 months agoCheck regular file for sparse support after opening
Li-Yu Yu [Fri, 28 Mar 2025 21:16:29 +0000 (21:16 +0000)] 
Check regular file for sparse support after opening

A regular file may be created by the open call.
Checking after opening allows sparseFileSupport even
if dstFileName does not already exist.

3 months agoMerge pull request #4349 from Cyan4973/devfd
Yann Collet [Fri, 28 Mar 2025 17:35:45 +0000 (10:35 -0700)] 
Merge pull request #4349 from Cyan4973/devfd

Support process substitution for `--filelist=`

3 months agoupdate error message 4349/head
Yann Collet [Fri, 28 Mar 2025 17:02:37 +0000 (10:02 -0700)] 
update error message

3 months agofix test
Yann Collet [Thu, 27 Mar 2025 04:33:26 +0000 (21:33 -0700)] 
fix test

3 months agoadd error message clarification for inputs as process substitution
Yann Collet [Thu, 27 Mar 2025 02:21:48 +0000 (19:21 -0700)] 
add error message clarification for inputs as process substitution

3 months agoadded CI test
Yann Collet [Tue, 25 Mar 2025 23:39:42 +0000 (16:39 -0700)] 
added CI test

3 months agovisual studio fix
Yann Collet [Tue, 25 Mar 2025 22:22:55 +0000 (15:22 -0700)] 
visual studio fix

3 months agominor: restore some code comment
Yann Collet [Tue, 25 Mar 2025 04:31:51 +0000 (21:31 -0700)] 
minor: restore some code comment

3 months agobetter naming
Yann Collet [Tue, 25 Mar 2025 04:20:21 +0000 (21:20 -0700)] 
better naming

and more narrow scope of local variables

3 months agosecond implementation, better structured for improved maintenance
Yann Collet [Tue, 25 Mar 2025 03:47:56 +0000 (20:47 -0700)] 
second implementation, better structured for improved maintenance

3 months agofirst implementation supporting Process Substitution
Yann Collet [Tue, 25 Mar 2025 03:42:52 +0000 (20:42 -0700)] 
first implementation supporting Process Substitution

3 months agoMerge pull request #4346 from Cyan4973/wintime
Yann Collet [Fri, 28 Mar 2025 04:07:57 +0000 (21:07 -0700)] 
Merge pull request #4346 from Cyan4973/wintime

fix a risk of overflow on a time counter on Windows

3 months agoMerge pull request #4350 from Cyan4973/patchapply
Yann Collet [Thu, 27 Mar 2025 16:57:20 +0000 (09:57 -0700)] 
Merge pull request #4350 from Cyan4973/patchapply

add --patch-apply command

3 months agoadd --patch-apply command 4350/head
Yann Collet [Tue, 25 Mar 2025 21:23:14 +0000 (14:23 -0700)] 
add --patch-apply command

as an equivalent for `-d --patch-from`.
Requested by @sergeevabc in #2173.

3 months agoMerge pull request #4314 from facebook/dependabot/github_actions/ossf/scorecard-actio...
Yann Collet [Tue, 25 Mar 2025 01:33:51 +0000 (18:33 -0700)] 
Merge pull request #4314 from facebook/dependabot/github_actions/ossf/scorecard-action-2.4.1

Bump ossf/scorecard-action from 2.4.0 to 2.4.1

3 months agoMerge pull request #4345 from Cyan4973/block128
Yann Collet [Tue, 25 Mar 2025 01:33:01 +0000 (18:33 -0700)] 
Merge pull request #4345 from Cyan4973/block128

[doc] minor clarification for maximum block size

3 months agoMerge pull request #4344 from Cyan4973/assert1
Yann Collet [Tue, 25 Mar 2025 01:32:37 +0000 (18:32 -0700)] 
Merge pull request #4344 from Cyan4973/assert1

add an assert

3 months agoupdate zstd --fast benchmark result
Yann Collet [Sun, 23 Mar 2025 19:06:58 +0000 (12:06 -0700)] 
update zstd --fast benchmark result

use --fast=4, instead of --fast=3,
to make it more representative of a lzo equivalent scenario.

3 months agoupdate benchmark result
Yann Collet [Sun, 23 Mar 2025 19:02:51 +0000 (12:02 -0700)] 
update benchmark result

brotli uses -1 level, like all other compressors

3 months agofix a risk of overflow on a time counter on Windows 4346/head
Yann Collet [Sun, 23 Mar 2025 18:42:41 +0000 (11:42 -0700)] 
fix a risk of overflow on a time counter on Windows

closes #4126

3 months ago[doc] minor clarification for maximum block size 4345/head
Yann Collet [Sun, 23 Mar 2025 06:52:45 +0000 (23:52 -0700)] 
[doc] minor clarification for maximum block size

closes #4339

3 months agoadd an assert 4344/head
Yann Collet [Sun, 23 Mar 2025 01:23:31 +0000 (18:23 -0700)] 
add an assert

to help static analyzers understand there is no overflow risk there.

3 months agoMerge pull request #4341 from clan/pragma
Yann Collet [Fri, 21 Mar 2025 02:49:08 +0000 (19:49 -0700)] 
Merge pull request #4341 from clan/pragma

lib/zstd.h: don't put pragma after static

3 months agolib/zstd.h: move pragma before static 4341/head
Z. Liu [Thu, 20 Mar 2025 03:28:37 +0000 (03:28 +0000)] 
lib/zstd.h: move pragma before static

otherwise will cause dev-python/zstandard build failed when compiling with
clang as reported at https://bugs.gentoo.org/950259

the root cause is pycparser, which is unfixed since reported 2.5 years
ago, :(

Signed-off-by: Z. Liu <zhixu.liu@gmail.com>
3 months agoMerge pull request #4336 from Cyan4973/qsort_v2
Yann Collet [Wed, 12 Mar 2025 17:31:54 +0000 (10:31 -0700)] 
Merge pull request #4336 from Cyan4973/qsort_v2

fix #4312 - musl compilation compatibility

3 months agoremoved OpenBSD specificity 4336/head
Yann Collet [Wed, 12 Mar 2025 16:55:14 +0000 (09:55 -0700)] 
removed OpenBSD specificity

3 months agoupdated documentation
Yann Collet [Tue, 11 Mar 2025 21:10:11 +0000 (14:10 -0700)] 
updated documentation

3 months agoadd support for C11 Annex K qsort_s()
Yann Collet [Tue, 11 Mar 2025 20:30:25 +0000 (13:30 -0700)] 
add support for C11 Annex K qsort_s()

standard defined re-entrant variant of qsort().
Unfortunately, Annex K is optional.

3 months agore-design qsort() selection in cover
Yann Collet [Tue, 11 Mar 2025 18:58:16 +0000 (11:58 -0700)] 
re-design qsort() selection in cover

centralizes auto detection tests,
then distribute the outcome in all the places where it's active.

3 months agofix #4312
Yann Collet [Tue, 11 Mar 2025 08:57:24 +0000 (01:57 -0700)] 
fix #4312

and upgraded the test so that it would fail, both at compile time and at run time, without the fix

3 months agoattempt to reduce length of long cli tests by invoking -T0
Yann Collet [Tue, 11 Mar 2025 08:14:39 +0000 (01:14 -0700)] 
attempt to reduce length of long cli tests by invoking -T0

3 months ago[linux] Opt out of row based match finder for the kernel
Nick Terrell [Tue, 11 Mar 2025 18:53:20 +0000 (11:53 -0700)] 
[linux] Opt out of row based match finder for the kernel

The row based match finder is slower without SIMD. We used to detect the
presence of SIMD to set the lower bound to 17, but that breaks
determinism. Instead, specifically opt into it for the kernel, because
it is one of the rare cases that doesn't have SIMD support.

3 months agoMerge pull request #4335 from Cyan4973/dec_mt_warning
Yann Collet [Tue, 11 Mar 2025 18:51:15 +0000 (11:51 -0700)] 
Merge pull request #4335 from Cyan4973/dec_mt_warning

warn when requesting decompression with multiple threads

3 months agofix minor unused variable warning 4335/head
Yann Collet [Tue, 11 Mar 2025 07:17:45 +0000 (00:17 -0700)] 
fix minor unused variable warning

3 months agowarn when requesting decompression with multiple threads
Yann Collet [Tue, 11 Mar 2025 05:46:33 +0000 (22:46 -0700)] 
warn when requesting decompression with multiple threads

restore #2918 fix

3 months agoMerge pull request #4334 from Cyan4973/fix4332
Yann Collet [Tue, 11 Mar 2025 05:12:24 +0000 (21:12 -0800)] 
Merge pull request #4334 from Cyan4973/fix4332

fix #4332: setting ZSTD_NBTHREADS=0 via environment variable

3 months agofixed ShellCheck warning 4334/head
Yann Collet [Tue, 11 Mar 2025 02:11:44 +0000 (19:11 -0700)] 
fixed ShellCheck warning

3 months agofix FreeBSD
Yann Collet [Mon, 10 Mar 2025 20:55:45 +0000 (13:55 -0700)] 
fix FreeBSD

use an alias instead of a function

also: added more traces and updated version nb to v1.5.8

3 months agoadd test
Yann Collet [Mon, 10 Mar 2025 20:40:47 +0000 (13:40 -0700)] 
add test

checks that ZSTD_NBTHREADS triggers the expected verbose message

Also: checked that the new test script fails on current `dev` branch, and is fixed by this branch

3 months agoremoved useless assert()
Yann Collet [Mon, 10 Mar 2025 16:54:06 +0000 (09:54 -0700)] 
removed useless assert()

3 months agofix #4332: setting ZSTD_NBTHREADS=0 via environment variables
Yann Collet [Mon, 10 Mar 2025 07:12:34 +0000 (00:12 -0700)] 
fix #4332: setting ZSTD_NBTHREADS=0 via environment variables

4 months ago[test] Add tests for determinism
Nick Terrell [Thu, 6 Mar 2025 19:14:38 +0000 (14:14 -0500)] 
[test] Add tests for determinism

Run compression & validate the compressed file matches a known checksum.

To update the output run:

```
make -C tests update-cli-tests
```

4 months agoAdd a method for checking if ZSTD was compiled with flags that impact determinism
Nick Terrell [Thu, 6 Mar 2025 22:31:57 +0000 (17:31 -0500)] 
Add a method for checking if ZSTD was compiled with flags that impact determinism

4 months agoMerge pull request #4329 from Cyan4973/cmd_split
Yann Collet [Wed, 5 Mar 2025 15:46:04 +0000 (07:46 -0800)] 
Merge pull request #4329 from Cyan4973/cmd_split

New commands --split and --jobsize

4 months ago[zstd] Remove global variables in dictBuilder
Nick Terrell [Tue, 4 Mar 2025 20:54:49 +0000 (15:54 -0500)] 
[zstd] Remove global variables in dictBuilder

D50949782 fixed a race condition updating `g_displayLevel` by disabling display.
Instead of disabling display, delete the global variable and always "capture" a local `displayLevel` variable.
This also fixes `DISPLAYUPDATE()` by requiring the user to pass in the last update time as the first parameter.

4 months ago[zstd] Backport D49756856
Nick Terrell [Tue, 4 Mar 2025 19:55:39 +0000 (14:55 -0500)] 
[zstd] Backport D49756856

4 months agoMerge pull request #4327 from Cyan4973/win_artifacts
Yann Collet [Wed, 5 Mar 2025 00:08:01 +0000 (16:08 -0800)] 
Merge pull request #4327 from Cyan4973/win_artifacts

Generate Zstandard binaries for Windows with lz4 support

4 months agoadded a cli test for new command --jobsize 4329/head
Yann Collet [Tue, 4 Mar 2025 23:24:43 +0000 (15:24 -0800)] 
added a cli test for new command --jobsize

4 months agofix typo
Yann Collet [Tue, 4 Mar 2025 23:12:35 +0000 (15:12 -0800)] 
fix typo

4 months agoupdate fileio to employ jobSize
Yann Collet [Tue, 4 Mar 2025 22:55:25 +0000 (14:55 -0800)] 
update fileio to employ jobSize

4 months agoupdate cli-tests
Yann Collet [Tue, 4 Mar 2025 22:43:06 +0000 (14:43 -0800)] 
update cli-tests

4 months agoupdated playTests.sh to employ the new commands
Yann Collet [Tue, 4 Mar 2025 21:22:01 +0000 (13:22 -0800)] 
updated playTests.sh to employ the new commands

4 months agochanged -B# command into --jobsize
Yann Collet [Tue, 4 Mar 2025 21:17:10 +0000 (13:17 -0800)] 
changed -B# command into --jobsize

to reduce confusion with the term "block".

-B# remains supported for existing scripts,
but it's no longer documented, so it's effectively a hidden shortcut.

4 months agoconvert benchmark unit to use the new naming scheme
Yann Collet [Tue, 4 Mar 2025 21:04:59 +0000 (13:04 -0800)] 
convert benchmark unit to use the new naming scheme

chunks instead of blocks

4 months agochanged command --blocksize into --split
Yann Collet [Tue, 4 Mar 2025 20:51:39 +0000 (12:51 -0800)] 
changed command --blocksize into --split

to reduce confusion with the concept of "blocks" inside a Zstandard frame.

We are now talking about "independent chunks" being produced by a `split` operation.

updated documentation accordingly.

Note: old commands "-B#` and `--blocksize=#` remain supported,
to maintain compatibility with existing scripts.

4 months agoattempt to no longer depend on system library presence for autodetection 4327/head
Yann Collet [Mon, 3 Mar 2025 23:54:29 +0000 (15:54 -0800)] 
attempt to no longer depend on system library presence for autodetection

use explicit opt-in and path setting

4 months agoupdate zstd build recipe to also support lz4 format
Yann Collet [Mon, 3 Mar 2025 22:27:43 +0000 (14:27 -0800)] 
update zstd build recipe to also support lz4 format

4 months agoMerge pull request #4324 from facebook/dependabot/github_actions/actions/checkout-4
Yann Collet [Mon, 3 Mar 2025 18:39:50 +0000 (10:39 -0800)] 
Merge pull request #4324 from facebook/dependabot/github_actions/actions/checkout-4

Bump actions/checkout from 3 to 4