]> git.ipfire.org Git - thirdparty/zstd.git/log
thirdparty/zstd.git
3 years agoDocumentation and minor refactor to clarify MT memory management. 3000/head
Elliot Gorokhovsky [Fri, 14 Jan 2022 18:11:41 +0000 (11:11 -0700)] 
Documentation and minor refactor to clarify MT memory management.

3 years agoMerge pull request #2987 from felixhandte/prepare-v1.5.2
Felix Handte [Tue, 11 Jan 2022 22:47:39 +0000 (17:47 -0500)] 
Merge pull request #2987 from felixhandte/prepare-v1.5.2

Prepare v1.5.2

3 years agoMerge pull request #2993 from hjl-tools/hjl/asm/dev
Felix Handte [Tue, 11 Jan 2022 19:31:51 +0000 (14:31 -0500)] 
Merge pull request #2993 from hjl-tools/hjl/asm/dev

x86-64: Hide internal assembly functions

3 years agoMerge pull request #2957 from hmaarrfk/fix_cmake_msvc
Felix Handte [Tue, 11 Jan 2022 18:25:16 +0000 (13:25 -0500)] 
Merge pull request #2957 from hmaarrfk/fix_cmake_msvc

Fixup MSVC source file inclusion for cmake builds

3 years agoMerge pull request #2956 from sunwire/fix-tar-test-cases
Yann Collet [Tue, 11 Jan 2022 18:16:34 +0000 (10:16 -0800)] 
Merge pull request #2956 from sunwire/fix-tar-test-cases

Fix tar test cases

3 years agoMerge pull request #2982 from terrelln/decompress-progress-0
Yann Collet [Tue, 11 Jan 2022 18:15:15 +0000 (10:15 -0800)] 
Merge pull request #2982 from terrelln/decompress-progress-0

Fix stderr progress logging for decompression

3 years agox86-64: Hide internal assembly functions 2993/head
H.J. Lu [Tue, 11 Jan 2022 16:09:58 +0000 (08:09 -0800)] 
x86-64: Hide internal assembly functions

Hide x86-64 internal assembly functions. Before

$ nm -D lib/libzstd.so.1 | grep usingDTable_internal_bmi2_asm_loop
00000000000c23c0 T _HUF_decompress4X1_usingDTable_internal_bmi2_asm_loop
00000000000c23c0 T HUF_decompress4X1_usingDTable_internal_bmi2_asm_loop
00000000000c283d T _HUF_decompress4X2_usingDTable_internal_bmi2_asm_loop
00000000000c283d T HUF_decompress4X2_usingDTable_internal_bmi2_asm_loop
$

After

$ nm -D lib/libzstd.so.1 | grep usingDTable_internal_bmi2_asm_loop
$

This fixes issue #2990.

3 years agoUpdate Changelog 2987/head
W. Felix Handte [Wed, 5 Jan 2022 23:41:14 +0000 (18:41 -0500)] 
Update Changelog

3 years agoFix stderr progress logging for decompression 2982/head
Nick Terrell [Fri, 7 Jan 2022 23:09:56 +0000 (15:09 -0800)] 
Fix stderr progress logging for decompression

When decompressing with `-q` and an output file, the progress bar was mistakenly printed. This is a minimal fix, with a larger refactor to be stacked on top of it.

Fixes #2967.

3 years agoUpdate Docs
W. Felix Handte [Wed, 5 Jan 2022 21:59:07 +0000 (16:59 -0500)] 
Update Docs

3 years agoBump Version Number to 1.5.2
W. Felix Handte [Wed, 5 Jan 2022 21:56:24 +0000 (16:56 -0500)] 
Bump Version Number to 1.5.2

3 years agoMerge pull request #2981 from terrelln/asm-license
Nick Terrell [Fri, 7 Jan 2022 19:06:30 +0000 (11:06 -0800)] 
Merge pull request #2981 from terrelln/asm-license

[license] Fix license header of huf_decompress_amd64.S

3 years ago[license] Fix license header of huf_decompress_amd64.S 2981/head
Nick Terrell [Fri, 7 Jan 2022 17:35:27 +0000 (09:35 -0800)] 
[license] Fix license header of huf_decompress_amd64.S

* Add the license header for `huf_decompress_amd64.S`
* Add `.S` files to the `test-license.py` test

3 years agoMerge pull request #2980 from terrelln/opt-oss-fuzz-fix
Nick Terrell [Fri, 7 Jan 2022 17:27:09 +0000 (09:27 -0800)] 
Merge pull request #2980 from terrelln/opt-oss-fuzz-fix

[opt] Fix oss-fuzz bug in optimal parser

