Yann Collet
2108decb41
Fixed a nasty corruption bug
...
recently introduce into the new dictionary mode.
The bug could be reproduced with this command :
./zstreamtest -v --opaqueapi --no-big-tests -s4092 -t639
error was in function ZSTD_count_2segments() :
the beginning of the 2nd segment corresponds to prefixStart
and not the beginning of the current block (istart == src).
This would result in comparing the wrong byte.
2018-06-01 18:54:34 -07:00
W. Felix Handte
d9c7e67125
Assert that Dict and Current Window are Adjacent in Index Space
2018-05-23 17:53:03 -04:00
W. Felix Handte
298d24fa57
Make loadedDictEnd an Index, not the Dict Len
2018-05-23 17:53:03 -04:00
W. Felix Handte
7ef85e0618
Fixes in re Comments
2018-05-23 17:53:03 -04:00
W. Felix Handte
9c92223468
Avoid Undefined Behavior in Match Ptr Calculation
2018-05-23 17:53:03 -04:00
W. Felix Handte
95bdf20a87
Moar Renames
2018-05-23 17:53:03 -04:00
W. Felix Handte
b05ae9b608
Refine ip Initialization to Avoid ARM Weirdness
2018-05-23 17:53:03 -04:00
W. Felix Handte
1a7b34ef28
Use New Index Invariant to Simplify Conditionals
2018-05-23 17:53:03 -04:00
W. Felix Handte
d005e5daf4
Whitespace Fix
2018-05-23 17:53:03 -04:00
W. Felix Handte
154eb09419
Switch to Original Match Calc for noDict Repcode Check
2018-05-23 17:53:03 -04:00
W. Felix Handte
191fc74a51
Rename 'hasDict' to 'dictMode'
2018-05-23 17:53:03 -04:00
W. Felix Handte
ae4fcf7816
Respond to PR Comments; Formatting/Style/Lint Fixes
2018-05-23 17:53:03 -04:00
W. Felix Handte
ca26cecc7a
Rename and Reformat
2018-05-23 17:53:03 -04:00
W. Felix Handte
c31ee3c7f8
Fix Rep Code Initialization
2018-05-23 17:53:03 -04:00
W. Felix Handte
b67196f30d
Coalesce hasDictMatchState and extDict Checks into One Enum and Rename Stuff
2018-05-23 17:53:03 -04:00
W. Felix Handte
265c2869d1
Split Wrapper Functions to Cause Inlining
2018-05-23 17:53:03 -04:00
W. Felix Handte
6929964d65
Add bounds check in repcode tests
2018-05-23 17:53:03 -04:00
W. Felix Handte
70a537d1d7
Initial Repcode Check Support for Ext Dict Ctx
2018-05-23 17:53:03 -04:00
W. Felix Handte
8d24ff0353
Preliminary Support in ZSTD_compressBlock_fast_generic() for Ext Dict Ctx
2018-05-23 17:53:03 -04:00
Nick Terrell
295ab0dbfa
Only load extra table positions for CDicts
...
Zstdmt uses prefixes to load the overlap between segments. Loading extra
positions makes compression non-deterministic, depending on the previous
job the context was used for. Since loading extra position takes extra
time as well, only do it when creating a `ZSTD_CDict`.
Fixes #1077 .
2018-04-02 14:41:30 -07:00
Yann Collet
a146ee04ae
added negative compression levels
...
negative compression level trade compression ratio for more compression speed.
They turn off huffman compression of literals,
and use row 0 as baseline with a stepSize = -cLevel.
added associated test in fuzzer
also added : new advanced parameter ZSTD_p_literalCompression
2018-03-11 05:21:53 -07:00
Nick Terrell
7e5e226cbf
Split the window state into substructure
2018-02-26 13:29:57 -08:00
Yann Collet
5188749e1c
ensure compression parameters are updated when only compression level is changed
2018-02-02 16:31:20 -08:00
Nick Terrell
887cd4e35e
Split ZSTD_CCtx into smaller sub-structures
2018-01-16 11:17:50 -08:00
Nick Terrell
9a211d1f05
Load more dictionary positions into table if empty
...
If the hash table is empty load positions into the hash table
that we would otherwise skip.
| Level | Data Set | Improvement |
|-------|--------------|-------------|
| 1 | github | 0.44% |
| 1 | hg-changelog | 0.13% |
| 1 | hg-commands | 1.28% |
| 1 | hg-manifest | 0.70% |
| 3 | github | 0.74% |
| 3 | hg-changelog | 0.87% |
| 3 | hg-commands | 1.74% |
| 3 | hg-manifest | 0.23% |
2018-01-12 16:17:22 -08:00
Yann Collet
ee441d5d2b
renamed zstd_compress.h into zstd_compress_internal.h
...
to emphasize the fact that all definitions it contains
must remain private, accross lib/compress modules.
2017-11-07 16:15:23 -08:00
Stella Lau
eb3327c10a
Merge branch 'dev' of https://github.com/facebook/zstd into ldm-mergeDev
2017-09-11 15:00:01 -07:00
Yann Collet
3128e03be6
updated license header
...
to clarify dual-license meaning as "or"
2017-09-08 00:09:23 -07:00
Stella Lau
eeff55dfa8
Merge remote-tracking branch 'upstream/dev' into ldm-mergeDev
2017-09-06 15:56:32 -07:00
Nick Terrell
721726d688
Split parsers out of zstd_compress.c
2017-09-05 17:10:25 -07:00