]> git.ipfire.org Git - thirdparty/zstd.git/log
thirdparty/zstd.git
3 years ago[lib] Make lib compatible with `-Wfall-through` excepting legacy 2796/head
Nick Terrell [Thu, 23 Sep 2021 02:56:07 +0000 (19:56 -0700)] 
[lib] Make lib compatible with `-Wfall-through` excepting legacy

Switch to a macro `ZSTD_FALLTHROUGH;` instead of a comment. On supported
compilers this uses an attribute, otherwise it becomes a comment.

This is necessary to be compatible with clang's `-Wfall-through`, and
gcc's `-Wfall-through=2` which don't support comments. Without this the
linux build emits a bunch of warnings.

Also add a test to CI to ensure that we don't regress.

3 years agoMerge pull request #2795 from terrelln/linux-fixes
Nick Terrell [Thu, 23 Sep 2021 02:56:53 +0000 (19:56 -0700)] 
Merge pull request #2795 from terrelln/linux-fixes

[contrib][linux] Reduce stack usage by 80 bytes

3 years ago[contrib][linux] Reduce stack usage by 80 bytes 2795/head
Nick Terrell [Thu, 23 Sep 2021 01:13:02 +0000 (18:13 -0700)] 
[contrib][linux] Reduce stack usage by 80 bytes

Instead of calling `ZSTD_compress_advanced()` and
`ZSTD_initCStream_advanced()`, which each take a `ZSTD_parameters` by
value, use the new advanced API.

Stack usage went from 2024 -> 1944.

3 years agoMerge pull request #2794 from terrelln/spdx-license
Nick Terrell [Thu, 23 Sep 2021 00:33:31 +0000 (17:33 -0700)] 
Merge pull request #2794 from terrelln/spdx-license

[contrib][linux] Fix up SPDX license identifiers

3 years agoMerge pull request #2793 from facebook/rdoc
Yann Collet [Thu, 23 Sep 2021 00:07:49 +0000 (17:07 -0700)] 
Merge pull request #2793 from facebook/rdoc

Minor documentation update

3 years ago[contrib][linux] Fix up SPDX license identifiers 2794/head
Nick Terrell [Wed, 22 Sep 2021 22:06:08 +0000 (15:06 -0700)] 
[contrib][linux] Fix up SPDX license identifiers

Correctly identify that we are GPL v2+ or BSD 3 clause, as pointed out
in issue #2663.

3 years agoregenerated zstdless.1 2793/head
Yann Collet [Wed, 22 Sep 2021 21:48:51 +0000 (14:48 -0700)] 
regenerated zstdless.1

3 years agoupdated zstdgrep man page
Yann Collet [Wed, 22 Sep 2021 21:30:59 +0000 (14:30 -0700)] 
updated zstdgrep man page

3 years agoupdate zstdgrep doc
Yann Collet [Wed, 22 Sep 2021 21:30:06 +0000 (14:30 -0700)] 
update zstdgrep doc

to mention ripgrep alternative which transparently supports zstd-compressed files.

3 years agoupdated man pages
Yann Collet [Wed, 22 Sep 2021 21:18:24 +0000 (14:18 -0700)] 
updated man pages

using ronn-ng

3 years agoemphasize usage of -r in documentation
Yann Collet [Wed, 22 Sep 2021 21:00:20 +0000 (14:00 -0700)] 
emphasize usage of -r in documentation

notably as a way to overcome shell expansion limitations,
notably in a scenario of dictionary training.

3 years agoMerge pull request #2779 from senhuang42/fse_fix
sen [Wed, 22 Sep 2021 17:51:21 +0000 (13:51 -0400)] 
Merge pull request #2779 from senhuang42/fse_fix

Fix NCountWriteBound

3 years agoMerge pull request #2788 from senhuang42/param_switch
sen [Wed, 22 Sep 2021 17:27:55 +0000 (13:27 -0400)] 
Merge pull request #2788 from senhuang42/param_switch

Use new paramSwitch enum for row matchfinder and block splitter

3 years agoMerge pull request #2791 from terrelln/huf-asm-fixes
Nick Terrell [Wed, 22 Sep 2021 16:59:02 +0000 (09:59 -0700)] 
Merge pull request #2791 from terrelln/huf-asm-fixes

