Commit Graph

6565 Commits

Author SHA1 Message Date
Yann Collet
837ff9d206
Merge pull request #1647 from LeeYoung624/cmake_bug_fix
CMake bug fix: didn't install zstdless and zstdgrep.
2019-06-14 17:32:05 -07:00
Yann Collet
1166782eb7
Merge pull request #1640 from felixhandte/lstat-macro-guard
Protect lstat() With Better Macro Guard
2019-06-14 17:30:03 -07:00
Yann Collet
9af909bf35
Merge pull request #1624 from facebook/smallwlog
Improves compression ratio for small windowLog
2019-06-14 17:28:21 -07:00
Yann Collet
018df9c9b1
Merge pull request #1650 from scharan/RemoveExportsForStaticLibrary
Remove ZSTD_DLL_EXPORT=1 for static lib
2019-06-14 17:09:00 -07:00
Yann Collet
b0592024e2
Merge pull request #1644 from chungy/chmod_600
[programs] set chmod 600 after opening destination file
2019-06-13 17:25:31 -07:00
Sai Charan Koduru
f547dca9e3 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.
2019-06-12 12:26:36 -07:00
LeeYoung624
a4c0c27410 Install zstdless & zstdgrep as 'PROGRAMS' in CMake 2019-06-12 09:57:28 +08:00
Felix Handte
344f942573
Merge pull request #1620 from michaelforney/test-no-threads
Skip --adapt and --rsyncable tests when built without thread support
2019-06-11 15:05:25 -04:00
Nick Terrell
81276c4ee4
Merge pull request #1646 from terrelln/oss-fuzz
[fuzz] Remove max_len from the options
2019-06-10 22:13:16 -07:00
Yann Collet
c601622aa7
Merge pull request #1619 from j301scott/dev
CMake: Check for existing custom target 'uninstall'
2019-06-10 11:56:49 -07:00
Nick Terrell
6810dd6191 [fuzz] Remove max_len from the options 2019-06-10 11:05:45 -07:00
W. Felix Handte
d8970199f8 Add Contbuild Test for C99 Build 2019-06-10 11:22:45 -04:00
Felix Handte
e79dbb8074
Merge pull request #1642 from Absotively/dev
VS2010 project settings improvements
2019-06-10 10:39:25 -04:00
Mike Swanson
af80f6dfac [programs] Don’t try to chmod a dst file if it can’t be opened
Repairs an oversight in my last commit, thanks @Cyan4973
2019-06-09 01:52:45 -07:00
Mike Swanson
3968160a91 [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
2019-06-08 21:54:02 -07:00
Jen Pollock
176a543dde In VS2010+, turn off assembler output for libzstd & libzstd-dll, and don't export functions from libzstd 2019-06-07 17:21:51 -06:00
W. Felix Handte
d2c48042e6 Switch Macro Guarding lstat() 2019-06-07 15:32:28 -04:00
W. Felix Handte
b878bd08dd Clean Up Temp Files Produced By playTests.sh 2019-06-07 15:32:28 -04:00
Nick Terrell
d06c15cc89
Merge pull request #1635 from terrelln/opt-opt
[libzstd] Optimize ZSTD_insertBt1() for repetitive data
2019-06-06 13:15:23 -07:00
Nick Terrell
f3800ba073 [regression] Update results.csv 2019-06-05 20:40:52 -07:00
Nick Terrell
cdb9481e38 [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.
2019-06-05 20:34:00 -07:00
Yann Collet
c0eb6c9c81
Merge pull request #1632 from ephiepark/dev
CircleCI : use custom Docker Image with pre-installed dependencies
2019-06-05 12:30:21 -07:00
Felix Handte
015985c1f9
Merge pull request #1633 from yk-tanigawa/patch-1
Update README.md
2019-06-05 14:55:19 -04:00
Yosuke Tanigawa
f46a3603c9
Update README.md
Fix minor typo in the documentation.
2019-06-05 09:11:21 -07:00
Ephraim Park
286394aa9b Merge branch 'dev' of https://github.com/ephiepark/zstd into dev 2019-06-04 21:14:20 -07:00
Ephraim Park
c96535f67e circleci : remove install dependencies command from config.yml 2019-06-04 21:13:40 -07:00
Ephraim Park
3e9572bfa9 circleci : use custom docker image with installations 2019-06-04 21:13:40 -07:00
Ephraim Park
f1bf281715
Merge pull request #2 from ephiepark/circleci
CircleCI : use custom Docker Image with pre-installed dependencies
2019-06-04 20:53:29 -07:00
Yann Collet
c6ca65ab78
Merge pull request #1631 from ephiepark/dev
zstdcli : expose cpu load indicator for each file on -vv mode
2019-06-04 15:14:35 -07:00
Yann Collet
61d912f3ff
Merge pull request #1629 from facebook/streamSize
Added comments on I/O buffer sizes for streaming
2019-06-04 12:38:43 -07:00
Ephraim Park
a6a7f08eaf circleci : remove install dependencies command from config.yml 2019-06-04 12:18:33 -07:00
Ephraim Park
a371df534d circleci : use custom docker image with installations 2019-06-04 11:05:42 -07:00
Yann Collet
b3af1873a0 better title formatting for html documentation
must pay attention to /** and /*! patterns.
2019-06-04 10:35:40 -07:00
Yann Collet
b5c98fbfd0 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 .
2019-06-04 10:26:16 -07:00
Ephraim Park
e498bb64b6 zstdcli : align output message with previous message 2019-06-04 09:42:18 -07:00
Ephraim Park
a38601f05a zstdcli : remove extra semicolon 2019-06-04 09:25:16 -07:00
Ephraim Park
ef2c836955 zstdcli : trying to fix declaration after statement 2019-06-04 09:23:49 -07:00
Ephraim Park
5fe974261b zstdcli : moving cpu load calculation from FIO_compressFilename_dstFile to FIO_compressFilename_internal 2019-06-04 09:04:35 -07:00
Ephraim Park
2841c79e87 zstdcli : fixing mixed declarations and code error 2019-06-03 17:36:09 -07:00
Ephraim Park
43d463eccb zstdcli : moving start time and cpu initialization after potential prompt 2019-06-03 17:31:14 -07:00
Ephraim Park
5029ebce2f zstdcli : exposing cpu load indicator for each file on -vv mode 2019-06-03 14:38:40 -07:00
Yann Collet
80d6ccea79 removed UINT32_MAX
apparently not guaranteed on all platforms,
replaced by UINT_MAX.
2019-05-31 17:27:07 -07:00
Yann Collet
fce4df3ab7 fixed wrong assert in double_fast 2019-05-31 17:06:28 -07:00
Yann Collet
a968099038 minor code cleaning for new index invalidation strategy 2019-05-31 16:52:37 -07:00
Yann Collet
d605f482c7 make double_fast compatible with new index invalidation strategy 2019-05-31 16:50:04 -07:00
Yann Collet
a30febaeeb 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.
2019-05-31 16:34:55 -07:00
Yann Collet
58adb1059f extended exact window size to greedy/lazy modes 2019-05-31 16:08:48 -07:00
Yann Collet
bc601bdc6d 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%
2019-05-31 15:55:12 -07:00
Yann Collet
b13a9207f9
Merge pull request #1623 from facebook/fullbench
fullbench minor improvements
2019-05-31 14:40:19 -07:00
Yann Collet
78056a3e9c consistency : changed constant name to kSampleSizeDefault
as suggested by @terrelln.

added <assert.h> include
2019-05-30 10:13:56 -07:00