]> git.ipfire.org Git - thirdparty/zstd.git/log
thirdparty/zstd.git
2 years agoRewrite checking condition bufStart pointer NULL 3304/head
appleman4321 [Mon, 31 Oct 2022 23:31:09 +0000 (02:31 +0300)] 
Rewrite checking condition bufStart pointer NULL

2 years ago[contrib][linux] Disable ASM in the kernel
Nick Terrell [Tue, 18 Oct 2022 01:40:06 +0000 (18:40 -0700)] 
[contrib][linux] Disable ASM in the kernel

Disable ASM in the kernel for now. It requires a few changes & setup to
get working. Instead of doing it in a zstd version update, I'd prefer to
package that change as a single patch, and propose it separately from
the version update. This makes the version update easier, and reduces
some risk.

2 years ago[contrib][linux] Add zstd_common module
Nick Terrell [Mon, 17 Oct 2022 20:07:41 +0000 (13:07 -0700)] 
[contrib][linux] Add zstd_common module

The zstd_common module was added upstream in commit
https://github.com/torvalds/linux/commit/637a642f5ca5e850186bb64ac75ebb0f124b458d.

But the kernel specific code was inlined into the library. This commit
switches it to use the out of line method that we use for the other
modules.

2 years ago[lazy] Use switch instead of indirect function calls. (#3295)
Nick Terrell [Sat, 22 Oct 2022 00:14:02 +0000 (17:14 -0700)] 
[lazy] Use switch instead of indirect function calls. (#3295)

Use a switch statement to select the search function instead of an
indirect function call. This results in a sizable performance win.

This PR is a modification of the approach taken in PR #2828.
When I measured performance for that commit, it was neutral.
However, I now see a performance regression on gcc, but still
neutral on clang. I'm measuring on the same platform, but with
newer compilers. The new approach beats both the current dev
branch and the baseline before PR #2828 was merged.

This PR is necessary for Issue #3275, to update zstd in the kernel.
Without this PR there is a large regression in greedy - btlazy2
compression speed. With this PR it is about neutral.

gcc version: 12.2.0
clang version: 14.0.6
dataset: silesia.tar

| Compiler | Level | Dev Speed (MB/s) | PR Speed (MB/s) | Delta  |
|----------|-------|------------------|-----------------|--------|
| gcc      |     5 |            102.6 |           113.7 | +10.8% |
| gcc      |     7 |             66.6 |            74.8 | +12.3% |
| gcc      |     9 |             51.5 |            58.9 | +14.3% |
| gcc      |    13 |             14.3 |            14.3 |  +0.0% |
| clang    |     5 |            108.1 |           114.8 |  +6.2% |
| clang    |     7 |             68.5 |            72.3 |  +5.5% |
| clang    |     9 |             53.2 |            56.2 |  +5.6% |
| clang    |    13 |             14.3 |            14.7 |  +2.8% |

The binary size stays just about the same for clang and gcc, measured
using the `size` command:

| Compiler | Branch | Text    | Data | BSS | Total   |
|----------|--------|---------|------|-----|---------|
| gcc      | dev    | 1127950 | 3312 | 280 | 1131542 |
| gcc      | PR     | 1123422 | 2512 | 280 | 1126214 |
| clang    | dev    | 1046254 | 3256 | 216 | 1049726 |
| clang    | PR     | 1048198 | 2296 | 216 | 1050710 |

2 years ago[contrib][linux-kernel] Generate SPDX license identifiers (#3294)
Miguel Ojeda [Tue, 18 Oct 2022 23:35:44 +0000 (01:35 +0200)] 
[contrib][linux-kernel] Generate SPDX license identifiers (#3294)

Add a `--spdx` option to the freestanding script to prefix
files with a line like (for `.c` files):

    // SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause

or (for `.h` and `.S` files):

    /* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */

Given the style of the line to be used depends on the extension,
a simple `sed` insert command would not work.

It also skips the file if an existing SPDX line is there,
as well as raising an error if an unexpected SPDX line appears
anywhere else in the file, as well as for unexpected
file extensions.

I double-checked that all currently generated files appear
to be license as expected with:

    grep -LRF 'This source code is licensed under both the BSD-style license (found in the'  linux/lib/zstd
    grep -LRF 'LICENSE file in the root directory of this source tree) and the GPLv2 (found' linux/lib/zstd

but somebody knowledgable on the licensing of the project should
double-check this is the intended case.

Fixes: https://github.com/facebook/zstd/issues/3293
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2 years agoMerge pull request #3290 from felixhandte/ddict-dict-id-from-ddict
Felix Handte [Tue, 18 Oct 2022 17:33:32 +0000 (13:33 -0400)] 
Merge pull request #3290 from felixhandte/ddict-dict-id-from-ddict

Make ZSTD_getDictID_fromDDict() Read DictID from DDict

2 years agoMerge pull request #3285 from daniellerozenblit/optimal-huff-depth
daniellerozenblit [Tue, 18 Oct 2022 14:31:44 +0000 (10:31 -0400)] 
Merge pull request #3285 from daniellerozenblit/optimal-huff-depth

Optimal huf depth

2 years agoMake fuzzing work without ZSTD_MULTITHREAD (#3291)
Daniel Kutenin [Mon, 17 Oct 2022 21:31:47 +0000 (22:31 +0100)] 
Make fuzzing work without ZSTD_MULTITHREAD (#3291)

2 years agoNo longer pass srcSize to minTableLog 3285/head
Danielle Rozenblit [Mon, 17 Oct 2022 15:03:44 +0000 (08:03 -0700)] 
No longer pass srcSize to minTableLog

2 years agoMinor simplication: no longer need to check src size if using cardinality for minTableLog
Danielle Rozenblit [Mon, 17 Oct 2022 14:55:07 +0000 (07:55 -0700)] 
Minor simplication: no longer need to check src size if using cardinality for minTableLog

2 years agoMerge pull request #3288 from facebook/cleanThreadPool
Yann Collet [Sat, 15 Oct 2022 06:59:03 +0000 (23:59 -0700)] 
Merge pull request #3288 from facebook/cleanThreadPool

Cleaner threadPool initialization

2 years agoMake ZSTD_getDictID_fromDDict() Read DictID from DDict 3290/head
W. Felix Handte [Sat, 15 Oct 2022 02:53:03 +0000 (22:53 -0400)] 
Make ZSTD_getDictID_fromDDict() Read DictID from DDict

Currently this function actually reads the dict ID from the dictionary's
header, via `ZSTD_getDictID_fromDict()`. But during decompression the decomp-
ressor actually compares the dict ID in the frame header with the dict ID in
the DDict. Now of course the dict ID in the dictionary contents and the dict
ID in the DDict struct *should* be the same. But in cases of memory corrupt-
ion, where they can drift out of sync, it's misleading for this function to
read it again from the dict buffer rather then return the dict ID that will
actually be used.

Also doing it this way avoids rechecking the magic and so on and so it is a
tiny bit more efficient.

2 years agoUpdate regression results and better variable naming for HUF_cardinality
Danielle Rozenblit [Fri, 14 Oct 2022 20:37:19 +0000 (13:37 -0700)] 
Update regression results and better variable naming for HUF_cardinality

2 years agoUpdate threshold to use optimal depth
Danielle Rozenblit [Fri, 14 Oct 2022 18:29:32 +0000 (11:29 -0700)] 
Update threshold to use optimal depth

2 years agoAdditional ratio optimizations
Danielle Rozenblit [Fri, 14 Oct 2022 17:37:35 +0000 (10:37 -0700)] 
Additional ratio optimizations

2 years agofix issue #3119 3288/head
Yann Collet [Thu, 28 Apr 2022 03:51:56 +0000 (20:51 -0700)] 
fix issue #3119

fix segfault error when running zstreamtest with MALLOC_PERTURB_

2 years agoUpdate regression results
Danielle Rozenblit [Wed, 12 Oct 2022 20:49:44 +0000 (13:49 -0700)] 
Update regression results

2 years agoreplaced Zstandard by zstd in man page
Yann Collet [Wed, 12 Oct 2022 06:32:18 +0000 (23:32 -0700)] 
replaced Zstandard by zstd in man page

identified by @paulmenzel in #3286

2 years agoMerge branch 'optimal-huff-depth' of github.com:daniellerozenblit/zstd into optimal...
Danielle Rozenblit [Tue, 11 Oct 2022 21:45:50 +0000 (14:45 -0700)] 
Merge branch 'optimal-huff-depth' of github.com:daniellerozenblit/zstd into optimal-huff-depth

2 years agoSet threshold to use optimal table log
Danielle Rozenblit [Tue, 11 Oct 2022 21:33:25 +0000 (14:33 -0700)] 
Set threshold to use optimal table log

2 years agoMerge branch 'facebook:dev' into optimal-huff-depth
daniellerozenblit [Tue, 11 Oct 2022 20:15:23 +0000 (16:15 -0400)] 
Merge branch 'facebook:dev' into optimal-huff-depth

2 years agoCI failure fixes
Danielle Rozenblit [Tue, 11 Oct 2022 20:12:19 +0000 (13:12 -0700)] 
CI failure fixes

2 years agoMerge pull request #3281 from ilyakurdyukov/patch-1
Yann Collet [Sat, 8 Oct 2022 05:56:45 +0000 (22:56 -0700)] 
Merge pull request #3281 from ilyakurdyukov/patch-1

fixed zstd-pgo target for GCC

2 years agozstd-pgo: also clean zstd binary from objects 3281/head
Ilya Kurdyukov [Wed, 5 Oct 2022 17:38:23 +0000 (00:38 +0700)] 
zstd-pgo: also clean zstd binary from objects

Just a precaution, because it works anyway.

2 years agofixed zstd-pgo target for GCC
Ilya Kurdyukov [Wed, 5 Oct 2022 10:32:16 +0000 (17:32 +0700)] 
fixed zstd-pgo target for GCC

Since your Makefile uses obj/$(HASH_DIR) for object files, this code does not work correctly for GCC. Because profiles are saved in one directory, and are expected in another when reading.

`$(RM) zstd *.o` - this line doesn't delete object files.

Clang stores profiles in the current directory, so the problem doesn't appear when compiling with Clang.

Also this code will work if BUILD_DIR is set.

2 years agoMerge pull request #3277 from felixhandte/ossf-scorecard
Felix Handte [Mon, 3 Oct 2022 18:33:21 +0000 (14:33 -0400)] 
Merge pull request #3277 from felixhandte/ossf-scorecard

Enable OpenSSF Scorecard Action

2 years agoRestrict from Running on Forks 3277/head
W. Felix Handte [Mon, 3 Oct 2022 15:23:29 +0000 (11:23 -0400)] 
Restrict from Running on Forks

2 years agoCreate scorecards.yml
Felix Handte [Tue, 27 Sep 2022 20:54:39 +0000 (16:54 -0400)] 
Create scorecards.yml

Addresses #3269.

2 years agoMerge pull request #3273 from MaskRay/deprecated
Yann Collet [Wed, 28 Sep 2022 17:30:22 +0000 (10:30 -0700)] 
Merge pull request #3273 from MaskRay/deprecated

Move ZSTD_DEPRECATED before ZSTDLIB_API/ZSTDLIB_STATIC_API

2 years agoMove ZSTD_DEPRECATED before ZSTDLIB_API/ZSTDLIB_STATIC_API 3273/head
Fangrui Song [Thu, 22 Sep 2022 19:30:21 +0000 (12:30 -0700)] 
Move ZSTD_DEPRECATED before ZSTDLIB_API/ZSTDLIB_STATIC_API

Clang doesn't allow [[deprecated(...)]] attribute after __attribute__.
Move [[deprecated(...)]] before __attribute__ to fix C++14/C++17 uses
with Clang.

Fix #3250

2 years agoMerge pull request #3267 from Tachi107/pkg-config-ci
Yann Collet [Thu, 22 Sep 2022 19:00:06 +0000 (12:00 -0700)] 
Merge pull request #3267 from Tachi107/pkg-config-ci

ci: test pkg-config file

2 years agoMerge pull request #3274 from facebook/copycctx
Yann Collet [Thu, 22 Sep 2022 18:50:53 +0000 (11:50 -0700)] 
Merge pull request #3274 from facebook/copycctx

[minor] refactor publication of ZSTD_copyCCtx()

2 years agominor: refactor publication of ZSTD_copyCCtx() 3274/head
Yann Collet [Thu, 22 Sep 2022 18:14:21 +0000 (11:14 -0700)] 
minor: refactor publication of ZSTD_copyCCtx()

for improved clarity

2 years agoRemoved unused variable (#3272)
Yonatan Komornik [Thu, 22 Sep 2022 15:20:46 +0000 (08:20 -0700)] 
Removed unused variable (#3272)

2 years agoFix for `zstd` CLI accepts bogus values for numeric parameters (#3268)
ctkhanhly [Wed, 21 Sep 2022 20:20:01 +0000 (13:20 -0700)] 
Fix for `zstd` CLI accepts bogus values for numeric parameters (#3268)

* add checks to mal-formed numeric values for memory and memlimit parameters

Signed-off-by: Ly Cao <lycao@fb.com>
* changed errorMsg to a literal string instead of static string in main

* moved bogus numeric error to NEXT_UINT32 + add macro NEXT_TSIZE

Signed-off-by: Ly Cao <lycao@fb.com>
Signed-off-by: Ly Cao <lycao@fb.com>
Co-authored-by: Ly Cao <lycao@fb.com>
2 years agoci: test pkg-config file 3267/head
Andrea Pappacoda [Tue, 20 Sep 2022 20:13:23 +0000 (22:13 +0200)] 
ci: test pkg-config file

As mentioned in
https://github.com/facebook/zstd/pull/3252#issuecomment-1251733791 ,
this patch adds a CI job that builds and installs libzstd on the job
runner, and then compiles a sample binary linking against the installed
library; the needed build flags are passed by invoking pkg-config.

2 years agoMerge pull request #3252 from Tachi107/build-cmake-pkg-config-always
Yann Collet [Tue, 20 Sep 2022 18:31:15 +0000 (11:31 -0700)] 
Merge pull request #3252 from Tachi107/build-cmake-pkg-config-always

build(cmake): improve pkg-config generation

2 years agoMerge pull request #3265 from DimitriPapadopoulos/actions
Yann Collet [Tue, 20 Sep 2022 18:30:26 +0000 (11:30 -0700)] 
Merge pull request #3265 from DimitriPapadopoulos/actions

Update GitHub Actions

2 years agoUpdate GitHub Actions 3265/head
Dimitri Papadopoulos [Tue, 20 Sep 2022 07:15:09 +0000 (09:15 +0200)] 
Update GitHub Actions

2 years agoMerge pull request #3199 from JunHe77/comp
Yann Collet [Mon, 19 Sep 2022 17:49:10 +0000 (10:49 -0700)] 
Merge pull request #3199 from JunHe77/comp

compress:check more bytes to reduce ZSTD_count call

2 years agoMerge pull request #3245 from haampie/fix/SED_ERE_OPT
Yann Collet [Mon, 19 Sep 2022 17:48:11 +0000 (10:48 -0700)] 
Merge pull request #3245 from haampie/fix/SED_ERE_OPT

drop -E flag in sed

2 years agoMerge pull request #3247 from haampie/fix/grep
Yann Collet [Mon, 19 Sep 2022 17:47:38 +0000 (10:47 -0700)] 
Merge pull request #3247 from haampie/fix/grep

Fix make variable

2 years agoMerge pull request #3264 from sashashura/patch-1
Yann Collet [Mon, 19 Sep 2022 17:47:00 +0000 (10:47 -0700)] 
Merge pull request #3264 from sashashura/patch-1

GitHub Workflows security hardening

2 years agobuild: harden GitHub Workflow permissions 3264/head
Alex [Mon, 19 Sep 2022 15:51:59 +0000 (17:51 +0200)] 
build: harden GitHub Workflow permissions
Signed-off-by: Alex Low <aleksandrosansan@gmail.com>
2 years agocompress:check more bytes to reduce ZSTD_count call 3199/head
Jun He [Fri, 24 Jun 2022 09:07:06 +0000 (17:07 +0800)] 
compress:check more bytes to reduce ZSTD_count call

Comparing 4B instead of comparing 1B in ZSTD_noDict
mode, thus it can avoid cases like match in match[ml]
but mismatch in match[ml-3]..match[ml-1]. So the call
count of ZSTD_count can be reduced.

Signed-off-by: Jun He <jun.he@arm.com>
Change-Id: I3449ea423d5c8e8344f75341f19a2d1643c703f6

2 years agoMerge pull request #3263 from daniellerozenblit/null-buffer-decompress
daniellerozenblit [Tue, 13 Sep 2022 14:07:35 +0000 (10:07 -0400)] 
Merge pull request #3263 from daniellerozenblit/null-buffer-decompress

ZSTD_decompressStream() fuzz fix

2 years agoMerge branch 'null-buffer-decompress' of github.com:daniellerozenblit/zstd into null... 3263/head
Danielle Rozenblit [Tue, 13 Sep 2022 01:57:53 +0000 (18:57 -0700)] 
Merge branch 'null-buffer-decompress' of github.com:daniellerozenblit/zstd into null-buffer-decompress

2 years agofix indentation
Danielle Rozenblit [Tue, 13 Sep 2022 01:56:59 +0000 (18:56 -0700)] 
fix indentation

2 years agoMerge pull request #3256 from facebook/clean
Yann Collet [Mon, 12 Sep 2022 20:23:34 +0000 (13:23 -0700)] 
Merge pull request #3256 from facebook/clean

streamline `make clean` list maintenance

2 years agosimplify clean target maintenance within programs/ 3256/head
Yann Collet [Mon, 12 Sep 2022 19:18:51 +0000 (12:18 -0700)] 
simplify clean target maintenance within programs/

2 years agoMerge branch 'facebook:dev' into null-buffer-decompress
daniellerozenblit [Mon, 12 Sep 2022 18:54:36 +0000 (14:54 -0400)] 
Merge branch 'facebook:dev' into null-buffer-decompress

2 years agofuzzer error fix
Danielle Rozenblit [Mon, 12 Sep 2022 18:53:37 +0000 (11:53 -0700)] 
fuzzer error fix

2 years agoMerge branch 'dev' into clean
Yann Collet [Mon, 12 Sep 2022 17:56:00 +0000 (10:56 -0700)] 
Merge branch 'dev' into clean

2 years agoMerge pull request #3262 from daniellerozenblit/sequence-bound
daniellerozenblit [Fri, 9 Sep 2022 21:40:42 +0000 (17:40 -0400)] 
Merge pull request #3262 from daniellerozenblit/sequence-bound

Add sequenceBound(srcSize) method

2 years agouse ZSTD_sequenceBound in seqBench 3262/head
Danielle Rozenblit [Fri, 9 Sep 2022 20:04:41 +0000 (13:04 -0700)] 
use ZSTD_sequenceBound in seqBench

2 years agoMerge branch 'facebook:dev' into sequence-bound
daniellerozenblit [Fri, 9 Sep 2022 19:57:05 +0000 (15:57 -0400)] 
Merge branch 'facebook:dev' into sequence-bound

2 years agoMerge pull request #3257 from embg/seqBench2
Elliot Gorokhovsky [Fri, 9 Sep 2022 19:53:28 +0000 (15:53 -0400)] 
Merge pull request #3257 from embg/seqBench2

Benchmark program for sequence compression API

2 years agoadd sequence bound function
Danielle Rozenblit [Fri, 9 Sep 2022 19:34:25 +0000 (12:34 -0700)] 
add sequence bound function

2 years agoMerge pull request #3259 from DimitriPapadopoulos/codespell
Elliot Gorokhovsky [Fri, 9 Sep 2022 15:15:05 +0000 (11:15 -0400)] 
Merge pull request #3259 from DimitriPapadopoulos/codespell

Fix typos found by codespell

2 years agoMerge pull request #3258 from daniellerozenblit/null-buffer-decompress
daniellerozenblit [Fri, 9 Sep 2022 13:39:59 +0000 (09:39 -0400)] 
Merge pull request #3258 from daniellerozenblit/null-buffer-decompress

Fix undefined behavior in ZSTD_decompressStream()

2 years agosome additional comments, remove apt-get from clang jobs, better test titles 3258/head
Danielle Rozenblit [Fri, 9 Sep 2022 01:30:07 +0000 (18:30 -0700)] 
some additional comments, remove apt-get from clang jobs, better test titles

2 years agoFix typos found by codespell 3259/head
Dimitri Papadopoulos [Thu, 8 Sep 2022 21:12:23 +0000 (23:12 +0200)] 
Fix typos found by codespell

2 years agoskip flush operation in case where op is NULL
Danielle Rozenblit [Thu, 8 Sep 2022 20:53:13 +0000 (13:53 -0700)] 
skip flush operation in case where op is NULL

2 years agoternary operator instead of if statement
Danielle Rozenblit [Thu, 8 Sep 2022 19:59:49 +0000 (12:59 -0700)] 
ternary operator instead of if statement

2 years agoremove 32-bit ubsan clang test (bug in clang that produces an error)
Danielle Rozenblit [Thu, 8 Sep 2022 19:04:57 +0000 (12:04 -0700)] 
remove 32-bit ubsan clang test (bug in clang that produces an error)

2 years agoBenchmark program for sequence compression API 3257/head
Elliot Gorokhovsky [Mon, 5 Sep 2022 09:44:56 +0000 (02:44 -0700)] 
Benchmark program for sequence compression API

2 years agoadd clang jobs for ubsan in github workflow
Danielle Rozenblit [Thu, 8 Sep 2022 16:00:39 +0000 (09:00 -0700)] 
add clang jobs for ubsan in github workflow

2 years agofix zero offset to nullpointer errors
Danielle Rozenblit [Thu, 8 Sep 2022 00:52:26 +0000 (17:52 -0700)] 
fix zero offset to nullpointer errors

2 years agostreamline `make clean` list maintenance
Yann Collet [Wed, 7 Sep 2022 23:10:13 +0000 (16:10 -0700)] 
streamline `make clean` list maintenance

When creating a new `Makefile` target to build,
it's also necessary to update the `clean` target,
which purpose is to remove built targets when they are present.

This process is simple, but it's also easy to forget :
since there is a large distance between the position in the `Makefile` where the new built target is added,
and the place where the list of files to `clean` is defined.
Moreover, the list of files becomes pretty long over time,
hence it's difficult to visually ensure that all built targets are present there,
or that no old target (no longer produced) is no longer in the list

This PR tries to improve this process by adding a CLEAN variable.
Now, when a new built target is added to the `Makefile`,
it should preceded by :
```
CLEAN += newTarget
newTarget:
<TAB> ...recipe...
```

This new requirement is somewhat similar to `.PHONY: newTarget` for non-built targets.

This new method offers the advantage of locality :
there is no separate place in the file to maintain a list of files to clean.
This makes maintenance of `make clean` easier.

2 years agorevert change
Danielle Rozenblit [Wed, 7 Sep 2022 19:37:25 +0000 (12:37 -0700)] 
revert change

2 years agodo not recover pointer overflow for testing
Danielle Rozenblit [Wed, 7 Sep 2022 19:21:54 +0000 (12:21 -0700)] 
do not recover pointer overflow for testing

2 years agoadded zstreamtest_ubsan to make file + added ubsan zstreamtest job for CI tests
Danielle Rozenblit [Wed, 7 Sep 2022 18:54:17 +0000 (11:54 -0700)] 
added zstreamtest_ubsan to make file + added ubsan zstreamtest job for CI tests

2 years agoadded test that exposes zero offset to null pointer error when built with clang
Danielle Rozenblit [Wed, 7 Sep 2022 15:58:08 +0000 (08:58 -0700)] 
added test that exposes zero offset to null pointer error when built with clang

2 years agoremove zstream_ubsan from git and add to gitignore
Danielle Rozenblit [Wed, 7 Sep 2022 14:40:43 +0000 (07:40 -0700)] 
remove zstream_ubsan from git and add to gitignore

2 years agonull decompress buffer test and ubsan flag added 3253/head 3254/head
Danielle Rozenblit [Tue, 6 Sep 2022 21:34:55 +0000 (14:34 -0700)] 
null decompress buffer test and ubsan flag added

2 years agobuild(cmake): improve pkg-config generation 3252/head
Andrea Pappacoda [Sun, 28 Aug 2022 11:01:20 +0000 (13:01 +0200)] 
build(cmake): improve pkg-config generation

With this patch the pkg-config generation when using the CMake build
system is improved in the following ways:

- Libs.private is now filled when needed
- The JoinPaths module is now used to join paths, leading to simpler
  code
- The .pc file is always generated, regardless of the platform, as it
  can also be consumed on Windows

Here's how the .pc file is affected by these changes, in comparison to
the one generated with the official Makefiles:

    $ diff -s lib/libzstd.pc build/cmake/build-old/lib/libzstd.pc
    15c15
    < Libs.private: -pthread
    ---
    > Libs.private:

    $ diff -s lib/libzstd.pc build/cmake/build-new/lib/libzstd.pc
    Files lib/libzstd.pc and build/cmake/build-new/lib/libzstd.pc are
    identical

2 years agoFix make variable 3247/head
Harmen Stoppels [Fri, 19 Aug 2022 10:06:43 +0000 (12:06 +0200)] 
Fix make variable

2 years agodrop -E flag in sed 3245/head
Harmen Stoppels [Fri, 19 Aug 2022 10:00:32 +0000 (12:00 +0200)] 
drop -E flag in sed

2 years agoMerge pull request #3241 from wahern/wahern-combine-sh-faster
Yann Collet [Tue, 16 Aug 2022 23:09:43 +0000 (16:09 -0700)] 
Merge pull request #3241 from wahern/wahern-combine-sh-faster

restore combine.sh bash performance while still sticking to POSIX

2 years agoMerge pull request #3230 from grossws/fix3229-docs
Elliot Gorokhovsky [Tue, 16 Aug 2022 16:48:23 +0000 (12:48 -0400)] 
Merge pull request #3230 from grossws/fix3229-docs

Add description for ZSTD_decompressStream and ZSTD_initDStream

2 years agoDocument pass-through behavior (#3242)
Chris Burgess [Mon, 15 Aug 2022 17:29:54 +0000 (13:29 -0400)] 
Document pass-through behavior (#3242)

Adds documentation to help and man pages for legacy pass-through behavior
when force is set and destination is stdout. Documents --pass-through in
man pages

2 years agoescape glob pattern special characters in subject string before generating search... 3241/head
William Ahern [Thu, 11 Aug 2022 03:58:55 +0000 (20:58 -0700)] 
escape glob pattern special characters in subject string before generating search patterns in combine.sh list_has_item

2 years agorestore combine.sh bash performance while still sticking to POSIX
William Ahern [Wed, 10 Aug 2022 23:51:17 +0000 (16:51 -0700)] 
restore combine.sh bash performance while still sticking to POSIX

2 years agoMerge pull request #3235 from facebook/docTraining
Yann Collet [Mon, 8 Aug 2022 19:06:49 +0000 (12:06 -0700)] 
Merge pull request #3235 from facebook/docTraining

[easy] added a few documentation words about dictionary training

2 years agoAdd description for ZSTD_decompressStream and ZSTD_initDStream 3230/head
Konstantin Gribov [Mon, 1 Aug 2022 20:50:54 +0000 (23:50 +0300)] 
Add description for ZSTD_decompressStream and ZSTD_initDStream

With that these functions become visible in generated docs.

Fixes #3229

2 years agoadded a few documentation words about dictionary training 3235/head
Yann Collet [Fri, 5 Aug 2022 15:09:22 +0000 (17:09 +0200)] 
added a few documentation words about dictionary training

partially answering questions such as #3233
which looks for guidance within `exmaples/`.

3 years agoAdd explicit --pass-through flag and default to enabled for *cat (#3223)
Nick Terrell [Fri, 5 Aug 2022 00:15:59 +0000 (17:15 -0700)] 
Add explicit --pass-through flag and default to enabled for *cat (#3223)

Fixes #3211.

Adds the `--[no-]pass-through` flag which enables/disables pass-through mode.

* `zstdcat`, `zcat`, and `gzcat` default to `--pass-through`.
  Pass-through mode can be disabled by passing `--no-pass-through`.
* All other binaries default to not setting pass-through mode.
  However, we preserve the legacy behavior of enabling pass-through
  mode when writing to stdout with `-f` set, unless pass-through
  mode is explicitly disabled with `--no-pass-through`.

Adds a new test for this behavior that should codify the behavior we want.

3 years agofix issue #3144 (#3226)
zengyijing [Thu, 4 Aug 2022 20:51:14 +0000 (16:51 -0400)] 
fix issue #3144 (#3226)

* fix issue #3144

* add test case for verbose-wlog

Co-authored-by: zengyijing <yijingzeng@fb.com>
3 years agoMerge pull request #3232 from facebook/fileiotypes_nomemh
Yann Collet [Wed, 3 Aug 2022 20:57:16 +0000 (22:57 +0200)] 
Merge pull request #3232 from facebook/fileiotypes_nomemh

fileio_types.h : avoid dependency on mem.h

3 years agoMerge pull request #3231 from facebook/fileio_missingInclude
Yann Collet [Wed, 3 Aug 2022 20:48:05 +0000 (22:48 +0200)] 
Merge pull request #3231 from facebook/fileio_missingInclude

[easy] fixed missing include

3 years agofileio_types.h : avoid dependency on mem.h 3232/head
Yann Collet [Wed, 3 Aug 2022 19:39:35 +0000 (21:39 +0200)] 
fileio_types.h : avoid dependency on mem.h

fileio_types.h cannot be parsed by itself
because it relies on basic types defined in `lib/common/mem.h`.
As for #3231, it likely wasn't detected because `mem.h` was probably included before within target files.
But this is not proper.

A "easy" solution would be to add the missing include,
but each dependency should be considered "bad" by default,
and only allowed if it brings some tangible value.

In this case, since these types are only used to declare internal structure variables
which are effectively only flags,
I believe it's really not valuable to add a dependency on `mem.h` for this purpose
while the standard `int` type can do the same job.

I was expecting some compiler warnings following this change,
but it turns out we don't use `-Wconversion` by default on `zstd` source code,
so there is none.

Nevertheless, I enabled `-Wconversion` locally and proceeded to fix a few conversion warnings in the process.

Adding `-Wconversion` to the list of flags used for `zstd` is something I would be favorable over the long term,
but it cannot be done overnight,
because the nb of places where this warning is triggered is daunting.
Better progressively reduce the nb of triggered `-Wconversion` warnings before enabling this flag by default.

3 years agominor : fixed missing include 3231/head
Yann Collet [Wed, 3 Aug 2022 18:52:15 +0000 (20:52 +0200)] 
minor : fixed missing include

I presume it was not detected before
because "fileio.h" is probably always included after "util.h".

3 years agoFix off-by-one error in superblock mode (#3221)
Nick Terrell [Wed, 3 Aug 2022 18:28:39 +0000 (11:28 -0700)] 
Fix off-by-one error in superblock mode (#3221)

Fixes #3212.

Long literal and match lengths had an off-by-one error in ZSTD_getSequenceLength.
Fix the off-by-one error, and add a golden compression test that catches the bug.
Also run all the golden tests in the cli-tests framework.

3 years agoMerge pull request #3196 from mileshu/dev
Felix Handte [Tue, 2 Aug 2022 16:34:04 +0000 (12:34 -0400)] 
Merge pull request #3196 from mileshu/dev

[T124890272] Mark 2 Obsolete Functions(ZSTD_copy*Ctx) Deprecated in Zstd

3 years agoMerge branch 'dev' of https://github.com/mileshu/zstd into dev 3196/head
Miles Hu [Tue, 2 Aug 2022 05:52:47 +0000 (22:52 -0700)] 
Merge branch 'dev' of https://github.com/mileshu/zstd into dev

3 years ago[T124890272] Mark 2 Obsolete Functions(ZSTD_copy*Ctx) Deprecated in Zstd
Miles HU [Wed, 13 Jul 2022 18:00:05 +0000 (11:00 -0700)] 
[T124890272] Mark 2 Obsolete Functions(ZSTD_copy*Ctx) Deprecated in Zstd

The discussion for this task is here: facebook/zstd#3128.

This task can probably be scoped to the first part: marking these functions deprecated.
We'll later look at removal when we roll out v1.6.0.

3 years agoDeprecate ZSTD_getDecompressedSize() (#3225)
Nick Terrell [Mon, 1 Aug 2022 18:52:14 +0000 (11:52 -0700)] 
Deprecate ZSTD_getDecompressedSize() (#3225)

Fixes #3158.

Mark ZSTD_getDecompressedSize() as deprecated and replaced by ZSTD_getFrameContentSize().

3 years agoMerge pull request #3220 from embg/issue3200
Elliot Gorokhovsky [Mon, 1 Aug 2022 18:04:57 +0000 (14:04 -0400)] 
Merge pull request #3220 from embg/issue3200

Disallow empty string as argument for --output-dir-flat and --output-dir-mirror

3 years agoFix hash4Ptr for big endian (#3227)
Qiongsi Wu [Mon, 1 Aug 2022 17:41:24 +0000 (13:41 -0400)] 
Fix hash4Ptr for big endian (#3227)

3 years agostdin multiple file fixes (#3222)
Yonatan Komornik [Fri, 29 Jul 2022 23:13:07 +0000 (16:13 -0700)] 
stdin multiple file fixes (#3222)

* Fixes for https://github.com/facebook/zstd/issues/3206 - bugs when handling stdin as part of multiple files.

* new line at end of multiple-files.sh