[huf] Fix compilation when DYNAMIC_BMI2=0 && BMI2 is supported

3 years agoAdd test case for FSE over-write 2779/head
senhuang42 [Wed, 22 Sep 2021 15:27:56 +0000 (11:27 -0400)] 
Add test case for FSE over-write

3 years ago[huf] Fix compilation when DYNAMIC_BMI2=0 && BMI2 is supported 2791/head
Nick Terrell [Tue, 21 Sep 2021 23:36:33 +0000 (16:36 -0700)] 
[huf] Fix compilation when DYNAMIC_BMI2=0 && BMI2 is supported

* Fix compilation issues pointed out in PR #2790.
* Add test cases to GitHub actions that test all combinations of
  `DYNAMIC_BMI2` BMI2 support.

3 years agoUse new paramSwitch enum for LDM 2788/head
senhuang42 [Tue, 21 Sep 2021 15:56:02 +0000 (11:56 -0400)] 
Use new paramSwitch enum for LDM

3 years agoUse new paramSwitch enum for LCM, row matchfinder, and block splitter
senhuang42 [Mon, 20 Sep 2021 13:04:07 +0000 (09:04 -0400)] 
Use new paramSwitch enum for LCM, row matchfinder, and block splitter

3 years agoMerge pull request #2722 from terrelln/huf-asm
Nick Terrell [Tue, 21 Sep 2021 00:32:30 +0000 (17:32 -0700)] 
Merge pull request #2722 from terrelln/huf-asm

Assembly implementation of 4X1 & 4X2 Huffman

3 years agoHuffman ASM 2722/head
Nick Terrell [Fri, 17 Sep 2021 18:43:04 +0000 (11:43 -0700)] 
Huffman ASM

3 years agoMerge pull request #2784 from terrelln/huf-asm-fuzzer
Nick Terrell [Mon, 20 Sep 2021 18:57:27 +0000 (11:57 -0700)] 
Merge pull request #2784 from terrelln/huf-asm-fuzzer

[fuzzer] Add Huffman decompression fuzzer

3 years agoMerge pull request #2787 from animalize/msvc2019
Yann Collet [Mon, 20 Sep 2021 18:14:51 +0000 (11:14 -0700)] 
Merge pull request #2787 from animalize/msvc2019

add msvc2019 to build.generic.cmd

3 years agoadd msvc2019 to build.generic.cmd 2787/head
Ma Lin [Sun, 19 Sep 2021 01:57:06 +0000 (09:57 +0800)] 
add msvc2019 to build.generic.cmd

3 years ago[fuzzer] Add huf_decompress fuzzer 2784/head
Nick Terrell [Fri, 17 Sep 2021 19:58:04 +0000 (12:58 -0700)] 
[fuzzer] Add huf_decompress fuzzer

Add a fuzzer for Huffman decompression. Fix several bugs in Huffman
decompression, mostly related to `op == NULL` and pointer underflow.

3 years agoMerge pull request #2783 from terrelln/huf-asm-makefiles
Nick Terrell [Fri, 17 Sep 2021 21:56:47 +0000 (14:56 -0700)] 
Merge pull request #2783 from terrelln/huf-asm-makefiles

[build] Add support for ASM files in Make + CMake

3 years ago[build] Add support for ASM files in Make + CMake 2783/head
Nick Terrell [Fri, 17 Sep 2021 18:42:08 +0000 (11:42 -0700)] 
[build] Add support for ASM files in Make + CMake

* Extract out common portion of `lib/Makefile` into `lib/libzstd.mk`.
  Most relevantly, the way we find library files.
* Use `lib/libzstd.mk` in the other Makefiles instead of repeating the
  same code.
* Add a test `tests/test-variants.sh` that checks that the builds of
  `make -C programs allVariants` are correct, and run it in Actions.
* Adds support for ASM files in the CMake build.

The Meson build is not updated because it lists every file in zstd,
and supports ASM off the bat, so the Huffman ASM commit will just add
the ASM file to the list.

The Visual Studios build is not updated because I'm not adding ASM
support to Visual Studios yet.

