]>
git.ipfire.org Git - thirdparty/zstd.git/log
Yann Collet [Mon, 20 Dec 2021 16:28:21 +0000 (08:28 -0800)]
Merge branch 'dev' into lazy_rebalance
Yann Collet [Mon, 20 Dec 2021 15:54:57 +0000 (07:54 -0800)]
update regression results
Yann Collet [Fri, 17 Dec 2021 05:01:10 +0000 (21:01 -0800)]
added target update_regressionResults
to automate the creation of updated tests/regression/results.csv
Yann Collet [Fri, 17 Dec 2021 04:43:23 +0000 (20:43 -0800)]
update regression results
Yann Collet [Fri, 17 Dec 2021 00:07:54 +0000 (16:07 -0800)]
update regression results
Yann Collet [Thu, 16 Dec 2021 22:46:21 +0000 (14:46 -0800)]
Merge branch 'dev' into lazy_rebalance
Yann Collet [Thu, 16 Dec 2021 22:39:30 +0000 (14:39 -0800)]
updated regression results.csv
Yann Collet [Thu, 16 Dec 2021 19:52:43 +0000 (11:52 -0800)]
fixed version number for fast modes
Yann Collet [Thu, 16 Dec 2021 19:37:40 +0000 (11:37 -0800)]
forgot the chainlog is effectively a "fake" value with rowHash
the only value which makes sense is `hashlog-1`
as it mimics the real memory usage.
Yann Collet [Thu, 16 Dec 2021 17:48:12 +0000 (09:48 -0800)]
Merge pull request #2931 from facebook/fix_rowlog
fixed incorrect rowlog initialization
Yann Collet [Thu, 16 Dec 2021 12:46:21 +0000 (04:46 -0800)]
updated benchmark for v1.5.1
answers #2764
Yann Collet [Thu, 16 Dec 2021 09:07:15 +0000 (01:07 -0800)]
minor changelog update
Yann Collet [Thu, 16 Dec 2021 05:45:30 +0000 (21:45 -0800)]
minor changelog update
Yann Collet [Thu, 16 Dec 2021 05:33:31 +0000 (21:33 -0800)]
rebalance lazy compression levels
Yann Collet [Wed, 15 Dec 2021 22:37:05 +0000 (14:37 -0800)]
fixed incorrect rowlog initialization
the variable has only very limited usage,
being only used once at the beginning of the block for prefetching only,
hence the error had no impact on compression ratio.
Elliot Gorokhovsky [Wed, 15 Dec 2021 20:58:17 +0000 (15:58 -0500)]
Merge pull request #2925 from embg/dict_training_sample_limit_size
Allow user to specify memory limit for dictionary training
Yann Collet [Wed, 15 Dec 2021 19:56:11 +0000 (11:56 -0800)]
minor changelog update, for clarity
Yann Collet [Wed, 15 Dec 2021 19:47:15 +0000 (11:47 -0800)]
Merge pull request #2929 from facebook/sse_row_lazy
simplify SSE implementation of row_lazy match finder
Felix Handte [Wed, 15 Dec 2021 17:43:25 +0000 (12:43 -0500)]
Merge pull request #2930 from nolange/reduce_tables_to_8bit
Reduce tables to 8bit
Norbert Lange [Tue, 14 Dec 2021 21:33:49 +0000 (22:33 +0100)]
Reduce bit tables to 8bit
This saves some 1.7Kb in rodata section (x86_64, zstd tool),
while assembler code stays the same except
the type of a few load/extend instructions.
Should not have negative performance implications.
Norbert Lange [Tue, 14 Dec 2021 21:33:39 +0000 (22:33 +0100)]
Add typedefs for 8bit (un)signed
To make code more expressive, add U8 and S8 typedefs
binhdvo [Tue, 14 Dec 2021 20:53:50 +0000 (15:53 -0500)]
Fix performance degradation with -m32 (#2926)
Elliot Gorokhovsky [Fri, 10 Dec 2021 21:19:40 +0000 (16:19 -0500)]
Allow user to specify memory limit for dictionary training
Felix Handte [Tue, 14 Dec 2021 19:13:57 +0000 (14:13 -0500)]
Merge pull request #2921 from felixhandte/neg-lvl-stagger-step
Stagger Stepping in Negative Levels
Yann Collet [Tue, 14 Dec 2021 10:12:09 +0000 (02:12 -0800)]
roll SSE implementation of row_lazy match finder
mostly for maintenance convenience.
Performance wise, there is very little change,
slightly faster for slog 3 & 4,
neutral or very slightly negative for slot 5 & 6.
W. Felix Handte [Mon, 13 Dec 2021 22:29:32 +0000 (17:29 -0500)]
Update Regression Tests w/ New Sizes
W. Felix Handte [Mon, 13 Dec 2021 20:46:41 +0000 (15:46 -0500)]
Increment Step by 1 not 2
I couldn't find a good way to spread `ip0` and `ip1` apart when we accelerate
due to incompressible inputs. (The methods I tried slowed things down quite a
bit.)
Since we aren't splaying ip0 and ip1 apart (which would be like `0_1_2_3_`, as
opposed to the `01__23__` we were actually doing), it's a big ambitious to
increment `step` by 2. Instead, let's increment it by 1, which has the benefit
sliiightly improving compression. Speed remains pretty much unchanged.
Nick Terrell [Mon, 13 Dec 2021 21:45:23 +0000 (13:45 -0800)]
Merge pull request #2905 from
15596858998 /dev_1205
add test case
W. Felix Handte [Mon, 13 Dec 2021 19:48:26 +0000 (14:48 -0500)]
Rewrite `step` to Track Increment Between Pairs of Positions
The position updates are rewritten from `ip[N] = ip[N-1] + step` to be
`ip[N] = ip[N-2] + step`. This lets us only deal with the asymmetric spacing
of gaps at setup and then we only have to keep a single `step` variable.
This seems to work quite well on GCC and Clang!
W. Felix Handte [Mon, 13 Dec 2021 19:46:57 +0000 (14:46 -0500)]
Allow Templating `ZSTD_fast` Matchfinders on Acceleration (Lvl < -1)
Felix Handte [Mon, 13 Dec 2021 18:15:21 +0000 (13:15 -0500)]
Merge pull request #2923 from IAL32/patch-1
typo: Small spelling mistake in example
zx123123 [Mon, 13 Dec 2021 00:58:42 +0000 (08:58 +0800)]
Update playTests.sh
Adrian Castro [Sat, 11 Dec 2021 11:02:23 +0000 (12:02 +0100)]
typo: Small spelling mistake in example
Just a couple of characters:
`main` -> `may`
Yann Collet [Sat, 11 Dec 2021 08:12:10 +0000 (00:12 -0800)]
Merge pull request #2922 from facebook/x32
x32 compatibility
Yann Collet [Sat, 11 Dec 2021 05:02:17 +0000 (21:02 -0800)]
fixed x32 compatibility
Yann Collet [Sat, 11 Dec 2021 04:56:20 +0000 (20:56 -0800)]
added x32 compatibility test
W. Felix Handte [Fri, 10 Dec 2021 20:52:30 +0000 (15:52 -0500)]
Decompose `step` into Two Variables
This avoids an additional addition, at the cost of an additional variable.
W. Felix Handte [Fri, 10 Dec 2021 20:44:39 +0000 (15:44 -0500)]
Stagger Application of `stepSize` in ZSTD_fast
This replicates the behavior of @terrelln's `ZSTD_fast` implementation. That
is, it always looks at adjacent pairs of positions, and only applies the
acceleration every other position. This produces a more fine-grained
acceleration.
Yann Collet [Thu, 9 Dec 2021 17:53:45 +0000 (09:53 -0800)]
complete changelog with #2885
Yann Collet [Thu, 9 Dec 2021 16:45:34 +0000 (08:45 -0800)]
Merge pull request #2917 from facebook/change151
Update changelog for v1.5.1
Felix Handte [Thu, 9 Dec 2021 16:44:37 +0000 (11:44 -0500)]
Merge pull request #2910 from felixhandte/reject-irregular-dicts
Reject Irregular Dictionary Files
Yann Collet [Thu, 9 Dec 2021 00:55:38 +0000 (16:55 -0800)]
Update changelog for v1.5.1
Yann Collet [Thu, 9 Dec 2021 00:48:46 +0000 (16:48 -0800)]
Merge pull request #2914 from facebook/xxhash081
updated xxHash to latest v0.8.1
Yann Collet [Wed, 8 Dec 2021 23:05:17 +0000 (15:05 -0800)]
remove offending static assert lines
no idea why visual + clang-cl + appveyor don't like them,
I've not been able to reproduce the issue locally,
but these static assert are very unlikely to deliver a useful signal,
I can't imagine a situation where they will be wrong,
and if they are, then a ton of other things will be broken way before reaching that point.
Nick Terrell [Wed, 8 Dec 2021 21:51:10 +0000 (16:51 -0500)]
Merge pull request #2916 from terrelln/issue-2906
Remove possible NULL pointer addition
Yann Collet [Wed, 8 Dec 2021 21:15:45 +0000 (13:15 -0800)]
altered copyright title
W. Felix Handte [Mon, 6 Dec 2021 18:47:18 +0000 (13:47 -0500)]
Reject Irregular Dictionary Files
I hadn't seen #2890, so I wrote my own version. I like this approach a little
better, since it does an explicit check for a regular file, rather than
passing a magic value.
Addresses #2874.
Yann Collet [Wed, 8 Dec 2021 20:56:16 +0000 (12:56 -0800)]
removed declarations of XXH3 symbols when XXH_NO_XXH3 is defined
on top of implementations, which were already scoped out.
Yann Collet [Wed, 8 Dec 2021 20:51:04 +0000 (12:51 -0800)]
replaces malloc / free / memcpy by Zstandard's version
Nick Terrell [Wed, 8 Dec 2021 18:57:30 +0000 (10:57 -0800)]
Remove possible NULL pointer addition
Refactor `ZSTDMT_isOverlapped()` to do NULL checks before computing the
end pointer.
Fixes #2906.
Nick Terrell [Wed, 8 Dec 2021 20:32:49 +0000 (15:32 -0500)]
Merge pull request #2915 from terrelln/oss-fuzz-build-fix
Fix oss-fuzz build
Felix Handte [Wed, 8 Dec 2021 20:22:56 +0000 (15:22 -0500)]
Merge pull request #2912 from felixhandte/pkg-config-fix
Fix Up #2659; Build libzstd.pc Whenever Building the Lib on Unix
Nick Terrell [Wed, 8 Dec 2021 18:31:40 +0000 (10:31 -0800)]
Fix oss-fuzz build
Disable assembly when dataflow sanitizer is enabled.
This regressed in PR #2893, which accidentally removed the check for
dataflow sanitizer.
Yann Collet [Wed, 8 Dec 2021 17:17:06 +0000 (09:17 -0800)]
fixed very minor cast warning under cygwin
W. Felix Handte [Tue, 7 Dec 2021 19:22:36 +0000 (14:22 -0500)]
Fix Up #2659; Build libzstd.pc Whenever Building the Lib on Unix
Yann Collet [Wed, 8 Dec 2021 05:14:52 +0000 (21:14 -0800)]
updated xxHash to latest v0.8.1
with minor modifications directly embedded in source :
- does not compile XXH3
- namespace emulation (ZSTD_ prefix)
Incidentally fix #2824
binhdvo [Tue, 7 Dec 2021 21:56:19 +0000 (16:56 -0500)]
Imply -q when stderr is not a tty (#2884)
* Imply -q when stderr is not a tty
Felix Handte [Tue, 7 Dec 2021 19:18:38 +0000 (14:18 -0500)]
Merge pull request #2659 from ericonr/pc
[lib] Fix libzstd.pc for lib-mt builds
Nick Terrell [Mon, 6 Dec 2021 20:41:22 +0000 (15:41 -0500)]
Merge pull request #2907 from Hello71/armv6-fix-legacy
Apply FORCE_MEMORY_ACCESS=1 to legacy
Nick Terrell [Mon, 6 Dec 2021 18:18:15 +0000 (13:18 -0500)]
Merge pull request #2890 from
15596858998 /dec_1201
fixbug CLI's -D fails when the argument is not a regular file
Alex Xu (Hello71) [Mon, 6 Dec 2021 03:51:44 +0000 (22:51 -0500)]
Apply FORCE_MEMORY_ACCESS=1 to legacy
See #2633, #2881.
15596858998 [Sun, 5 Dec 2021 11:12:52 +0000 (19:12 +0800)]
add test case
Nick Terrell [Fri, 3 Dec 2021 19:07:30 +0000 (14:07 -0500)]
Merge pull request #2893 from terrelln/issue-2789
[asm] Share portability macros and restrict ASM further
Felix Handte [Fri, 3 Dec 2021 17:09:58 +0000 (12:09 -0500)]
Merge pull request #2897 from felixhandte/zstd-deprecated-avoid-deprecated
Avoid Using Deprecated Functions in Deprecated Code
Felix Handte [Fri, 3 Dec 2021 17:09:39 +0000 (12:09 -0500)]
Merge pull request #2899 from felixhandte/cmake-disable-multithreading-android
Disable Multithreading in CMake Builds for Android
Nick Terrell [Wed, 1 Dec 2021 20:52:23 +0000 (12:52 -0800)]
[asm] Share portability macros and restrict ASM further
Move portability macros to `lib/common/portability_macros.h`. This file
only contains platform/feature detection (e.g. 0/1 macros). This file is
shared between C and ASM code, so it cannot include any C code.
Rename `HUF_` ASM macros to be `ZSTD_` prefixed, and move to the new
header.
Restrict `ZSTD_ASM_SUPPORTED` to `__GNUC__`, because we need the GAS
assembler.
Finally, only include the ASM code if we are actually going to use it.
This disables it on all Windows platforms, which should resolve the
problem brought up in Issue #2789.
Nick Terrell [Fri, 3 Dec 2021 00:51:33 +0000 (19:51 -0500)]
Merge pull request #2900 from terrelln/issue-2893-test
[CI] Add cmake windows build
Nick Terrell [Fri, 3 Dec 2021 00:49:43 +0000 (19:49 -0500)]
Merge pull request #2898 from terrelln/issue-2862
Improve zstd_opt build speed and size
Nick Terrell [Thu, 2 Dec 2021 22:42:17 +0000 (14:42 -0800)]
[CI] Add cmake windows build
Build on windows with cmake to ensure everything compiles.
Yann Collet [Thu, 2 Dec 2021 22:25:45 +0000 (14:25 -0800)]
Merge pull request #2896 from facebook/m68k
Zstandard compiles and run on m68k cpus
W. Felix Handte [Thu, 2 Dec 2021 22:23:42 +0000 (17:23 -0500)]
Disable Multithreading in CMake Builds for Android
Nick Terrell [Thu, 2 Dec 2021 21:32:53 +0000 (13:32 -0800)]
Improve zstd_opt build speed and size
Use the same trick as we did for zstd_lazy in PR #2828:
* Create one search function specialization for each (dictMode, mls).
* Select the search function pointer at the top of the match finder.
Additionally, we no longer inline `ZSTD_compressBlock_opt_generic` into
every function, since `dictMode` is no longer used as a template. Create
two specializations, for opt levels 0 and 2, and call one of the two
specializations.
Lastly, remove the hack that disabled inlining for zstd_opt for the
Linux Kernel, as we've gotten most of the benefit already.
Compilation time sees a ~4x reduction:
| Compiler | Flags | Dev Time (s) | PR Time (s) | Delta |
|----------|----------------------------------|--------------|-------------|-------|
| gcc | -O3 | 10.1 | 2.3 | -77% |
| gcc | -O3 -fsanitize=address,undefined | 61.1 | 10.2 | -83% |
| clang | -O3 | 9.0 | 2.1 | -76% |
| clang | -O3 -fsanitize=address,undefined | 33.5 | 5.1 | -84% |
Build size is reduced by 150KB - 200KB:
| Compiler | Dev libzstd.a Size (B) | PR libzstd.a Size (B) | Delta |
|----------|------------------------|-----------------------|-------|
| gcc |
1327476 |
1177108 | -11% |
| clang |
1378324 |
1167780 | -15% |
There is a <2% speed loss in all cases:
| Compiler | Level | Dev Speed (MB/s) | PR Speed (MB/s) | Delta |
|----------|-------|------------------|-----------------|--------|
| gcc | 16 | 4.78 | 4.72 | -1.25% |
| gcc | 17 | 3.49 | 3.46 | -0.85% |
| gcc | 18 | 2.92 | 2.86 | -2.04% |
| gcc | 19 | 2.61 | 2.61 | 0.00% |
| clang | 16 | 4.69 | 4.80 | 2.34% |
| clang | 17 | 3.53 | 3.49 | -1.13% |
| clang | 18 | 2.86 | 2.85 | -0.34% |
| clang | 19 | 2.61 | 2.61 | 0.00% |
Fixes Issue #2862.
W. Felix Handte [Thu, 2 Dec 2021 21:53:52 +0000 (16:53 -0500)]
Fix Include Path
Nick Terrell [Thu, 2 Dec 2021 21:20:56 +0000 (16:20 -0500)]
Merge pull request #2892 from terrelln/issue-2785
[CircleCI] Fix short-tests-0
W. Felix Handte [Thu, 2 Dec 2021 21:06:07 +0000 (16:06 -0500)]
Migrate to `FORWARD_IF_ERROR`
Yann Collet [Thu, 2 Dec 2021 20:57:42 +0000 (12:57 -0800)]
changed macro name to ZSTD_ALIGNOF
for better consistency
Yann Collet [Thu, 2 Dec 2021 19:30:03 +0000 (11:30 -0800)]
bound alignment backup to sizeof(void*)
W. Felix Handte [Thu, 2 Dec 2021 19:25:33 +0000 (14:25 -0500)]
Avoid Using Deprecated Functions in Deprecated Code
`lib/deprecated` is no longer built by zstd's bundled build files. However,
users may try to build these files when they import the source tree into
their own build systems. And if they have `-Wdeprecated-declarations` on,
this can produce warnings.
This PR migrates these files away from using deprecated declarations.
This addresses #2767.
Yann Collet [Thu, 2 Dec 2021 19:20:01 +0000 (11:20 -0800)]
move the alignment macro to compiler.h
because mem.h is dropped in the Linux kernel.
Changed macro definition order (gcc/clang/msvc before c11)
due to a limitation in the kernel source builder.
Changed the backup to sizeof(),
reverting to previous behavior when no support of alignof() is detected.
Nick Terrell [Thu, 2 Dec 2021 18:53:33 +0000 (13:53 -0500)]
Merge pull request #2891 from supperPants/dev
Fix typos
Yann Collet [Thu, 2 Dec 2021 18:53:02 +0000 (10:53 -0800)]
Merge pull request #2687 from sapiippo/dev
Makefile: fix build for mingw
Yann Collet [Thu, 2 Dec 2021 18:52:46 +0000 (10:52 -0800)]
Merge pull request #2894 from facebook/tomerge2051
merge #2501
Yann Collet [Thu, 2 Dec 2021 18:30:04 +0000 (10:30 -0800)]
m68k CI tests on GA are now compulsory
Nick Terrell [Thu, 2 Dec 2021 18:20:15 +0000 (13:20 -0500)]
Merge pull request #2895 from kanavin/fix-repro
Makefile: sort all wildcard file list expansions
Alexander Kanavin [Wed, 23 Dec 2020 18:14:32 +0000 (19:14 +0100)]
Makefile: sort all wildcard file list expansions
Otherwise the order is non-deterministic and breaks
reproducible builds.
Yann Collet [Thu, 2 Dec 2021 07:02:00 +0000 (23:02 -0800)]
fix align conditions for huf_compress
Nick Terrell [Wed, 1 Dec 2021 19:49:58 +0000 (11:49 -0800)]
[CircleCI] Fix short-tests-0
short-tests-0 were silently failing. I think because of the && make clean construction. Switch to ; instead.
Also fix all the test failures that were exposed.
`make all` is failing on CircleCI because it is missing Docker. Move that test
to GitHub actions, and switch the pedantic CircleCI test to `make allmost`.
Yann Collet [Thu, 2 Dec 2021 01:16:36 +0000 (17:16 -0800)]
added alignment test
and fix an incorrect alignment check in cwksp which was failing on m68k
Yann Collet [Thu, 2 Dec 2021 00:54:59 +0000 (16:54 -0800)]
removed lib/Makefile preamble
now included from libzstd.mk
Yann Collet [Wed, 1 Dec 2021 23:29:49 +0000 (15:29 -0800)]
Merge branch 'dev' into tomerge2051
Yann Collet [Wed, 1 Dec 2021 23:26:42 +0000 (15:26 -0800)]
Merge pull request #2501 from skitt/hide-static-symbols
Explicitly hide static symbols
Nick Terrell [Wed, 1 Dec 2021 23:15:53 +0000 (18:15 -0500)]
Merge pull request #2887 from terrelln/issue-2815
[zdict] Remove ZDICT_CONTENTSIZE_MIN restriction for ZDICT_finalizeDictionary
Yann Collet [Wed, 1 Dec 2021 23:10:55 +0000 (15:10 -0800)]
reduce storage requirement
51 MB seems excessive for CI storate and considering the nature of the test.
(note : maybe we should consider using `/tmp` for files generated during tests,
as tmpfs is typically using RAM, thus preserving storage.)
Yann Collet [Wed, 1 Dec 2021 23:10:08 +0000 (15:10 -0800)]
Merge pull request #2876 from
15596858998 /dev
Solve the bug of extra output newline character
Yann Collet [Wed, 1 Dec 2021 22:19:16 +0000 (14:19 -0800)]
Merge pull request #2885 from yoniko/limit-level-32bit-systems
Limit `ZSTD_maxCLevel` to 21 for 32-bit binaries.
Nick Terrell [Wed, 1 Dec 2021 18:05:35 +0000 (13:05 -0500)]
Merge pull request #2886 from terrelln/issue-2865
[test] Test that the exec-stack bit isn't set on libzstd.so
Nick Terrell [Wed, 1 Dec 2021 18:05:09 +0000 (13:05 -0500)]
Merge pull request #2888 from terrelln/issue-2814
[bmi2] Add lzcnt and bmi target attributes
Nick Terrell [Wed, 1 Dec 2021 18:03:03 +0000 (13:03 -0500)]
Merge pull request #2889 from terrelln/issue-2811
[contrib][pzstd] Fix build issue with gcc-5
supperPants [Wed, 1 Dec 2021 14:41:24 +0000 (22:41 +0800)]
Merge https://github.com/facebook/zstd into dev
supperPants [Wed, 1 Dec 2021 14:36:21 +0000 (22:36 +0800)]
Fix typos.