3 years agoMerge pull request #2977 from felixhandte/fix-2950
Felix Handte [Fri, 7 Jan 2022 17:10:46 +0000 (12:10 -0500)] 
Merge pull request #2977 from felixhandte/fix-2950

Remove Dependencies to Allow the Zstd Binary to Dynamically Link to the Library

3 years ago[opt] Fix oss-fuzz bug in optimal parser 2980/head
Nick Terrell [Fri, 7 Jan 2022 00:00:02 +0000 (16:00 -0800)] 
[opt] Fix oss-fuzz bug in optimal parser

oss-fuzz uncovered a scenario where we're evaluating the cost of litLength = 131072,
which can't be represented in the zstd format, so we accessed 1 beyond LL_bits.

Fix the issue by making it cost 1 bit more than litLength = 131071.

There are still follow ups:
1. This happened because literals_cost[0] = 0, so the optimal parser chose 36 literals
   over a match. Should we bound literals_cost[literal] > 0, unless the block truly only
   has one literal value?
2. When no matches are found, the cost model isn't updated. In this case no matches were
   found for an entire block. So the literals cost model wasn't updated at all. That made
   the optimal parser think literals_cost[0] = 0, where it is actually quite high, since
   the block was entirely random noise.

Credit to OSS-Fuzz.

3 years agoAvoid xxHash Dependency by Inlining 2977/head
W. Felix Handte [Thu, 6 Jan 2022 05:20:49 +0000 (00:20 -0500)] 
Avoid xxHash Dependency by Inlining

xxHash symbols are present in `libzstd.so`, but they are local and therefore
unavailable outside the lib. There are two possible solutions to the problem.
We could make those symbols global, or we could remove the dependency.

This commit chooses the latter approach. I suppose this comes at the cost of
code size / build time. I'm open to comments on whether this is a good thing
to do, especially since this will apply even when we are statically linking
everything.

3 years agoRemove Unused Include
W. Felix Handte [Thu, 6 Jan 2022 05:20:05 +0000 (00:20 -0500)] 
Remove Unused Include

3 years agoMerge pull request #2953 from felixhandte/modulemap-improvements
Felix Handte [Thu, 6 Jan 2022 04:54:50 +0000 (23:54 -0500)] 
Merge pull request #2953 from felixhandte/modulemap-improvements

Improve Module Map File

3 years agoAdd a compile option to explicitely disable assembly 2957/head
Mark Harfouche [Thu, 6 Jan 2022 01:36:51 +0000 (20:36 -0500)] 
Add a compile option to explicitely disable assembly

3 years agoUpdate the Swift Package Definition to Reflect Move 2953/head
W. Felix Handte [Thu, 23 Dec 2021 20:01:57 +0000 (15:01 -0500)] 
Update the Swift Package Definition to Reflect Move

3 years agoImprove Module Map File
W. Felix Handte [Thu, 23 Dec 2021 19:57:16 +0000 (14:57 -0500)] 
Improve Module Map File

This commit makes several changes:

1. It adds modules for the dictionary builder and errors headers.
2. It captures all of the macros that are used to configure these headers.
   When the headers are imported as modules and one of these macros is defined
   the compiler issues a warning that it needs to be defined on the CLI.
3. It promotes the modulemap file into the root of the lib directory.
   Experimentation shows that clang's `-fimplicit-module-maps` will find the
   modulemap when placed here, but not when it's put in a subdirectory.

3 years agoMerge pull request #2964 from felixhandte/noexecstack-all-archs
Felix Handte [Wed, 5 Jan 2022 21:52:39 +0000 (16:52 -0500)] 
Merge pull request #2964 from felixhandte/noexecstack-all-archs

Mark Huffman Decoder Assembly `noexecstack` on All Architectures

3 years agoClean Up Debugging Statements 2964/head
W. Felix Handte [Wed, 5 Jan 2022 20:21:48 +0000 (15:21 -0500)] 
Clean Up Debugging Statements

3 years agoRestrict `GNU-stack` Note to GNU Assemblers
W. Felix Handte [Wed, 5 Jan 2022 21:03:32 +0000 (16:03 -0500)] 
Restrict `GNU-stack` Note to GNU Assemblers

3 years agoWrite `GNU-stack` Section on All ELF Architectures
W. Felix Handte [Wed, 5 Jan 2022 20:42:58 +0000 (15:42 -0500)] 
Write `GNU-stack` Section on All ELF Architectures

Previously we did this only on Linux, which missed other Unices.