3 years agoMerge pull request #2778 from senhuang42/opt_inlining_revert
sen [Wed, 15 Sep 2021 18:22:10 +0000 (14:22 -0400)] 
Merge pull request #2778 from senhuang42/opt_inlining_revert

Revert opt outlining change

3 years agoFix NCountWriteBound
Sen Huang [Wed, 15 Sep 2021 16:51:42 +0000 (09:51 -0700)] 
Fix NCountWriteBound

3 years agoRevert opt outlining change 2778/head
Sen Huang [Wed, 15 Sep 2021 16:08:41 +0000 (09:08 -0700)] 
Revert opt outlining change

3 years agoMerge pull request #2777 from terrelln/oss-fuzz-fix
Nick Terrell [Tue, 14 Sep 2021 20:20:22 +0000 (13:20 -0700)] 
Merge pull request #2777 from terrelln/oss-fuzz-fix

[rsyncable] Fix test failures

3 years ago[rsyncable] Fix test failures 2777/head
Nick Terrell [Tue, 14 Sep 2021 18:57:26 +0000 (11:57 -0700)] 
[rsyncable] Fix test failures

Test failures showed up on the daily cron job. They didn't show up
in CI because the condition is somewhat rare, and didn't trigger
during the CI tests.

This PR fixes up the logic in `findSynchronizationPoint()` to correctly
handle the edge case. It also un-comments an assert that helps catch the
issue, and verify that rsyncable mode is calculating the correct hash.

After the fix, the test that failed passes:

```
./zstreamtest --newapi -t1 --no-big-tests -s9680
```

3 years agoMerge pull request #2771 from facebook/opt_investigation
Yann Collet [Tue, 14 Sep 2021 17:36:34 +0000 (10:36 -0700)] 
Merge pull request #2771 from facebook/opt_investigation

Improve optimal parser performance on small data

3 years agoMerge pull request #2776 from terrelln/oss-fuzz-fix
Nick Terrell [Tue, 14 Sep 2021 16:37:43 +0000 (09:37 -0700)] 
Merge pull request #2776 from terrelln/oss-fuzz-fix

[rsyncable] Ensure ZSTD_compressBound() is respected

3 years agoMerge branch 'dev' into opt_investigation 2771/head
Yann Collet [Tue, 14 Sep 2021 08:15:51 +0000 (01:15 -0700)] 
Merge branch 'dev' into opt_investigation

3 years agoMerge pull request #2773 from senhuang42/huffman_bugix
sen [Tue, 14 Sep 2021 01:02:42 +0000 (21:02 -0400)] 
Merge pull request #2773 from senhuang42/huffman_bugix

Fix dictionary training huffman segfault and small speed improvement

3 years ago[rsyncable] Ensure ZSTD_compressBound() is respected 2776/head
Nick Terrell [Mon, 13 Sep 2021 23:59:20 +0000 (16:59 -0700)] 
[rsyncable] Ensure ZSTD_compressBound() is respected

In degenerate cases `--rsyncable` could create very small blocks (1
byte). This causes the compressed output to be larger than
`ZSTD_compressBound()`. Fix the issue by ensuring that rsyncable mode
never outputs blocks smaller than 128 KB.

The minimum job size is 512 KB, so we shouldn't lose many
synchronization points from skipping any that cause blocks smaller than
128 KB. And even if we do, that is fine, because we'll find the next
one.

This fixes the `raw_dictionary_round_trip` oss-fuzz assert.

Credit to OSS-Fuzz

3 years agoUpdate regression test 2773/head
Sen Huang [Thu, 9 Sep 2021 16:02:21 +0000 (09:02 -0700)] 
Update regression test

3 years agoAdd a dictionary training large corpus test
Sen Huang [Thu, 9 Sep 2021 15:55:43 +0000 (08:55 -0700)] 
Add a dictionary training large corpus test

3 years agoUse 32 buckets for log2 bucketing in huffman sort
Sen Huang [Thu, 9 Sep 2021 15:28:12 +0000 (08:28 -0700)] 
Use 32 buckets for log2 bucketing in huffman sort

