Commit Graph
3927 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
Yann ColletandGitHub 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
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
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
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
Paul Cruz 31a9ed9883 updated const values, added more comments 2017-07-25 14:53:40 -07:00
Yann ColletandGitHub 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
Nick Terrell ae20d413da [libzstd] Fix CHECK_V_F macros 2017-07-25 12:52:01 -07:00
Paul Cruz e02c79f833 started using decrease cooldown so that compression level would not decrease several times in a row 2017-07-25 11:16:27 -07:00
Paul Cruz 85d7c919f6 created independent function for controlling how completion relates to compression level change 2017-07-25 10:32:14 -07:00
Paul Cruz 6f1e260edd added mechanism for getting rid of spikes 2017-07-25 10:01:10 -07:00
Paul Cruz 700758d676 added help statement for -p, switched it to hide progress bar now that progress bar is default 2017-07-24 16:26:20 -07:00
Paul Cruz df3754b6ed add quiet option, make progress bar default 2017-07-24 16:19:07 -07:00
Paul Cruz 4dc83ca64c compression thread should take measurements independently based on whether or not the create/write thread will actually bottleneck performance 2017-07-24 15:14:58 -07:00
Paul Cruz 0ee3f8c2f8 adding more debug 2017-07-24 15:06:11 -07:00
Paul Cruz 8328f8192a updating debug statements again 2017-07-24 14:40:23 -07:00
Paul Cruz d3d759301f changing position of endline for debug 2017-07-24 13:47:39 -07:00
Paul Cruz e508f632d6 updated comments and debug statements 2017-07-24 11:01:36 -07:00
Paul Cruz 483d936b87 reduced competition for completion mutex by separating mutex use based on which values is updated 2017-07-23 14:09:16 -07:00
Paul Cruz 880f08d104 change how completion is measured in compression thread 2017-07-23 10:18:54 -07:00
Paul Cruz 08d9e42ec6 removed useless measurements 2017-07-21 18:02:55 -07:00
Paul Cruz 95bef759b3 switched over to model where reading only waits on compression thread 2017-07-21 17:49:39 -07:00
Paul Cruz 6455ec482c taking the maximum of the completion level reads in order to determine which one was waiting more 2017-07-21 16:05:01 -07:00
Paul Cruz 05fe8dd47c updating debug statements 2017-07-21 14:06:24 -07:00
Paul Cruz db109f8fef measure multiple completion levels during each wait 2017-07-21 13:38:24 -07:00
Paul Cruz 721c6a8b97 added bounding to compression level change 2017-07-21 09:30:24 -07:00
Paul Cruz e929d3b787 added priority decision making for adapt compression level 2017-07-21 09:26:35 -07:00
Paul Cruz 9259c7afa4 semi working version that stabilizes 2017-07-20 18:45:33 -07:00
Yann Collet 38ba7002f2 fixed minor warning on unused variable in shell function 2017-07-20 18:39:04 -07:00
Paul Cruz 82e488770c fixed bug where writeSize could be zero 2017-07-20 16:38:02 -07:00
Paul Cruz a19916425d reworked adaptCompressionLevel to only account for completion information 2017-07-20 16:19:16 -07:00
Yann Collet a90b16e150 Visual blind fix 2 2017-07-20 15:57:55 -07:00
Yann Collet 4542d7118c Merge branch 'dev' of github.com:facebook/zstd into dev 2017-07-20 15:12:21 -07:00
Yann Collet 5e6c5203f3 fixed fuzzer test for non OS-X platforms 2017-07-20 15:11:56 -07:00
Yann ColletandGitHub 57251f52cf Merge pull request #773 from terrelln/lk-v3
[linux] Update patches for v3
2017-07-20 14:47:26 -07:00
Nick Terrell 7d3ac0710d [linux] Update patches for v3 2017-07-20 13:33:55 -07:00
Paul Cruz 7ab758a640 changed how completion is actually sampled 2017-07-20 10:53:51 -07:00
Yann Collet b4d460f32c pool.c : blindfix for Visual warnings 2017-07-20 01:13:14 -07:00
Paul Cruz dcf609f835 make adaptCompressionLevel oscillate less 2017-07-19 16:36:33 -07:00