]>
git.ipfire.org Git - thirdparty/zstd.git/log
Eli Schwartz [Mon, 9 Aug 2021 01:43:59 +0000 (21:43 -0400)]
meson: set the symbol visibility of the shared library to hidden
This matches the Makefile build. Due to one private xxhash symbol in use
by the program, it recompiles a private copy of xxhash.
Due to the test binaries making extensive (?) use of private symbols, it
doesn't even attempt to link to shared libzstd, and instead, all of the
original object files are added to libtestcommon itself for private
linkage. This, too, matches the Makefile build.
Ref. #2261
Eli Schwartz [Mon, 9 Aug 2021 01:11:20 +0000 (21:11 -0400)]
meson: fix warnings in build files
meson prefers that project-level options for Wall/Wextra/pedantic be
used, rather than hardcoding raw flags in add_project_arguments. If you
do the latter anyway, it raises a meson warning.
Set the default options for the project to use all this.
Also move the -Werror comment to the project default options with
appropriate format, but leave it commented out since it does not work.
Eli Schwartz [Tue, 10 Aug 2021 00:03:57 +0000 (20:03 -0400)]
meson: link tests with a convenience library of sources used by multiple binaries
This saves repeatedly compiling them, resulting in 16 fewer compile
steps, in exchange for one `ar` step.
sen [Fri, 6 Aug 2021 16:51:31 +0000 (12:51 -0400)]
Merge pull request #2692 from senhuang42/rebalance_clevel
[RFC] Rebalance compression levels
Sen Huang [Thu, 29 Jul 2021 15:35:36 +0000 (08:35 -0700)]
Optimize 32-bit VecMask_next()
Felix Handte [Wed, 4 Aug 2021 20:44:46 +0000 (16:44 -0400)]
Merge pull request #2742 from felixhandte/set-mtime
Set mtime on Output Files
senhuang42 [Thu, 3 Jun 2021 07:54:31 +0000 (10:54 +0300)]
Add 64 row entry support for lazy
senhuang42 [Thu, 3 Jun 2021 07:38:23 +0000 (10:38 +0300)]
Rebalance clevels for lazy
sen [Wed, 4 Aug 2021 20:07:56 +0000 (16:07 -0400)]
Merge pull request #2732 from senhuang42/huf_sort_improvement
[HUF] Improve Huffman sorting algorithm
W. Felix Handte [Wed, 4 Aug 2021 19:53:37 +0000 (15:53 -0400)]
Remove sleep()s in Test; Replace with Artificial mtime
This behavior of `touch` is standardized in POSIX, so it should be available.
W. Felix Handte [Wed, 4 Aug 2021 18:49:56 +0000 (14:49 -0400)]
Update mtime and atime for Written Files
W. Felix Handte [Wed, 4 Aug 2021 18:49:00 +0000 (14:49 -0400)]
Pull `utime()` Call into Helper
senhuang42 [Thu, 8 Jul 2021 19:48:57 +0000 (15:48 -0400)]
Improve Huffman sorting algorithm
W. Felix Handte [Tue, 3 Aug 2021 21:20:12 +0000 (17:20 -0400)]
Add Test to Verify mtime is Copied to Destination
Nick Terrell [Tue, 3 Aug 2021 16:59:54 +0000 (12:59 -0400)]
Merge pull request #2733 from terrelln/huf-cspeed
[HUF] Improve Huffman encoding speed
Nick Terrell [Tue, 3 Aug 2021 04:02:31 +0000 (21:02 -0700)]
[fuzz] Add Huffman round trip fuzzer
* Add a Huffman round trip fuzzer
* Fix two minor bugs in Huffman that aren't exposed in zstd
- Incorrect weight comparison (weights are allowed to be equal to
table log).
- HUF_compress1X_usingCTable_internal() can return compressed
size >= source size, so the assert that `cSize <= 65535` isn't
correct, and it needs to be checked instead.
sen [Mon, 2 Aug 2021 13:55:49 +0000 (09:55 -0400)]
Merge pull request #2677 from senhuang42/ci_overhaul_2
[CI][2/2] Migrate CI tests which (currently) fail
Sen Huang [Thu, 29 Jul 2021 16:05:51 +0000 (09:05 -0700)]
Fix static analyzer warnings
Sen Huang [Thu, 29 Jul 2021 15:49:36 +0000 (08:49 -0700)]
Add VS2019 test, migrate minimal decompressor macros to GHActions
Nick Terrell [Wed, 28 Jul 2021 21:53:01 +0000 (14:53 -0700)]
Merge pull request #2724 from jonringer/fix-pzstd-static-build
pzstd: fix linking for static builds
Nick Terrell [Wed, 28 Jul 2021 21:52:15 +0000 (14:52 -0700)]
Merge pull request #2707 from koalabearguo/dev
Z_PREFIX zError function
Felix Handte [Wed, 28 Jul 2021 17:12:50 +0000 (13:12 -0400)]
Merge pull request #2729 from felixhandte/fix-ddss-load
Fix DDSS Load
Nick Terrell [Mon, 12 Jul 2021 18:57:01 +0000 (11:57 -0700)]
[HUF] Improve Huffman encoding speed
Improve Huffman encoding speed by 20% for gcc and 10% for clang.
| Compiler | Benchmark | Config | Dataset | Ratio | Speed MB/s (dev) | Speed MB/s (huf-cspeed) | Speed MB/s (huf-cspeed - dev) |
|----------|-------------------|---------|-------------|-------|------------------|-------------------------|-------------------------------|
| gcc | compress | level_1 | enwik7 | 2.43 | 253.70 | 258.72 | 2.0% |
| gcc | compress | level_1 | silesia | 2.88 | 341.90 | 348.15 | 1.8% |
| gcc | compress_literals | level_1 | enwik7 | 1.49 | 761.83 | 912.76 | 19.8% |
| gcc | compress_literals | level_1 | silesia | 1.28 | 754.83 | 902.37 | 19.5% |
| gcc | compress_literals | level_7 | enwik7 | 1.29 | 502.81 | 552.79 | 9.9% |
| gcc | compress_literals | level_7 | silesia | 1.11 | 675.97 | 776.44 | 14.9% |
| clang | compress | level_1 | enwik7 | 2.43 | 277.54 | 280.98 | 1.2% |
| clang | compress | level_1 | silesia | 2.88 | 369.98 | 375.46 | 1.5% |
| clang | compress_literals | level_1 | enwik7 | 1.49 | 828.83 | 918.41 | 10.8% |
| clang | compress_literals | level_1 | silesia | 1.28 | 815.81 | 905.41 | 11.0% |
| clang | compress_literals | level_7 | enwik7 | 1.29 | 533.13 | 553.30 | 3.8% |
| clang | compress_literals | level_7 | silesia | 1.11 | 714.52 | 775.38 | 8.5% |
W. Felix Handte [Thu, 22 Jul 2021 16:37:35 +0000 (12:37 -0400)]
Fix DDSS Load
This PR fixes an incorrect comparison in figuring out `minChain` in
`ZSTD_dedicatedDictSearch_lazy_loadDictionary()`. This incorrect comparison
had been masked by the fact that `idx` was always 1, until @terrelln changed
that in #2726.
Credit-to: OSS-Fuzz
Nick Terrell [Wed, 21 Jul 2021 20:46:21 +0000 (13:46 -0700)]
Merge pull request #2726 from terrelln/oss-fuzz-fix
[bug-fix] Fix a determinism bug with the DUBT
Nick Terrell [Thu, 15 Jul 2021 19:14:44 +0000 (12:14 -0700)]
[bug-fix] Fix a determinism bug with the DUBT
The DUBT can be non-deterministic if an index is equal to
`ZSTD_DUBT_UNSORTED_MARK`. Ensure that never happens by starting the
indices at 2.
This bug was found by the OSS-Fuzz determinism fuzzer. With this change
the fuzzer test passes. And I've confirmed that this is the root cause,
not just hiding the problem.
Aside: This took me a long time to figure out, because I thought I had
tried this first thing. But, apparantly I messed it up, because when I
was going through it again with @felixhandte, I was pointing out that it
wasn't the case, but it turns out it was.
Credit to: OSS-Fuzz
Yann Collet [Wed, 14 Jul 2021 22:09:12 +0000 (00:09 +0200)]
Merge pull request #2725 from makise-homura/mcst-lcc-support
Add support for MCST LCC compiler
makise-homura [Wed, 14 Jul 2021 17:00:44 +0000 (20:00 +0300)]
Clarify no-tree-vectorize usage for ICC and LCC
makise-homura [Wed, 14 Jul 2021 16:55:47 +0000 (19:55 +0300)]
Change zstdcli's main() declaration due to -Wmain on some compilers
makise-homura [Sat, 10 Jul 2021 00:57:06 +0000 (03:57 +0300)]
Add support for MCST LCC compiler
Jonathan Ringer [Fri, 9 Jul 2021 20:21:15 +0000 (13:21 -0700)]
pzstd: fix linking for static builds
binhdvo [Thu, 1 Jul 2021 14:39:58 +0000 (10:39 -0400)]
Merge pull request #2717 from binhdvo/bootcamp
Proactively skip huffman compression based on sampling where non-comp…
sen [Wed, 30 Jun 2021 18:37:21 +0000 (14:37 -0400)]
Merge pull request #2720 from senhuang42/remove_folder
Remove folder when done with test
senhuang42 [Wed, 30 Jun 2021 17:09:00 +0000 (13:09 -0400)]
Remove folder when done with test
Binh Vo [Mon, 28 Jun 2021 14:06:20 +0000 (10:06 -0400)]
Proactively skip huffman compression based on sampling where non-compressibility is suspected
Nick Terrell [Wed, 30 Jun 2021 01:33:40 +0000 (18:33 -0700)]
Merge pull request #2655 from heitbaum/patch-1
[trace] remove zstd_trace.c reference from freestanding
Nick Terrell [Tue, 29 Jun 2021 23:53:10 +0000 (16:53 -0700)]
Merge pull request #2719 from danlark1/danlark_iwyu
Include what you use in zstd_ldm_geartab
Nick Terrell [Tue, 29 Jun 2021 18:34:36 +0000 (11:34 -0700)]
Merge pull request #2689 from danlark1/dev
Optimize zstd decompression by another x%
Danila Kutenin [Tue, 29 Jun 2021 16:57:53 +0000 (17:57 +0100)]
Include what you use in zstd_ldm_geartab
Danila Kutenin [Tue, 29 Jun 2021 08:06:47 +0000 (09:06 +0100)]
Add possible improvements for gcc-11
Yann Collet [Thu, 24 Jun 2021 17:57:18 +0000 (10:57 -0700)]
Merge pull request #2716 from facebook/fix2701
remove invalid test
sen [Thu, 24 Jun 2021 17:02:11 +0000 (13:02 -0400)]
Merge pull request #2715 from senhuang42/sequence_api_3
[RFC] Add internal API for converting ZSTD_Sequence into seqStore
Yann Collet [Thu, 24 Jun 2021 16:07:55 +0000 (09:07 -0700)]
remove invalid test
`--mt` is no longer supported by `zstreamtest`
(relevant API entry point has been removed from `libzstd`).
fix #2701
senhuang42 [Wed, 23 Jun 2021 15:21:14 +0000 (11:21 -0400)]
Add simple API for converting ZSTD_Sequence into seqStore
Felix Handte [Fri, 18 Jun 2021 20:16:44 +0000 (16:16 -0400)]
Merge pull request #2714 from luisdallos/build-macros-typos
lib/Makefile: Fix small typo in ZSTD_FORCE_DECOMPRESS_* build macros
Usuario [Fri, 18 Jun 2021 14:07:39 +0000 (10:07 -0400)]
lib/Makefile: Fix small typo in ZSTD_FORCE_DECOMPRESS_* build macros
binhdvo [Thu, 17 Jun 2021 13:06:18 +0000 (09:06 -0400)]
Merge pull request #2710 from binhdvo/bootcamp
Add option to use logical cores for default threads
Binh Vo [Wed, 16 Jun 2021 13:38:43 +0000 (09:38 -0400)]
Add option to use logical cores for default threads
binhdvo [Mon, 14 Jun 2021 23:00:31 +0000 (19:00 -0400)]
Merge pull request #2708 from binhdvo/skippable
Add API for fetching skippable frame content
Binh Vo [Fri, 11 Jun 2021 16:11:58 +0000 (12:11 -0400)]
Add API for fetching skippable frame content
Nick Terrell [Mon, 14 Jun 2021 19:33:50 +0000 (12:33 -0700)]
Merge pull request #2709 from terrelln/bounds-check-fix
[fix] Add missing bounds checks during compression
Nick Terrell [Mon, 14 Jun 2021 18:25:55 +0000 (11:25 -0700)]
[fix] Add missing bounds checks during compression
* The block splitter missed a bounds check, so when the buffer is too small it
passes an erroneously large size to `ZSTD_entropyCompressSeqStore()`, which
can then write the compressed data past the end of the buffer. This is a new
regression in v1.5.0 when the block splitter is enabled. It is either enabled
explicitly, or implicitly when using the optimal parser and `ZSTD_compress2()`
or `ZSTD_compressStream*()`.
* `HUF_writeCTable_wksp()` omits a bounds check when calling
`HUF_compressWeights()`. If it is called with `dstCapacity == 0` it will pass
an erroneously large size to `HUF_compressWeights()`, which can then write
past the end of the buffer. This bug has been present for ages. However, I
believe that zstd cannot trigger the bug, because it never calls
`HUF_compress*()` with `dstCapacity == 0` because of [this check][1].
Credit to: Oss-Fuzz
[1]: https://github.com/facebook/zstd/blob/
89127e5ee2f3c1e141668fa6d4ee91245f05d132 /lib/compress/zstd_compress_literals.c#L100
binhdvo [Fri, 11 Jun 2021 18:08:23 +0000 (14:08 -0400)]
Merge pull request #2705 from binhdvo/bootcamp
Add support for negative values in advanced flags
Binh Vo [Wed, 9 Jun 2021 20:49:36 +0000 (16:49 -0400)]
Add support for negative levels in --adapt=min and --adapt=max"
koala [Fri, 11 Jun 2021 11:29:27 +0000 (19:29 +0800)]
Z_PREFIX zError function
When a project use zError function,linker can not find z_zError function
Felix Handte [Thu, 10 Jun 2021 20:53:43 +0000 (16:53 -0400)]
Merge pull request #2702 from felixhandte/human_size_output
Format File Sizes Human-Readable in the CLI
W. Felix Handte [Thu, 10 Jun 2021 17:28:38 +0000 (13:28 -0400)]
Whitespace Fixes to Improve Cross-Line Alignment
W. Felix Handte [Thu, 10 Jun 2021 17:14:18 +0000 (13:14 -0400)]
Update Tests to Reflect New Formatting
W. Felix Handte [Thu, 10 Jun 2021 16:31:42 +0000 (12:31 -0400)]
Convert Other Size Displays to Use Human-Readable Formatting
W. Felix Handte [Thu, 10 Jun 2021 16:06:51 +0000 (12:06 -0400)]
Switch to Binary Size Prefixes (e.g., "MB" -> "MiB")
Suggested by @aqrit, a little more verbose, but hopefully addresses a real
ambiguity.
W. Felix Handte [Wed, 9 Jun 2021 20:13:00 +0000 (16:13 -0400)]
Require `-vv` to Enable Full Precision
W. Felix Handte [Wed, 9 Jun 2021 20:04:10 +0000 (16:04 -0400)]
Apply to Other Print Statement as Well
W. Felix Handte [Wed, 9 Jun 2021 19:28:12 +0000 (15:28 -0400)]
Fix Whitespace
W. Felix Handte [Wed, 9 Jun 2021 19:26:16 +0000 (15:26 -0400)]
Change Suffix (e.g., "G" -> " GB")
W. Felix Handte [Wed, 9 Jun 2021 19:22:59 +0000 (15:22 -0400)]
In Verbose Mode, Preserve Full Precision Where Possible
W. Felix Handte [Wed, 9 Jun 2021 17:27:57 +0000 (13:27 -0400)]
Fix Integer Constants; Fix Comparison
W. Felix Handte [Wed, 9 Jun 2021 17:05:44 +0000 (13:05 -0400)]
Avoid `snprintf()` in Preparing Human-Readable Sizes; Improve Formatting
This produces the following formatting:
Size | `zstd` | `ls -lh`
---------- | ------ | --------
1 | 1 | 1
12 | 12 | 12
123 | 123 | 123
1234 | 1.21K | 1.3K
12345 | 12.1K | 13K
123456 | 121K | 121K
1234567 | 1.18M | 1.2M
12345678 | 11.8M | 12M
123456789 | 118M | 118M
1234567890 | 1.15G | 1.2G
999 | 999 | 999
1000 | 1000 | 1000
1001 | 1001 | 1001
1023 | 1023 | 1023
1024 | 1.000K | 1.0K
1025 | 1.00K | 1.1K
999999 | 977K | 977K
1000000 | 977K | 977K
1000001 | 977K | 977K
1023999 | 1000K | 1000K
1024000 | 1000K | 1000K
1024001 | 1000K | 1001K
1048575 | 1024K | 1.0M
1048576 | 1.000M | 1.0M
1048577 | 1.00M | 1.1M
This was produced with the following invocation:
```
for N in 1 12 123 1234 12345 123456
1234567 12345678 123456789 1234567890 999 1000 1001 1023 1024 1025 999999
1000000 1000001 1023999 1024000 1024001 1048575 1048576 1048577 ; do
head -c $N /dev/urandom > r$N
done
./zstd -i1 -b1 -S r1 r12 r123 r1234 r12345 r123456 r1234567 r12345678 r123456789 r1234567890 r999 r1000 r1001 r1023 r1024 r1025 r999999 r1000000 r1000001 r1023999 r1024000 r1024001 r1048575 r1048576 r1048577
```
Scott Baker [Mon, 7 Jun 2021 20:53:55 +0000 (13:53 -0700)]
Attempt to fix a failing test with help from @aqrit
Scott Baker [Mon, 7 Jun 2021 16:31:38 +0000 (09:31 -0700)]
Some fixes to address things @felixhandte found
Scott Baker [Sat, 5 Jun 2021 18:12:09 +0000 (11:12 -0700)]
Try enabling the BIG strings now the unsigned long long is in effect
Scott Baker [Sat, 5 Jun 2021 18:11:09 +0000 (11:11 -0700)]
Try unsigned long long
Scott Baker [Sat, 5 Jun 2021 17:30:21 +0000 (10:30 -0700)]
Update humanSize() to skip the big numbers (it requires 64 bit)
Scott Baker [Sat, 5 Jun 2021 17:06:40 +0000 (10:06 -0700)]
Use unsigned long instead to help with some tests
Scott Baker [Sat, 5 Jun 2021 15:45:35 +0000 (08:45 -0700)]
human_size() should use size_t
Scott Baker [Sat, 5 Jun 2021 14:41:26 +0000 (07:41 -0700)]
Convert tabs to spaces
Scott Baker [Sat, 5 Jun 2021 05:21:00 +0000 (22:21 -0700)]
Use human_size() on the "multiple files compressed" output also
Scott Baker [Sat, 5 Jun 2021 05:09:40 +0000 (22:09 -0700)]
Use human_size() in the benchmark output also
Scott Baker [Sat, 5 Jun 2021 05:03:33 +0000 (22:03 -0700)]
Move the variable declarations to the top
Scott Baker [Sat, 5 Jun 2021 05:02:32 +0000 (22:02 -0700)]
Make the variable types match
Scott Baker [Sat, 5 Jun 2021 04:44:40 +0000 (21:44 -0700)]
Convert names to CamelCase
Scott Baker [Sat, 5 Jun 2021 03:28:55 +0000 (20:28 -0700)]
Put the human_size() function in util.c
Scott Baker [Sat, 5 Jun 2021 03:25:31 +0000 (20:25 -0700)]
Make the CLI output the file sizes in human readable format
sen [Thu, 10 Jun 2021 13:39:17 +0000 (16:39 +0300)]
Merge pull request #2697 from senhuang42/entropy_repeat_fix
[bug] Fix entropy repeat mode bug
Yann Collet [Wed, 9 Jun 2021 20:03:28 +0000 (13:03 -0700)]
Merge pull request #2704 from facebook/revert-2703-bootcamp
Revert "Add support for --long-param flag, fix #2104"
binhdvo [Wed, 9 Jun 2021 19:35:43 +0000 (15:35 -0400)]
Revert "Add support for --long-param flag, fix #2104"
binhdvo [Wed, 9 Jun 2021 19:03:38 +0000 (15:03 -0400)]
Merge pull request #2703 from binhdvo/bootcamp
Add support for --long-param flag, fix #2104
Binh Vo [Wed, 9 Jun 2021 18:00:29 +0000 (14:00 -0400)]
Add support for --long-param flag
Yann Collet [Wed, 9 Jun 2021 16:56:01 +0000 (09:56 -0700)]
Merge pull request #2698 from binhdvo/bootcamp
Fix --progress flag to properly control progress display and default …
sen [Wed, 9 Jun 2021 15:46:52 +0000 (18:46 +0300)]
Merge pull request #2678 from senhuang42/big_endian_no_intrinsics_fuzztest
Fuzzer test with no intrinsics on S390x (big endian)
sen [Wed, 9 Jun 2021 07:41:35 +0000 (10:41 +0300)]
Merge pull request #2700 from gauthamkrishna9991/update_readme_travis_link
Update README for Travis CI Badge
Goutham Krishna [Wed, 9 Jun 2021 07:08:22 +0000 (12:38 +0530)]
Update README for Travis CI Badge
### Updating Badge link to the newTravis CI link.
- Update badge root to `api.travis-ci.com` (new)
from `travis-ci.org` (old), which was migrated.
aqrit [Wed, 9 Jun 2021 05:50:25 +0000 (01:50 -0400)]
Flatten ZSTD_row_getMatchMask (#2681)
* Flatten ZSTD_row_getMatchMask
* Remove the SIMD abstraction layer.
* Add big endian support.
* Align `hashTags` within `tagRow` to a 16-byte boundary.
* Switch SSE2 to use aligned reads.
* Optimize scalar path using SWAR.
* Optimize neon path for `n == 32`
* Work around minor clang issue for NEON (https://bugs.llvm.org/show_bug.cgi?id=49577)
* replace memcpy with MEM_readST
* silence alignment warnings
* fix neon casts
* Update zstd_lazy.c
* unify simd preprocessor detection (#3)
* remove duplicate asserts
* tweak rotates
* improve endian detection
* add cast
there is a fun little catch-22 with gcc: result from pmovmskb has to be cast to uint32_t to avoid a zero-extension
but must be uint16_t to get gcc to generate a rotate instruction..
* more casts
* fix casts
better work-around for the (bogus) warning: unary minus on unsigned
Binh Vo [Mon, 7 Jun 2021 15:50:22 +0000 (11:50 -0400)]
Fix --progress flag to properly control progress display and default progress display on when using -v
Danila Kutenin [Tue, 8 Jun 2021 19:54:21 +0000 (20:54 +0100)]
Add comment for gcc-11
Danila Kutenin [Tue, 8 Jun 2021 19:45:57 +0000 (20:45 +0100)]
Be C89 compliant and fix alignment for gcc11
Felix Handte [Mon, 7 Jun 2021 17:04:19 +0000 (13:04 -0400)]
Merge pull request #2654 from wolfpld/dev
Initialize "potentially uninitialized" pointers.
sen [Mon, 7 Jun 2021 09:44:31 +0000 (12:44 +0300)]
Merge pull request #2691 from senhuang42/per_pr_regressiontest
Make regression test run on every PR
Sen Huang [Mon, 7 Jun 2021 07:44:23 +0000 (00:44 -0700)]
Add no intrinsics fuzztest, rowhash compression size test, and S390X to travis
senhuang42 [Tue, 1 Jun 2021 02:59:01 +0000 (05:59 +0300)]
Make regression test run on every PR
Sen Huang [Mon, 7 Jun 2021 07:32:03 +0000 (00:32 -0700)]
Fix entropy repeat mode bug