3 years agoupdated regression tests
Yann Collet [Sun, 12 Sep 2021 17:22:35 +0000 (10:22 -0700)] 
updated regression tests

3 years agoMerge branch 'dev' into opt_investigation
Yann Collet [Sun, 12 Sep 2021 08:42:49 +0000 (01:42 -0700)] 
Merge branch 'dev' into opt_investigation

3 years agofix automated_benchmarking
Yann Collet [Sun, 12 Sep 2021 08:36:18 +0000 (01:36 -0700)] 
fix automated_benchmarking

make it able to process text output sent into either stdout or stderr

3 years agoMerge pull request #2775 from eli-schwartz/meson
Yann Collet [Fri, 10 Sep 2021 12:47:52 +0000 (05:47 -0700)] 
Merge pull request #2775 from eli-schwartz/meson

meson: fix type error for integer option

3 years agomeson: fix type error for integer option 2775/head
Eli Schwartz [Mon, 6 Sep 2021 20:04:48 +0000 (16:04 -0400)] 
meson: fix type error for integer option

meson forgave using the wrong type, but this isn't guaranteed. muon
simply failed.

3 years agoMerge pull request #2749 from felixhandte/zstd-fast-pipelined
Felix Handte [Thu, 9 Sep 2021 21:05:30 +0000 (17:05 -0400)] 
Merge pull request #2749 from felixhandte/zstd-fast-pipelined

Pipelined Implementation of ZSTD_fast (~+5% Speed)

3 years agomake automated-benchmarking faster
Yann Collet [Wed, 8 Sep 2021 22:12:28 +0000 (15:12 -0700)] 
make automated-benchmarking faster

by employing parallel compilation of object files.

3 years agouse ZSTD_memcpy() for better portability
Yann Collet [Wed, 8 Sep 2021 21:45:53 +0000 (14:45 -0700)] 
use ZSTD_memcpy() for better portability

notably within kernel space

3 years agoupdate regression tests
Yann Collet [Wed, 8 Sep 2021 21:37:42 +0000 (14:37 -0700)] 
update regression tests

3 years agochange update rate to 12/11/11/11
Yann Collet [Wed, 8 Sep 2021 21:05:57 +0000 (14:05 -0700)] 
change update rate to 12/11/11/11

better for large files, and sources with relatively "stable" entropy,
like silesia.tar.
slightly worse for files with rapidly changing entropy,
like Calgary.tar/.

Updated small files tests in fuzzer

3 years agochange update rate to 11/10/10/10
Yann Collet [Wed, 8 Sep 2021 15:58:28 +0000 (08:58 -0700)] 
change update rate to 11/10/10/10

better for larger blocks,
very small inefficiency on small block.

3 years agoremoved frequency booster for stat initialization of btultra2
Yann Collet [Wed, 8 Sep 2021 14:56:43 +0000 (07:56 -0700)] 
removed frequency booster for stat initialization of btultra2

used to be necessary to counter-balance the fixed-weight frequency update
which has been recently changed for an adaptive rate (targeting stable starting frequency stats).

3 years agoupdated regression tests
Yann Collet [Tue, 7 Sep 2021 16:55:14 +0000 (09:55 -0700)] 
updated regression tests

3 years agoMerge pull request #2769 from senhuang42/typo_fix
sen [Tue, 7 Sep 2021 15:09:55 +0000 (11:09 -0400)] 
Merge pull request #2769 from senhuang42/typo_fix

[easy] Fix patch-from help msg typo

3 years agoFix patch-from help msg typo 2769/head
senhuang42 [Tue, 7 Sep 2021 14:08:35 +0000 (10:08 -0400)] 
Fix patch-from help msg typo

3 years agonew statistics update policy
Yann Collet [Sat, 4 Sep 2021 07:52:44 +0000 (00:52 -0700)] 
new statistics update policy

small general compression ratio improvement for btopt+ strategies/

3 years agonew starting offcode table for zstd_opt
Yann Collet [Sat, 4 Sep 2021 00:41:42 +0000 (17:41 -0700)] 
new starting offcode table for zstd_opt

3 years agonew initializer for ll price
Yann Collet [Fri, 3 Sep 2021 23:07:31 +0000 (16:07 -0700)] 
new initializer for ll price

