]>
git.ipfire.org Git - thirdparty/zstd.git/log
Yann Collet [Mon, 24 Jun 2019 21:39:29 +0000 (14:39 -0700)]
changed naming to ZSTD_indexTooCloseToMax()
Also : minor speed optimization :
shortcut to ZSTD_reset_matchState() rather than the full reset process.
It still needs to be completed with ZSTD_continueCCtx() for proper initialization.
Also : changed position of LDM hash tables in the context,
so that the "regular" hash tables can be at a predictable position,
hence allowing the shortcut to ZSTD_reset_matchState() without complex conditions.
Yann Collet [Fri, 21 Jun 2019 23:19:21 +0000 (16:19 -0700)]
prefer memset() rather than reduceIndex() when close to index range limit
by disabling continue mode when index is close to limit.
Yann Collet [Fri, 21 Jun 2019 22:58:55 +0000 (15:58 -0700)]
benchfn : added macro macro CONTROL()
like assert() but cannot be disabled.
proper separation of user contract errors (CONTROL())
and invariant verification (assert()).
Yann Collet [Wed, 19 Jun 2019 20:35:33 +0000 (13:35 -0700)]
Merge pull request #1626 from LeeYoung624/dev
add cmake lz4 support
Nick Terrell [Mon, 17 Jun 2019 18:57:41 +0000 (11:57 -0700)]
Merge pull request #1655 from terrelln/regression-test
[regression] Update results for small wlog patch PR#1624
Nick Terrell [Mon, 17 Jun 2019 17:40:33 +0000 (10:40 -0700)]
[regression] Update results for small wlog patch PR#1624
Yann Collet [Sat, 15 Jun 2019 00:32:05 +0000 (17:32 -0700)]
Merge pull request #1647 from LeeYoung624/cmake_bug_fix
CMake bug fix: didn't install zstdless and zstdgrep.
Yann Collet [Sat, 15 Jun 2019 00:30:03 +0000 (17:30 -0700)]
Merge pull request #1640 from felixhandte/lstat-macro-guard
Protect lstat() With Better Macro Guard
Yann Collet [Sat, 15 Jun 2019 00:28:21 +0000 (17:28 -0700)]
Merge pull request #1624 from facebook/smallwlog
Improves compression ratio for small windowLog
Yann Collet [Sat, 15 Jun 2019 00:09:00 +0000 (17:09 -0700)]
Merge pull request #1650 from scharan/RemoveExportsForStaticLibrary
Remove ZSTD_DLL_EXPORT=1 for static lib
Yann Collet [Fri, 14 Jun 2019 00:25:31 +0000 (17:25 -0700)]
Merge pull request #1644 from chungy/chmod_600
[programs] set chmod 600 after opening destination file
Sai Charan Koduru [Wed, 12 Jun 2019 19:26:36 +0000 (12:26 -0700)]
Remove ZSTD_DLL_EXPORT=1 for static lib
As a principle, static libs should not dllexport methods, that should only be used when building DLLs.
Case in point: when static libs with dllexport directives are linked into DLLs created with a .def file, the VC++ compiler exports the dllexported methods into the DLL, in addition to the exports listed in the .def file. This will result in undesired link dependencies and is not the correct thing to do.
LeeYoung624 [Tue, 11 Jun 2019 03:29:18 +0000 (11:29 +0800)]
Install zstdless & zstdgrep as 'PROGRAMS' in CMake
Felix Handte [Tue, 11 Jun 2019 19:05:25 +0000 (15:05 -0400)]
Merge pull request #1620 from michaelforney/test-no-threads
Skip --adapt and --rsyncable tests when built without thread support
Nick Terrell [Tue, 11 Jun 2019 05:13:16 +0000 (22:13 -0700)]
Merge pull request #1646 from terrelln/oss-fuzz
[fuzz] Remove max_len from the options
Lee [Tue, 11 Jun 2019 03:25:26 +0000 (11:25 +0800)]
Merge pull request #4 from facebook/dev
merge
Yann Collet [Mon, 10 Jun 2019 18:56:49 +0000 (11:56 -0700)]
Merge pull request #1619 from j301scott/dev
CMake: Check for existing custom target 'uninstall'
Nick Terrell [Mon, 10 Jun 2019 18:05:45 +0000 (11:05 -0700)]
[fuzz] Remove max_len from the options
W. Felix Handte [Mon, 10 Jun 2019 15:21:28 +0000 (11:21 -0400)]
Add Contbuild Test for C99 Build
Felix Handte [Mon, 10 Jun 2019 14:39:25 +0000 (10:39 -0400)]
Merge pull request #1642 from Absotively/dev
VS2010 project settings improvements
Mike Swanson [Sun, 9 Jun 2019 08:52:45 +0000 (01:52 -0700)]
[programs] Don’t try to chmod a dst file if it can’t be opened
Repairs an oversight in my last commit, thanks @Cyan4973
Mike Swanson [Sun, 9 Jun 2019 04:54:02 +0000 (21:54 -0700)]
[programs] set chmod 600 after opening destination file
This resolves a race condition where zstd or unzstd may expose read
permissions beyond the original file allowed. Mode 600 is used
temporarily during the compression and decompression write stage
and the new file inherits the original file’s mode at the end.
Fixes #1630
Jen Pollock [Fri, 7 Jun 2019 23:21:51 +0000 (17:21 -0600)]
In VS2010+, turn off assembler output for libzstd & libzstd-dll, and don't export functions from libzstd
W. Felix Handte [Fri, 7 Jun 2019 19:31:33 +0000 (15:31 -0400)]
Switch Macro Guarding lstat()
W. Felix Handte [Fri, 7 Jun 2019 19:30:30 +0000 (15:30 -0400)]
Clean Up Temp Files Produced By playTests.sh
Nick Terrell [Thu, 6 Jun 2019 20:15:23 +0000 (13:15 -0700)]
Merge pull request #1635 from terrelln/opt-opt
[libzstd] Optimize ZSTD_insertBt1() for repetitive data
Nick Terrell [Thu, 6 Jun 2019 03:40:52 +0000 (20:40 -0700)]
[regression] Update results.csv
Nick Terrell [Thu, 6 Jun 2019 03:20:55 +0000 (20:20 -0700)]
[libzstd] Optimize ZSTD_insertBt1() for repetitive data
We would only skip at most 192 bytes at a time before this diff.
This was added to optimize long matches and skip the middle of the
match. However, it doesn't handle the case of repetitive data.
This patch keeps the optimization, but also handles repetitive data
by taking the max of the two return values.
```
> for n in $(seq 9); do echo strategy=$n; dd status=none if=/dev/zero bs=1024k count=1000 | command time -f %U ./zstd --zstd=strategy=$n >/dev/null; done
strategy=1
0.27
strategy=2
0.23
strategy=3
0.27
strategy=4
0.43
strategy=5
0.56
strategy=6
0.43
strategy=7
0.34
strategy=8
0.34
strategy=9
0.35
```
At level 19 with multithreading the compressed size of `silesia.tar` regresses 300 bytes, and `enwik8` regresses 100 bytes.
In single threaded mode `enwik8` is also within 100 bytes, and I didn't test `silesia.tar`.
Fixes Issue #1634.
Yann Collet [Wed, 5 Jun 2019 19:30:21 +0000 (12:30 -0700)]
Merge pull request #1632 from ephiepark/dev
CircleCI : use custom Docker Image with pre-installed dependencies
Felix Handte [Wed, 5 Jun 2019 18:55:19 +0000 (14:55 -0400)]
Merge pull request #1633 from yk-tanigawa/patch-1
Update README.md
Yosuke Tanigawa [Wed, 5 Jun 2019 16:11:21 +0000 (09:11 -0700)]
Update README.md
Fix minor typo in the documentation.
Ephraim Park [Wed, 5 Jun 2019 04:14:20 +0000 (21:14 -0700)]
Merge branch 'dev' of https://github.com/ephiepark/zstd into dev
Ephraim Park [Tue, 4 Jun 2019 19:18:33 +0000 (12:18 -0700)]
circleci : remove install dependencies command from config.yml
Ephraim Park [Tue, 4 Jun 2019 18:04:51 +0000 (11:04 -0700)]
circleci : use custom docker image with installations
Ephraim Park [Wed, 5 Jun 2019 03:53:29 +0000 (20:53 -0700)]
Merge pull request #2 from ephiepark/circleci
CircleCI : use custom Docker Image with pre-installed dependencies
Yann Collet [Tue, 4 Jun 2019 22:14:35 +0000 (15:14 -0700)]
Merge pull request #1631 from ephiepark/dev
zstdcli : expose cpu load indicator for each file on -vv mode
Yann Collet [Tue, 4 Jun 2019 19:38:43 +0000 (12:38 -0700)]
Merge pull request #1629 from facebook/streamSize
Added comments on I/O buffer sizes for streaming
Ephraim Park [Tue, 4 Jun 2019 19:18:33 +0000 (12:18 -0700)]
circleci : remove install dependencies command from config.yml
Ephraim Park [Tue, 4 Jun 2019 18:04:51 +0000 (11:04 -0700)]
circleci : use custom docker image with installations
Yann Collet [Tue, 4 Jun 2019 17:35:40 +0000 (10:35 -0700)]
better title formatting for html documentation
must pay attention to /** and /*! patterns.
Yann Collet [Tue, 4 Jun 2019 17:26:16 +0000 (10:26 -0700)]
Added comments on I/O buffer sizes for streaming
It seems this is still a confusing topic,
as in https://github.com/klauspost/compress/issues/109 .
Ephraim Park [Tue, 4 Jun 2019 16:42:18 +0000 (09:42 -0700)]
zstdcli : align output message with previous message
Ephraim Park [Tue, 4 Jun 2019 16:25:16 +0000 (09:25 -0700)]
zstdcli : remove extra semicolon
Ephraim Park [Tue, 4 Jun 2019 16:23:49 +0000 (09:23 -0700)]
zstdcli : trying to fix declaration after statement
Ephraim Park [Tue, 4 Jun 2019 16:04:35 +0000 (09:04 -0700)]
zstdcli : moving cpu load calculation from FIO_compressFilename_dstFile to FIO_compressFilename_internal
Ephraim Park [Tue, 4 Jun 2019 00:36:09 +0000 (17:36 -0700)]
zstdcli : fixing mixed declarations and code error
Ephraim Park [Tue, 4 Jun 2019 00:31:14 +0000 (17:31 -0700)]
zstdcli : moving start time and cpu initialization after potential prompt
Ephraim Park [Mon, 3 Jun 2019 21:38:40 +0000 (14:38 -0700)]
zstdcli : exposing cpu load indicator for each file on -vv mode
l00292966 [Mon, 3 Jun 2019 10:19:59 +0000 (18:19 +0800)]
add cmake lz4 support
add some instructions for build/cmake/README.md
Yann Collet [Sat, 1 Jun 2019 00:27:07 +0000 (17:27 -0700)]
removed UINT32_MAX
apparently not guaranteed on all platforms,
replaced by UINT_MAX.
Yann Collet [Sat, 1 Jun 2019 00:06:28 +0000 (17:06 -0700)]
fixed wrong assert in double_fast
Yann Collet [Fri, 31 May 2019 23:52:37 +0000 (16:52 -0700)]
minor code cleaning for new index invalidation strategy
Yann Collet [Fri, 31 May 2019 23:50:04 +0000 (16:50 -0700)]
make double_fast compatible with new index invalidation strategy
Yann Collet [Fri, 31 May 2019 23:34:55 +0000 (16:34 -0700)]
Made fast strategy compatible with new offset validation strategy
fast mode does the same thing as before :
it pre-emptively invalidates any index that could lead to offset > maxDistance.
It's supposed to help speed.
But this logic is performed inside zstd_fast,
so that other strategies can select a different behavior.
Yann Collet [Fri, 31 May 2019 23:08:48 +0000 (16:08 -0700)]
extended exact window size to greedy/lazy modes
Yann Collet [Fri, 31 May 2019 22:55:12 +0000 (15:55 -0700)]
first implementation of small window size for btopt
noticeably improves compression ratio
when window size is small (< 18).
enwik7 level 19
windowLog `dev` `smallwlog` improvement
23 3.577 3.577 0.02%
22 3.536 3.538 0.06%
21 3.462 3.467 0.14%
20 3.364 3.377 0.39%
19 3.244 3.272 0.86%
18 3.110 3.166 1.80%
17 2.843 3.057 7.53%
16 2.724 2.943 8.04%
15 2.594 2.822 8.79%
14 2.456 2.686 9.36%
13 2.312 2.523 9.13%
12 2.162 2.361 9.20%
11 2.003 2.182 8.94%
Yann Collet [Fri, 31 May 2019 21:40:19 +0000 (14:40 -0700)]
Merge pull request #1623 from facebook/fullbench
fullbench minor improvements
Yann Collet [Thu, 30 May 2019 17:13:56 +0000 (10:13 -0700)]
consistency : changed constant name to kSampleSizeDefault
as suggested by @terrelln.
added <assert.h> include
Yann Collet [Wed, 29 May 2019 23:18:22 +0000 (16:18 -0700)]
define CONTROL, to ensure check cannot be disabled
assert() can be disabled with NDEBUG
Yann Collet [Wed, 29 May 2019 23:08:49 +0000 (16:08 -0700)]
fullbench : minor refactoring, for readability
Yann Collet [Wed, 29 May 2019 22:26:06 +0000 (15:26 -0700)]
fullbench: pass proper parameters in scenario 43
Yann Collet [Wed, 29 May 2019 01:26:21 +0000 (18:26 -0700)]
Merge pull request #1622 from facebook/nextToUpdate3
nextToUpdate3 does not need to be maintained outside of zstd_opt.c
Yann Collet [Wed, 29 May 2019 00:27:52 +0000 (17:27 -0700)]
fullbench 43: ensure context is freed after each usage
Yann Collet [Tue, 28 May 2019 23:50:49 +0000 (16:50 -0700)]
fullbench: added streaming with fresh CCtx scenario
worst case situation, where context must be recreated every time
but without knowledge of the input size
thus sizing the context for some large input.
Yann Collet [Tue, 28 May 2019 23:37:03 +0000 (16:37 -0700)]
fullbench can now select sample size with command `-B#`
Yann Collet [Tue, 28 May 2019 23:18:12 +0000 (16:18 -0700)]
removed nextToUpdate3 from ZSTD_window
it's now a local variable of ZSTD_compressBlock_opt()
Yann Collet [Tue, 28 May 2019 23:11:32 +0000 (16:11 -0700)]
get bt matches : made it a bit clearer which parameters are input and output
Yann Collet [Tue, 28 May 2019 22:26:52 +0000 (15:26 -0700)]
nextToUpdate3 does not need to be maintained outside of zstd_opt.c
It's re-synchronized with nextToUpdate at beginning of each block.
It only needs to be tracked from within zstd_opt block parser.
Made the logic clear, so that no code tried to maintain this variable.
An even better solution would be to make nextToUpdate3
an internal variable of ZSTD_compressBlock_opt_generic().
That would make it possible to remove it from ZSTD_matchState_t,
thus restricting its visibility to only where it's actually useful.
This would require deeper changes though,
since the matchState is the natural structure to transport parameters into and inside the parser.
Yann Collet [Tue, 28 May 2019 21:12:16 +0000 (14:12 -0700)]
complementary code comments
on variables used / impacted during maxDist check
Yann Collet [Tue, 28 May 2019 20:15:48 +0000 (13:15 -0700)]
added comments to better understand enforceMaxDist()
Michael Forney [Sun, 26 May 2019 10:18:39 +0000 (03:18 -0700)]
Skip --adapt and --rsyncable tests when built without thread support
These options require ZSTD_MULTITHREAD.
Jonathan Scott [Sun, 26 May 2019 00:29:04 +0000 (17:29 -0700)]
CMake: Check for existing custom target 'uninstall'
Felix Handte [Sat, 25 May 2019 00:59:11 +0000 (20:59 -0400)]
Merge pull request #1618 from felixhandte/zstgrep-f-flag
Handle `-f` Flag in `zstgrep`
W. Felix Handte [Fri, 24 May 2019 21:21:44 +0000 (17:21 -0400)]
Add Test
W. Felix Handte [Fri, 24 May 2019 20:55:59 +0000 (16:55 -0400)]
zstdgrep: Handle -f Flag
W. Felix Handte [Fri, 24 May 2019 20:55:43 +0000 (16:55 -0400)]
Build Manual
Tyler-Tran [Thu, 23 May 2019 01:57:50 +0000 (18:57 -0700)]
[dictBuilder] Be more specific than ERROR(generic) (#1616)
* Specify errors at a finer granularity than `ERROR(generic)`.
* Add tests for bad parameters in the dictionary builder.
Nick Terrell [Tue, 7 May 2019 00:12:03 +0000 (17:12 -0700)]
Merge pull request #1613 from neheb/patch-1
fileio: Disable BACKTRACE under uClibc
Rosen Penev [Mon, 6 May 2019 22:02:47 +0000 (15:02 -0700)]
fileio: Disable BACKTRACE under uClibc
uClibc does not support BACKTRACE. It also defines __GLIBC__ and minor as both 2.
This fixes compilation under such a setup.
Nick Terrell [Thu, 2 May 2019 22:13:50 +0000 (15:13 -0700)]
Merge pull request #1610 from terrelln/pool-test
[test] Fix poolTests deadlock and flakiness
Nick Terrell [Thu, 2 May 2019 21:35:25 +0000 (14:35 -0700)]
[tests] Only sleep 10ms in poolTests
Nick Terrell [Thu, 2 May 2019 20:23:41 +0000 (13:23 -0700)]
[test] Fix poolTests deadlock and flakiness
lzutao [Thu, 2 May 2019 19:35:37 +0000 (02:35 +0700)]
meson: Enable testing in CI (#1609)
* tests: Fix shellcheck warnings in playTests.sh
* tests: Do not use ../programs which is relative to tests dirs
This commit fixes error when running playTests.sh in Meson.
Mesonbuild runs out of tree, so ./datagen not in `zstd/tests` dir,
it lies in <mesonbuilddir>/tests. This leads to ../programs invalid.
* tests: Replace relative paths for zstd/tests dir
* playTests: Set shell options explicitly, not in shebang
* playTests: Replace echo -e with printf
* meson: Fix test-zstd
Use std=gnu99 to build and test just like `make test`.
* meson: Fix legacy test
* meson: Enable testing in CI
Run build under release mode for faster test time.
* meson: Increase timeout time for test-zstream
Nick Terrell [Tue, 30 Apr 2019 15:45:00 +0000 (08:45 -0700)]
Merge pull request #1602 from lzutao/meson
meson: Update default project version
Lzu Tao [Tue, 30 Apr 2019 06:12:00 +0000 (13:12 +0700)]
meson: Error out if fail to extracted version number
Nick Terrell [Tue, 30 Apr 2019 00:02:42 +0000 (17:02 -0700)]
Merge pull request #1604 from vejnar/dev
Make zstdcat to follow symbolic links
cev [Mon, 29 Apr 2019 22:47:47 +0000 (18:47 -0400)]
add test for zstdcat and zcat on symlink
Nick Terrell [Mon, 29 Apr 2019 20:45:58 +0000 (13:45 -0700)]
Merge pull request #1603 from sjnam/examples-test-fail
fails to "make test" in examples
cev [Sat, 27 Apr 2019 23:06:29 +0000 (19:06 -0400)]
set followLinks option true to cat, zcat and gzcat programs
sjnam [Sat, 27 Apr 2019 20:05:45 +0000 (05:05 +0900)]
fix test fail
Lzu Tao [Fri, 26 Apr 2019 18:42:22 +0000 (01:42 +0700)]
meson: Update default project version
* Update to use ninja v1.9.0 on CI
Nick Terrell [Thu, 25 Apr 2019 04:05:25 +0000 (21:05 -0700)]
Merge pull request #1600 from myzhang1029/long-tell
Fix #1591 - Not building on MinGW-W64
myzhang1029 [Wed, 24 Apr 2019 12:06:05 +0000 (20:06 +0800)]
Fix #1591 - Not building on MinGW-W64
Add a static function LONG_TELL for the forth #if branch
Nick Terrell [Tue, 23 Apr 2019 22:44:20 +0000 (15:44 -0700)]
Merge pull request #1598 from terrelln/decode-seq
[libzstd] Error if all sequence bits aren't consumed
Nick Terrell [Tue, 23 Apr 2019 21:22:16 +0000 (14:22 -0700)]
[libzstd] Add a ZSTD_STATIC_ASSERT for BIT_DStream_status
Nick Terrell [Tue, 23 Apr 2019 21:07:36 +0000 (14:07 -0700)]
[libzstd] Error if all sequence bits aren't consumed
Nick Terrell [Fri, 19 Apr 2019 19:23:50 +0000 (12:23 -0700)]
Merge pull request #1595 from terrelln/legacy-fix
[legacy] Fix ZSTDv0*_decodeSequence()
Nick Terrell [Fri, 19 Apr 2019 18:34:52 +0000 (11:34 -0700)]
[legacy] Fix ZSTDv0*_decodeSequence()
* Version <= 0.5 could read beyond the end of `dumps`, which points into
the input buffer.
* Check the validity of `dumps` before using it, if it is out of bounds
return garbage values. There is no return code for this function.
* Introduce `MEM_readLE24()` for simplicity, since I don't want to trust
that there is an extra byte after `dumps`.
Nick Terrell [Fri, 19 Apr 2019 00:29:32 +0000 (17:29 -0700)]
Merge pull request #1594 from terrelln/legacy-fix
[legacy] Fix Huffman jump table reads in v01 and v05
Nick Terrell [Thu, 18 Apr 2019 23:20:42 +0000 (16:20 -0700)]
[legacy] Fix Huffman jump table reads in v01 and v05