]>
git.ipfire.org Git - thirdparty/zstd.git/log
Yann Collet [Sun, 2 Jan 2022 07:15:34 +0000 (23:15 -0800)]
make stableSrc compatible with regular streaming API
including flushStream().
Now the only condition is for `input.size` to continuously grow.
Yann Collet [Sat, 1 Jan 2022 02:20:36 +0000 (18:20 -0800)]
streaming compression : lazy parameter adaptation with stable input
effectively makes ZSTD_c_stableInput compatible ZSTD_compressStream()
and zstd_e_continue operation mode.
Yann Collet [Sat, 1 Jan 2022 00:25:12 +0000 (16:25 -0800)]
minor refactoring
on streaming compression implementation.
Yann Collet [Thu, 30 Dec 2021 22:33:21 +0000 (14:33 -0800)]
fixed backup prototype for POOL_sizeof()
Yann Collet [Thu, 30 Dec 2021 22:08:51 +0000 (14:08 -0800)]
POOL_sizeof() only needs a const read-only reference
Yann Collet [Thu, 30 Dec 2021 00:07:36 +0000 (16:07 -0800)]
Merge pull request #2962 from facebook/seqStore_off
Refactor offset+repcode sumtype
Yann Collet [Wed, 29 Dec 2021 01:41:47 +0000 (17:41 -0800)]
use ZSTD_memcpy(), for proper redirection within Linux Kernel
Yann Collet [Wed, 29 Dec 2021 00:18:44 +0000 (16:18 -0800)]
found a few more places which were dependent on seqStore offcode sumtype numeric representation
Yann Collet [Wed, 29 Dec 2021 00:07:40 +0000 (16:07 -0800)]
Merge pull request #2960 from fwessels/patch-1
Fix mini typo
Yann Collet [Tue, 28 Dec 2021 23:42:21 +0000 (15:42 -0800)]
Merge pull request #2954 from facebook/storeSeq_ml
storeSeq & mlBase : clarity refactoring
Yann Collet [Tue, 28 Dec 2021 21:47:57 +0000 (13:47 -0800)]
regroup all mentions of ZSTD_REP_MOVE within zstd_compress_internal.h
Yann Collet [Tue, 28 Dec 2021 21:21:22 +0000 (13:21 -0800)]
fixed minor conversion warnings
Yann Collet [Tue, 28 Dec 2021 20:23:39 +0000 (12:23 -0800)]
abstracted storeSeq() sumtype numeric representation from zstd_lazy.c
Yann Collet [Tue, 28 Dec 2021 20:13:58 +0000 (12:13 -0800)]
abstracted storeSeq() sumtype numeric representation from zstd_opt.c
Yann Collet [Tue, 28 Dec 2021 19:58:33 +0000 (11:58 -0800)]
abstracted storeSeq() sumtype numeric representation from decodecorpus.c
Yann Collet [Tue, 28 Dec 2021 19:46:15 +0000 (11:46 -0800)]
separate newRep() from updateRep()
the new contracts seems to make more sense :
updateRep() updates an array of repeat offsets _in place_,
while newRep() generates a new structure with the updated repeat-offset array.
Most callers are actually expecting the in-place variant,
and a limited sub-section, in `zstd_opt.c` mainly, prefer `newRep()`.
Yann Collet [Tue, 28 Dec 2021 19:38:21 +0000 (11:38 -0800)]
fixed minor typecast warnings
Yann Collet [Tue, 28 Dec 2021 18:59:47 +0000 (10:59 -0800)]
abstracted usage of offBase sumtype within zstd_lazy.c
Yann Collet [Tue, 28 Dec 2021 17:55:31 +0000 (09:55 -0800)]
fixed regression test assert
optLdm->offset might be == 0 in invalid case.
Only use STORE_OFFSET() after validating it's a correct case.
Frank Wessels [Tue, 28 Dec 2021 17:04:28 +0000 (09:04 -0800)]
Fix mini typo
Yann Collet [Tue, 28 Dec 2021 14:59:07 +0000 (06:59 -0800)]
created STORED_*() macros
to act on values stored / expressed in the sumtype numeric representation required by `storedSeq()`.
This makes it possible to abstract away this representation by using the macros to extract these values.
First user : ZSTD_updateRep() .
Yann Collet [Fri, 24 Dec 2021 05:58:08 +0000 (21:58 -0800)]
introduce macros STORE_OFFSET() and STORE_REPCODE()
this meant to abstract the sumtype representation required
to transfert `offcode` to `ZSTD_storeSeq()`.
Unfortunately, the sumtype numeric representation is currently a leaky abstraction
that has permeated many other parts of the code,
especially within `zstd_lazy.c` and also within `zstd_opt.c` and `zstd_compress.c`.
While this PR makes a good job a transfering a large nb of call sites
to using the new macros, there are still a few sites where this transformation is more complex,
or where the numeric representation itself it used "as is".
One of the problematics area is the decision to use the numeric format of the sumtype
within the match finders of `zstd_lazy`.
This commit doesn't change the behavior, it only introduces and employes the macros,
but eventually the resulting code remains identical.
At target, if the numeric representation of the sumtype can be completely abstracted
and no other part of the code depends on it,
it will be possible to move it towards something slightly more efficient.
Yann Collet [Fri, 24 Dec 2021 02:03:17 +0000 (18:03 -0800)]
Merge branch 'dev' into seqStore_off
Yann Collet [Fri, 24 Dec 2021 01:56:08 +0000 (17:56 -0800)]
change seqDef.offset into seqDef.offBase
to better reflect the value stored in this field.
Yann Collet [Fri, 24 Dec 2021 01:43:12 +0000 (17:43 -0800)]
library optimization flag can be selected on command line again
`CFLAGS=-O0 make`
will now use `-O0` instead of enforcing `-O3`
which used to be the behavior before introduction of `libzstd.mk`.
This should result in faster tests,
since a few tests depend on this capability for faster roundtrips.
Yann Collet [Thu, 23 Dec 2021 21:39:46 +0000 (13:39 -0800)]
changed seqDef.matchLength into seqDef.mlBase
since this is effectively what is stored in this field (== matchLength - MINMATCH).
This makes it clearer what needs to be done when reading from / writing to this field.
Yann Collet [Thu, 23 Dec 2021 20:03:33 +0000 (12:03 -0800)]
change ZSTD_storeSeq() interface to accept matchLength
instead of mlBase.
This removes the need to do `- MINMATCH` at every call site.
The new interface contract is checked with an `assert()`.
Yann Collet [Wed, 22 Dec 2021 19:13:40 +0000 (11:13 -0800)]
Merge pull request #2947 from MehdiChinoune/patch-1
Fix zstd-static output name with MINGW/Clang
مهدي شينون (Mehdi Chinoune) [Wed, 22 Dec 2021 09:08:49 +0000 (10:08 +0100)]
Fix zstd-static output name with MINGW/Clang
Yann Collet [Tue, 21 Dec 2021 16:52:50 +0000 (08:52 -0800)]
updated manual
Yann Collet [Mon, 20 Dec 2021 22:24:06 +0000 (14:24 -0800)]
update man pages
Yann Collet [Mon, 20 Dec 2021 20:28:27 +0000 (12:28 -0800)]
updated changelog for v1.5.1
Yann Collet [Mon, 20 Dec 2021 20:27:28 +0000 (12:27 -0800)]
Merge pull request #2940 from facebook/revert-2885-limit-level-32bit-systems
Revert "Limit `ZSTD_maxCLevel` to 21 for 32-bit binaries."
Yann Collet [Mon, 20 Dec 2021 19:43:14 +0000 (11:43 -0800)]
Revert "Limit `ZSTD_maxCLevel` to 21 for 32-bit binaries."
Yann Collet [Mon, 20 Dec 2021 19:37:44 +0000 (11:37 -0800)]
Merge pull request #2934 from facebook/lazy_rebalance
rebalance lazy compression levels
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