3 years agoDisable console notification by default within the library
Yann Collet [Fri, 3 Sep 2021 20:44:07 +0000 (13:44 -0700)] 
Disable console notification by default within the library

As a library, the default shouldn't be to write anything on console.
`cover` and `fastcover` have a `g_displayLevel` variable to control this behavior.
It's now set to 0 (no display) by default.
Setting notification to a higher level should be an explicit operation by a console application.

3 years agoremoved pretty-print of sizes in benchmark
Yann Collet [Fri, 3 Sep 2021 19:51:02 +0000 (12:51 -0700)] 
removed pretty-print of sizes in benchmark

This is less appropriate for this mode :
benchmark is about accuracy,
it's important to read the exact values.

3 years agoMerge pull request #2763 from senhuang42/opt_compiletime
sen [Thu, 2 Sep 2021 15:59:02 +0000 (11:59 -0400)] 
Merge pull request #2763 from senhuang42/opt_compiletime

Improve compile speed and binary size in `opt`

3 years agoMerge pull request #2762 from facebook/level13
Yann Collet [Thu, 2 Sep 2021 03:32:53 +0000 (20:32 -0700)] 
Merge pull request #2762 from facebook/level13

minor rebalancing of level 13

3 years agoMerge pull request #2761 from senhuang42/fse_wksp_fix
sen [Wed, 1 Sep 2021 21:09:45 +0000 (17:09 -0400)] 
Merge pull request #2761 from senhuang42/fse_wksp_fix

Add 8 bytes to FSE_buildCTable wksp

3 years agoRemove inlining for opt 2763/head
Sen Huang [Wed, 1 Sep 2021 20:48:11 +0000 (13:48 -0700)] 
Remove inlining for opt

3 years agoupdated regression tests 2762/head
Yann Collet [Wed, 1 Sep 2021 20:26:39 +0000 (13:26 -0700)] 
updated regression tests

3 years agominor rebalancing of level 13
Yann Collet [Wed, 1 Sep 2021 20:02:07 +0000 (13:02 -0700)] 
minor rebalancing of level 13

This new setup is slighly better on `silesia.tar` :
Ratio : 3.649 -> 3.655
Speed : 11.9 MB/s -> 12.2 MB/s
At the cost of more memory : 24 MB -> 32 MB
The new memory budget is a reasonable interpolation between neighboring levels 12 and 14:
level 12 : 24 MB
level 13 : 32 MB (increased from 24 MB)
level 14 : 48 MB
Window size remains unaffected (4 MB)

3 years agoAdd 8 bytes to FSE workspace 2761/head
senhuang42 [Wed, 1 Sep 2021 16:25:20 +0000 (12:25 -0400)] 
Add 8 bytes to FSE workspace

3 years agoUpdate results.csv 2749/head
W. Felix Handte [Wed, 1 Sep 2021 18:45:00 +0000 (14:45 -0400)] 
Update results.csv

3 years agoFix VS Build: Explicitly Cast to Narrow Ints
W. Felix Handte [Mon, 30 Aug 2021 16:27:49 +0000 (12:27 -0400)] 
Fix VS Build: Explicitly Cast to Narrow Ints

3 years agoChange Target Size in Fuzzer
W. Felix Handte [Thu, 26 Aug 2021 17:46:32 +0000 (13:46 -0400)] 
Change Target Size in Fuzzer

It's a bit strange, because this is hitting the dictionary special case where
the dictionary is contiguous with the input and still runs in the single-
segment path.

We should probably change that to hit the `extDict` path instead?

3 years agoDeduplicate Implementations
W. Felix Handte [Thu, 26 Aug 2021 17:29:58 +0000 (13:29 -0400)] 
Deduplicate Implementations

This removes the old `ZSTD_compressBlock_fast_generic()` and renames the new
`ZSTD_compressBlock_fast_generic_pipelined()` to replace it. This is
functionally a no-op.

3 years agoTweak Step
W. Felix Handte [Fri, 20 Aug 2021 21:06:41 +0000 (17:06 -0400)] 
Tweak Step