3 years agoMakefiles: Add `noexecstack` Options to Compilation and Linking
W. Felix Handte [Wed, 5 Jan 2022 19:53:22 +0000 (14:53 -0500)] 
Makefiles: Add `noexecstack` Options to Compilation and Linking

Hopefully this marks the binary artifacts `noexecstack` even on platforms
where binaries default to true.

3 years agoMerge pull request #2972 from terrelln/meson-fix
Nick Terrell [Wed, 5 Jan 2022 17:27:33 +0000 (09:27 -0800)] 
Merge pull request #2972 from terrelln/meson-fix

[meson] Explicitly disable assembly for non clang/gcc copmilers

3 years agoMerge pull request #2969 from facebook/fix2966_part1
Yann Collet [Wed, 5 Jan 2022 01:03:10 +0000 (17:03 -0800)] 
Merge pull request #2969 from facebook/fix2966_part1

fix performance issue in scenario #2966 (part 1)

3 years ago[meson] Explicitly disable assembly for non clang/gcc copmilers 2972/head
Nick Terrell [Wed, 5 Jan 2022 00:05:59 +0000 (16:05 -0800)] 
[meson] Explicitly disable assembly for non clang/gcc copmilers

After merging #2951 I realized that we will want to explicitly disable
assembly when we aren't including the assembly source file. Otherwise,
if some non clang/gcc compiler does support assembly, it would fail to
build.

3 years agoMerge pull request #2951 from eli-schwartz/msvc-no-asm
Nick Terrell [Tue, 4 Jan 2022 23:56:35 +0000 (15:56 -0800)] 
Merge pull request #2951 from eli-schwartz/msvc-no-asm

meson: fix MSVC support

3 years agoAdd Test Validating Stack is not Executable in playTests.sh
W. Felix Handte [Thu, 30 Dec 2021 02:42:32 +0000 (18:42 -0800)] 
Add Test Validating Stack is not Executable in playTests.sh

3 years agoUpdated expression for better readability 2969/head
Yann Collet [Tue, 4 Jan 2022 17:07:11 +0000 (09:07 -0800)] 
Updated expression for better readability

3 years agofullbench: added compress_freshCCtx scenario
Yann Collet [Sun, 2 Jan 2022 16:52:33 +0000 (08:52 -0800)] 
fullbench: added compress_freshCCtx scenario

3 years agofixed fullbench freshCCtx scenario
Yann Collet [Sun, 2 Jan 2022 07:46:49 +0000 (23:46 -0800)] 
fixed fullbench freshCCtx scenario

3 years agofix performance issue in scenario #2966 (part 1)
Yann Collet [Fri, 31 Dec 2021 21:03:12 +0000 (13:03 -0800)] 
fix performance issue in scenario #2966 (part 1)

When re-using a compression state, across multiple successive compressions,
the state should minimize the amount of allocation and initialization required.

This mostly matters in situations where initialization is an overwhelming task
compared to compression itself.
This can happen when the amount to compress is small,
while the compression state was given the impression that it would be much larger,
aka, streaming mode without providing a srcSize hint.

This lean-initialization optimization was broken in 980f3bbf8354edec0ad32b4430800f330185de6a .

This commit fixes it, making this scenario once again on par with v1.4.9.

Note that this does not completely fix #2966,
since another heavy initialization, specific to row mode,
is also happening (and was not present in v1.4.9).
This will be fixed in a separate commit.

3 years agofixed backup prototype for POOL_sizeof()
Yann Collet [Thu, 30 Dec 2021 22:33:21 +0000 (14:33 -0800)] 
fixed backup prototype for POOL_sizeof()

3 years agoPOOL_sizeof() only needs a const read-only reference
Yann Collet [Thu, 30 Dec 2021 22:08:51 +0000 (14:08 -0800)] 
POOL_sizeof() only needs a const read-only reference

3 years agoMark Huffman Decoder Assembly `noexecstack` on All Architectures
W. Felix Handte [Thu, 30 Dec 2021 01:47:12 +0000 (17:47 -0800)] 
Mark Huffman Decoder Assembly `noexecstack` on All Architectures

Apparently, even when the assembly file is empty (because
`ZSTD_ENABLE_ASM_X86_64_BMI2` is false), it still is marked as possibly
needing an executable stack and so the whole library is marked as such. This
commit applies a simple patch for this problem by moving the noexecstack
indication outside the macro guard.

This commit builds on #2857.

This commit addresses #2963.

3 years agoMerge pull request #2962 from facebook/seqStore_off
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

3 years agouse ZSTD_memcpy(), for proper redirection within Linux Kernel 2962/head
Yann Collet [Wed, 29 Dec 2021 01:41:47 +0000 (17:41 -0800)] 
use ZSTD_memcpy(), for proper redirection within Linux Kernel

