Commit Graph

4315 Commits

Author SHA1 Message Date
Nick Terrell
abe12b3399 [libzstd] Fix bug in Huffman decompresser
The zstd format specification doesn't enforce that Huffman compressed
literals (including the table) have to be smaller than the uncompressed
literals. The compressor will never Huffman compress literals if the
compressed size is larger than the uncompressed size. The decompresser
doesn't accept Huffman compressed literals with 4 streams whose compressed
size is at least as large as the uncompressed size.

* Make the decompresser accept Huffman compressed literals whose size
  increases.
* Add a test case that exposes the bug. The compressed file has to be
  statically generated, since the compressor won't normally produce files
  that expose the bug.
2017-08-07 12:37:48 -07:00
Stella Lau
e1abc2a367 Switch the sleep function to UTIL_sleepMilli 2017-08-07 11:49:13 -07:00
Nick Terrell
308047eb5d Fix compression failure on incompressible data
If the destination buffer is the minimum allowed size in
`ZSTD_compressSequences()` (2^17), then if the block isn't compressible
compression might fail with `dstSize_tooSmall`, when it should instead emit
a raw uncompressed block.

Additionally, `ZSTD_compressLiterals()` implicitly called
`ZSTD_noCompressLiterals()` if Huffman compression failed. Make that
explicit.
2017-08-07 11:45:24 -07:00
Nick Terrell
7393b49fbd [linux-kernel] Update patches for v4 2017-08-04 16:57:03 -07:00
Paul Cruz
01237e3b35 changed multi to zstd-adaptive in the help menu 2017-08-03 15:13:49 -07:00
Stella Lau
1e366f9dea Add test for deadlock 2017-08-02 11:27:50 -07:00
Paul Cruz
8be7bba08c added mutex for compression level to avoid data race 2017-08-02 10:27:33 -07:00
Stella Lau
73ba58955f Signal after finishing job when queueSize=0 2017-08-01 20:12:06 -07:00
Paul Cruz
69ef22c0ac added detach statements to prevent resource leak 2017-08-01 17:36:13 -07:00
Stella Lau
1d76da1d87 Replace marker with queueEmpty variable and update pool.h comment 2017-08-01 12:30:16 -07:00
Paul Cruz
f8c7b191e7 Merge branch 'adapt-approach-4' into dev 2017-07-31 15:42:57 -07:00
Paul Cruz
0295737ad7 change signal to broadcast for jobCompressed condition varaible since multiple threads waiting 2017-07-31 13:43:03 -07:00
Paul Cruz
cf92221671 Merge remote-tracking branch 'upstream/dev' into dev 2017-07-31 11:43:40 -07:00
Paul Cruz
c2f1bda8a1 Merge branch 'adapt-approach-4' into dev 2017-07-31 11:43:01 -07:00
Paul Cruz
9ea7df03de add install target in makefile 2017-07-31 11:04:17 -07:00
Stella Lau
5adceeed01 Allow queueSize=0 in pool.c and update poolTests 2017-07-31 10:10:16 -07:00
Paul Cruz
f60cd3f99b print defaults and range, remove EXT 2017-07-31 09:47:09 -07:00
Paul Cruz
e22b60cb76 removed ternary operation, added assert statement, check to make sure initial compression level is within bounds 2017-07-28 17:46:51 -07:00
Paul Cruz
cb9af53e77 delete empty line 2017-07-28 17:28:25 -07:00
Paul Cruz
51788225db remove exe extension from makefile, reinclude pthread flag 2017-07-28 17:27:36 -07:00
Yann Collet
ee27f6937c Merge pull request #758 from stellamplau/ldm
Add working prototype of a long distance matcher
2017-07-28 17:07:21 -07:00
Paul Cruz
4d904ac800 add flags for multithreading 2017-07-28 16:12:58 -07:00
Paul Cruz
0f4cb67b00 add tests for compression bounds, fix another warning 2017-07-28 15:55:02 -07:00
Paul Cruz
ff54fced64 patched style errors, add ability to bound compression level variation 2017-07-28 15:30:46 -07:00
Stella Lau
8fae41c412 Return error code in verify() and minor code cleanup 2017-07-27 17:14:05 -07:00
Stella Lau
1294a4a897 Fix typo 2017-07-27 15:49:46 -07:00
Stella Lau
627621839c Add checks in initialization code 2017-07-27 15:37:37 -07:00
Yann Collet
e94fd71bbd Merge branch 'dev' of github.com:facebook/zstd into dev 2017-07-27 13:49:46 -07:00
Stella Lau
c105f605e6 Update README 2017-07-27 11:11:35 -07:00
Yann Collet
e1222544be Merge pull request #753 from paulcruz74/adapt-approach-3
adaptive compression v1
2017-07-27 10:00:10 -07:00
Paul Cruz
2320e7378a remove unused variable, add documentation for context fields 2017-07-26 17:02:47 -07:00
Stella Lau
9eaf3d22d0 Allow HASH_ONLY_EVERY_LOG to be configured in ldm.h 2017-07-26 16:43:25 -07:00
Paul Cruz
ab5a78547e fix leaky abstraction regarding measuring completion 2017-07-26 16:40:05 -07:00
Paul Cruz
715f36ca81 added definitions for conversion constants, moved forced compression check to top of adaptCompressionLevel, used ZSTD_BLOCKSIZE_MAX 2017-07-26 15:52:15 -07:00
Paul Cruz
6c1c1242fc set the window log value before performing compression 2017-07-26 14:29:59 -07:00
Stella Lau
40759bade9 Add README and clean up code 2017-07-26 13:24:03 -07:00
Paul Cruz
a959cc881a moved reset of completion to right after wait 2017-07-26 10:34:48 -07:00
Paul Cruz
305d5ee70f change to >= convergence counter 2017-07-26 10:20:29 -07:00
Paul Cruz
be92a38d6a decrease completion requirements for change, move create thread wait, merge cases where compression thread should wait 2017-07-26 10:05:10 -07:00
Stella Lau
e9161637b2 Allow parameters to be modified from a separate file 2017-07-25 18:13:27 -07:00
Paul Cruz
0b18d21e03 building on readme, added another help tip in the menu 2017-07-25 17:47:02 -07:00
Paul Cruz
7cc74e0b27 adding more to readme 2017-07-25 16:55:16 -07:00
Paul Cruz
8dbb07d822 updated progress bar with better representation of time, added const 2017-07-25 16:03:43 -07:00
Paul Cruz
9a132707af changing time units to seconds 2017-07-25 15:26:26 -07:00
Stella Lau
629c300118 Rename and remove unneeded files 2017-07-25 15:17:36 -07:00
Paul Cruz
31a9ed9883 updated const values, added more comments 2017-07-25 14:53:40 -07:00
Yann Collet
6466fd3400 Merge pull request #776 from terrelln/dev
[libzstd] Fix CHECK_V_F() macro
2017-07-25 14:39:32 -07:00
Paul Cruz
5cfbf609a4 removed old debug statements no longer being used 2017-07-25 14:31:48 -07:00
Paul Cruz
0882cd1981 progress bar -- don't print num jobs, time elapsed shown in seconds 2017-07-25 14:26:55 -07:00
Paul Cruz
310c12d07e moved debug statements to a compiler flag 2017-07-25 14:08:39 -07:00