3 years agoUnroll Loop Core; Reduce Frequency of Repcode Check & Step Calc (+>1% Speed)
W. Felix Handte [Fri, 20 Aug 2021 19:56:14 +0000 (15:56 -0400)] 
Unroll Loop Core; Reduce Frequency of Repcode Check & Step Calc (+>1% Speed)

Unrolling the loop to handle 2 positions in each iteration allows us to reduce
the frequency of some operations that don't need to happen at every position.
One such operation is the step calculation, which is a very rough heuristic
anyways. It's fine if we do this a position later. The other operation is the
repcode check. But since the repcode check already tries expanding back one
position, we're really not missing much of importance by only trying it every
other position.

This commit also slightly reorders some operations.

3 years agoAdd `ip1 + 128` Prefetch; Tiny Cleanup
W. Felix Handte [Thu, 19 Aug 2021 17:58:09 +0000 (13:58 -0400)] 
Add `ip1 + 128` Prefetch; Tiny Cleanup

3 years agoNit: Only Store 2 Hash Variables
W. Felix Handte [Wed, 18 Aug 2021 20:15:53 +0000 (16:15 -0400)] 
Nit: Only Store 2 Hash Variables

3 years agoNit: Dedup idx0 and idx1
W. Felix Handte [Wed, 18 Aug 2021 20:11:22 +0000 (16:11 -0400)] 
Nit: Dedup idx0 and idx1

3 years agoGive Up on Searching End of Block
W. Felix Handte [Wed, 18 Aug 2021 20:02:01 +0000 (16:02 -0400)] 
Give Up on Searching End of Block

Amusingly, it seems to be a non-trivial performance hit to add in final
searches or even hash table insertions during cleanup. So let's not. It seems
to not make any meaningful difference in compression ratio.

3 years agoPrefetch Input in Incompressible Sections (+0.25% Speed)
W. Felix Handte [Wed, 18 Aug 2021 19:21:43 +0000 (15:21 -0400)] 
Prefetch Input in Incompressible Sections (+0.25% Speed)

3 years agoShrink Pipeline from 4 Positions to 3
W. Felix Handte [Wed, 18 Aug 2021 17:44:27 +0000 (13:44 -0400)] 
Shrink Pipeline from 4 Positions to 3

3 years agoRe-Order Operations for Slightly Better Performance
W. Felix Handte [Wed, 18 Aug 2021 16:47:48 +0000 (12:47 -0400)] 
Re-Order Operations for Slightly Better Performance

3 years agoTrack Step Size Statefully, Rather than Recalculating Every Time
W. Felix Handte [Wed, 18 Aug 2021 16:47:14 +0000 (12:47 -0400)] 
Track Step Size Statefully, Rather than Recalculating Every Time

3 years agoInitial Pipelined Implementation for ZSTD_fast
W. Felix Handte [Tue, 17 Aug 2021 16:42:39 +0000 (12:42 -0400)] 
Initial Pipelined Implementation for ZSTD_fast

3 years agoFix Benchmark Corruption Display
W. Felix Handte [Tue, 17 Aug 2021 15:31:15 +0000 (11:31 -0400)] 
Fix Benchmark Corruption Display

3 years agoMerge pull request #2758 from facebook/qemu
Yann Collet [Tue, 31 Aug 2021 16:56:50 +0000 (09:56 -0700)] 
Merge pull request #2758 from facebook/qemu

added qemu tests

3 years agoMerge branch 'dev' into qemu 2758/head
Yann Collet [Tue, 31 Aug 2021 15:16:46 +0000 (08:16 -0700)] 
Merge branch 'dev' into qemu

3 years agoMerge pull request #2757 from facebook/transferGA
Yann Collet [Tue, 31 Aug 2021 14:40:21 +0000 (07:40 -0700)] 
Merge pull request #2757 from facebook/transferGA

Reduce test time on TravisCI

3 years agoadd powerpc qemu emulation
Yann Collet [Mon, 30 Aug 2021 13:37:50 +0000 (06:37 -0700)] 
add powerpc qemu emulation

3 years agoattempt at adding m68k qemu tests
Yann Collet [Mon, 30 Aug 2021 04:39:06 +0000 (21:39 -0700)] 
attempt at adding m68k qemu tests