3 years agofound a few more places which were dependent on seqStore offcode sumtype numeric...
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

3 years agoMerge pull request #2960 from fwessels/patch-1
Yann Collet [Wed, 29 Dec 2021 00:07:40 +0000 (16:07 -0800)] 
Merge pull request #2960 from fwessels/patch-1

Fix mini typo

3 years agoMerge pull request #2954 from facebook/storeSeq_ml
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

3 years agoregroup all mentions of ZSTD_REP_MOVE within zstd_compress_internal.h
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

3 years agofixed minor conversion warnings
Yann Collet [Tue, 28 Dec 2021 21:21:22 +0000 (13:21 -0800)] 
fixed minor conversion warnings

3 years agoabstracted storeSeq() sumtype numeric representation from zstd_lazy.c
Yann Collet [Tue, 28 Dec 2021 20:23:39 +0000 (12:23 -0800)] 
abstracted storeSeq() sumtype numeric representation from zstd_lazy.c

3 years agoabstracted storeSeq() sumtype numeric representation from zstd_opt.c
Yann Collet [Tue, 28 Dec 2021 20:13:58 +0000 (12:13 -0800)] 
abstracted storeSeq() sumtype numeric representation from zstd_opt.c

3 years agoabstracted storeSeq() sumtype numeric representation from decodecorpus.c
Yann Collet [Tue, 28 Dec 2021 19:58:33 +0000 (11:58 -0800)] 
abstracted storeSeq() sumtype numeric representation from decodecorpus.c

3 years agoseparate newRep() from updateRep()
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()`.

3 years agofixed minor typecast warnings
Yann Collet [Tue, 28 Dec 2021 19:38:21 +0000 (11:38 -0800)] 
fixed minor typecast warnings

3 years agoabstracted usage of offBase sumtype within zstd_lazy.c
Yann Collet [Tue, 28 Dec 2021 18:59:47 +0000 (10:59 -0800)] 
abstracted usage of offBase sumtype within zstd_lazy.c

3 years agofixed regression test assert
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.

3 years agoFix mini typo 2960/head
Frank Wessels [Tue, 28 Dec 2021 17:04:28 +0000 (09:04 -0800)] 
Fix mini typo

3 years agocreated STORED_*() macros
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() .

3 years agoFixup MSVC source file inclusion for cmake builds
Mark Harfouche [Mon, 27 Dec 2021 07:21:21 +0000 (02:21 -0500)] 
Fixup MSVC source file inclusion for cmake builds

3 years agoFix tar test cases 2956/head
Paweł Marciniak [Fri, 24 Dec 2021 14:05:26 +0000 (15:05 +0100)] 
Fix tar test cases

3 years agointroduce macros STORE_OFFSET() and STORE_REPCODE()
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.

3 years agoMerge branch 'dev' into seqStore_off
Yann Collet [Fri, 24 Dec 2021 02:03:17 +0000 (18:03 -0800)] 
Merge branch 'dev' into seqStore_off

3 years agochange seqDef.offset into seqDef.offBase
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.

3 years agolibrary optimization flag can be selected on command line again
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.

3 years agochanged seqDef.matchLength into seqDef.mlBase 2954/head
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.

3 years agochange ZSTD_storeSeq() interface to accept matchLength
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()`.

3 years agomeson: fix MSVC support 2951/head
Eli Schwartz [Thu, 23 Dec 2021 01:17:16 +0000 (20:17 -0500)] 
meson: fix MSVC support

Regression from commit a5f2c45528032ed20c33e0f8cd2c163a800a0017. It is
not possible to unconditionally add the asm sources, since not all
compilers understand the .s file extension.

Specifically for meson, only compilers inheriting from the GNU mixin
will allow a .s file at configure time.

zstd doesn't support asm for MSVC for the same basic reason; if/when
Windows asm support is added, it would involve preprocessing with nasm,
most likely.

3 years agoMerge pull request #2947 from MehdiChinoune/patch-1
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

3 years agoFix zstd-static output name with MINGW/Clang 2947/head
مهدي شينون (Mehdi Chinoune) [Wed, 22 Dec 2021 09:08:49 +0000 (10:08 +0100)] 
Fix zstd-static output name with MINGW/Clang

3 years agoupdated manual
Yann Collet [Tue, 21 Dec 2021 16:52:50 +0000 (08:52 -0800)] 
updated manual

3 years agoupdate man pages 2942/head
Yann Collet [Mon, 20 Dec 2021 22:24:06 +0000 (14:24 -0800)] 
update man pages