with optional success (for the time being)

3 years agoremove qemu tests 2757/head
Yann Collet [Mon, 30 Aug 2021 03:54:18 +0000 (20:54 -0700)] 
remove qemu tests

that are being transfered to GA in #2758.
This represents a saving of ~25mn of cpu time on TravisCI.

3 years agofix alignment condition in FSE_buildCTable
Yann Collet [Mon, 30 Aug 2021 02:05:04 +0000 (19:05 -0700)] 
fix alignment condition in FSE_buildCTable

2-bytes alignment is enough for 16-bit fields

3 years agofix playTests.sh when EXE_PREFIX not null
Yann Collet [Mon, 30 Aug 2021 00:20:12 +0000 (17:20 -0700)] 
fix playTests.sh when EXE_PREFIX not null

3 years agoadding optional QEMU_SYS
Yann Collet [Sun, 29 Aug 2021 23:43:32 +0000 (16:43 -0700)] 
adding optional QEMU_SYS

3 years agoadded qemu tests
Yann Collet [Sun, 29 Aug 2021 23:28:41 +0000 (16:28 -0700)] 
added qemu tests

running zstd library on emulated targets

3 years agoremove versions-compatibility test from GA
Yann Collet [Sun, 29 Aug 2021 22:47:04 +0000 (15:47 -0700)] 
remove versions-compatibility test from GA

since it fails on Github Actions specifically.

The test is run on TravisCI for the time being.
Its duration has been reduced to ~6mn anyway.

3 years agoreduce length of scanbuild static analyzer test
Yann Collet [Sun, 29 Aug 2021 22:26:31 +0000 (15:26 -0700)] 
reduce length of scanbuild static analyzer test

This was ~30mn, by far the longest run on travisCI.
That's because it re-analyzes multiple times the same files (library files notably).
It also performs actions that make no sense for the static analyzer purpose,
such as building the single-file library.

Reduced time spent in this test by reducing its scope :
just build the CLI, and obviously the library along it.
These are the only ones that really deserve to be analyzed.

Unfortunately, it still results in a number of false positives when using newer versions of scanbuild
(each version of scanbuild generates a different list of false positives).
These will have to be fixed before transfering to Github Actions.

3 years agoaccelerate versionsCompatibilityTest
Yann Collet [Sun, 29 Aug 2021 21:48:11 +0000 (14:48 -0700)] 
accelerate versionsCompatibilityTest

by allowing parallel build of units,
and reducing optimization levels.

Parallel build is only effective on "recent" versions of `zstd`,
as previously, the list of units was passed as a list of source files,
which is something neither `make` nor `gcc` can parallelize.
So its impact is mildly effective (-20%).

Reducing optimization level to `-O1` makes compilation much faster.
It also makes runtime slower,
but in this test, compilation time dominates run time.
The savings are very significant (-50%).

On my test system, it reduces the length of this test from 13mn to 5mn.

3 years agotransferred inter-versions compatibility tests to GA
Yann Collet [Sun, 29 Aug 2021 18:53:56 +0000 (11:53 -0700)] 
transferred inter-versions compatibility tests to GA

3 years agoMerge pull request #2753 from senhuang42/better_error_msg
sen [Tue, 24 Aug 2021 00:37:48 +0000 (20:37 -0400)] 
Merge pull request #2753 from senhuang42/better_error_msg

[easy] Fix zstd bench error message

3 years agoFix benchzstd error message 2753/head
senhuang42 [Mon, 23 Aug 2021 23:10:16 +0000 (19:10 -0400)] 
Fix benchzstd error message

3 years agoMerge pull request #2746 from eli-schwartz/meson-fixup
Yann Collet [Mon, 23 Aug 2021 22:57:47 +0000 (15:57 -0700)] 
Merge pull request #2746 from eli-schwartz/meson-fixup

meson fixups

3 years agoMerge pull request #2752 from facebook/hashLog3max
Yann Collet [Fri, 20 Aug 2021 19:51:17 +0000 (12:51 -0700)] 
Merge pull request #2752 from facebook/hashLog3max

make ZSTD_HASHLOG3_MAX private