3 years agoupdated changelog for v1.5.1 2941/head
Yann Collet [Mon, 20 Dec 2021 20:28:27 +0000 (12:28 -0800)] 
updated changelog for v1.5.1

3 years agoMerge pull request #2940 from facebook/revert-2885-limit-level-32bit-systems
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."

3 years agoRevert "Limit `ZSTD_maxCLevel` to 21 for 32-bit binaries." 2940/head
Yann Collet [Mon, 20 Dec 2021 19:43:14 +0000 (11:43 -0800)] 
Revert "Limit `ZSTD_maxCLevel` to 21 for 32-bit binaries."

3 years agoMerge pull request #2934 from facebook/lazy_rebalance
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

3 years agoMerge branch 'dev' into lazy_rebalance 2934/head
Yann Collet [Mon, 20 Dec 2021 16:28:21 +0000 (08:28 -0800)] 
Merge branch 'dev' into lazy_rebalance

3 years agoupdate regression results
Yann Collet [Mon, 20 Dec 2021 15:54:57 +0000 (07:54 -0800)] 
update regression results

3 years agoadded target update_regressionResults
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

3 years agoupdate regression results
Yann Collet [Fri, 17 Dec 2021 04:43:23 +0000 (20:43 -0800)] 
update regression results

3 years agoupdate regression results
Yann Collet [Fri, 17 Dec 2021 00:07:54 +0000 (16:07 -0800)] 
update regression results

3 years agoMerge branch 'dev' into lazy_rebalance
Yann Collet [Thu, 16 Dec 2021 22:46:21 +0000 (14:46 -0800)] 
Merge branch 'dev' into lazy_rebalance

3 years agoupdated regression results.csv
Yann Collet [Thu, 16 Dec 2021 22:39:30 +0000 (14:39 -0800)] 
updated regression results.csv

3 years agofixed version number for fast modes
Yann Collet [Thu, 16 Dec 2021 19:52:43 +0000 (11:52 -0800)] 
fixed version number for fast modes

3 years agoforgot the chainlog is effectively a "fake" value with rowHash
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.

3 years agoMerge pull request #2931 from facebook/fix_rowlog
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

3 years agoupdated benchmark for v1.5.1
Yann Collet [Thu, 16 Dec 2021 12:46:21 +0000 (04:46 -0800)] 
updated benchmark for v1.5.1

answers #2764

3 years agominor changelog update
Yann Collet [Thu, 16 Dec 2021 09:07:15 +0000 (01:07 -0800)] 
minor changelog update

3 years agominor changelog update
Yann Collet [Thu, 16 Dec 2021 05:45:30 +0000 (21:45 -0800)] 
minor changelog update

3 years agorebalance lazy compression levels
Yann Collet [Thu, 16 Dec 2021 05:33:31 +0000 (21:33 -0800)] 
rebalance lazy compression levels

3 years agofixed incorrect rowlog initialization 2931/head
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.

3 years agoMerge pull request #2925 from embg/dict_training_sample_limit_size
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

3 years agominor changelog update, for clarity
Yann Collet [Wed, 15 Dec 2021 19:56:11 +0000 (11:56 -0800)] 
minor changelog update, for clarity

3 years agoMerge pull request #2929 from facebook/sse_row_lazy
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

3 years agoMerge pull request #2930 from nolange/reduce_tables_to_8bit
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

3 years agoReduce bit tables to 8bit 2930/head
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.

3 years agoAdd typedefs for 8bit (un)signed
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

3 years agoFix performance degradation with -m32 (#2926)
binhdvo [Tue, 14 Dec 2021 20:53:50 +0000 (15:53 -0500)] 
Fix performance degradation with -m32 (#2926)

3 years agoAllow user to specify memory limit for dictionary training 2925/head
Elliot Gorokhovsky [Fri, 10 Dec 2021 21:19:40 +0000 (16:19 -0500)] 
Allow user to specify memory limit for dictionary training

3 years agoMerge pull request #2921 from felixhandte/neg-lvl-stagger-step
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

3 years agoroll SSE implementation of row_lazy match finder 2929/head
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.

3 years agoUpdate Regression Tests w/ New Sizes 2921/head
W. Felix Handte [Mon, 13 Dec 2021 22:29:32 +0000 (17:29 -0500)] 
Update Regression Tests w/ New Sizes

3 years agoIncrement Step by 1 not 2
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.

3 years agoMerge pull request #2905 from 15596858998/dev_1205
Nick Terrell [Mon, 13 Dec 2021 21:45:23 +0000 (13:45 -0800)] 
Merge pull request #2905 from 15596858998/dev_1205

add test case