Yann Collet
d985319337
Merge pull request #759 from terrelln/real-block-split
...
[libzstd] Pull CTables into sub-structure
2017-07-13 10:24:19 -07:00
Nick Terrell
de0414b736
[libzstd] Pull CTables into sub-structure
2017-07-12 19:49:19 -07:00
Yann Collet
16261e6951
buffer pool can be invoked from multiple threads
2017-07-11 14:14:07 -07:00
Yann Collet
0f4fc6c20a
fixed several conversion warnings
2017-07-07 17:13:12 -07:00
Yann Collet
f04deff4fc
fixed #718 , reported by @GregSlazinski, solution suggested by @mcmilk
2017-07-06 01:42:46 -07:00
Yann Collet
5a77361595
fixed wrong function name in comment
2017-07-03 15:21:24 -07:00
cyan4973
21fdf97e00
Merge branch 'dev' into fullbench
2017-07-01 07:01:08 -07:00
Yann Collet
d5c046c609
implemented shortcut for zstd_compress_generic() in MT mode
...
added ZSTDMT_compress_advanced() API
2017-06-30 14:51:01 -07:00
Yann Collet
7f40bb1c39
Merge pull request #742 from stellamplau/stack-space
...
Reduce stack usage of HUF_readDTableX4 and HUF_readDTableX2
2017-06-30 14:50:23 -07:00
Stella Lau
32df49e9f8
Fix typo
2017-06-30 12:56:24 -07:00
Stella Lau
b0513b519c
Add comment to HUF_DECOMPRESS_WORKSPACE_SIZE
2017-06-30 12:53:56 -07:00
Yann Collet
a3d9926c40
compression optimization opportunity
...
switch to single-pass mode directly into output buffer
when outputSize >= ZSTD_compressBound(inputSize).
Speed gains observed with fullbench (~+15% on level 1)
2017-06-29 14:44:49 -07:00
Stella Lau
99e315999c
Reduce stack usage of HUF_readDTableX4 and HUF_readDTableX2
2017-06-29 11:49:59 -07:00
Yann Collet
33a6639039
fixed ZSTD_refPrefix with Multithread-enabled CCtx
2017-06-28 11:09:43 -07:00
Yann Collet
7d3816183f
exposed ZSTD_MAGIC_DICTIONARY in zstd.h
...
makes it easier to explain ZSTD_dictMode
2017-06-27 13:50:34 -07:00
Yann Collet
7bd1a2900e
added ZSTD_dictMode_e to control dictionary loading mode
2017-06-21 11:50:33 -07:00
Yann Collet
c3bce24ef4
fixed potential dangling pointer, detected by @terrelln
2017-06-20 16:09:11 -07:00
Yann Collet
559ee82e90
fixed : calling ZSTD_compress_generic() to end-flush a stream in multiple steps
2017-06-16 11:58:21 -07:00
cyan4973
c59162e053
minor fix for -Wdocumentation
2017-06-05 00:12:13 -07:00
cyan4973
8bcbf42617
fixed g++ prototype mismatch
2017-06-04 23:52:00 -07:00
Yann Collet
8c910d2097
updated ZSTDMT streaming API
...
ZSTDMT streaming API is now similar
and has same capabilites as single-thread streaming API.
It makes it easier to blend them together.
2017-06-03 01:15:02 -07:00
Yann Collet
58e8d793e1
made debug definitions common within zstd_internal.h
2017-06-02 18:20:48 -07:00
Yann Collet
4effccbf56
zlib_wrapper's uncompress() uses ZSTD_isFrame() for routing
...
more generic and safer than using own routing for magic number comparison
2017-06-02 14:27:11 -07:00
Yann Collet
dcb7535352
ensure zlibwrapper uses ZSTD_malloc() and ZSTD_free()
...
which is compatible with { NULL, NULL, NULL }
2017-06-02 14:01:21 -07:00
Yann Collet
6056e4c3eb
added POOL_sizeof() for single-thread
2017-06-02 11:36:47 -07:00
Yann Collet
c4a5a21c5c
created ZSTDMT_sizeof_CCtx() and POOL_sizeof()
...
required by ZSTD_sizeofCCtx() while adding a ZSTDMT_CCtx*
2017-06-01 17:56:14 -07:00
Yann Collet
9a691e0f55
fixed visual warnings
2017-05-31 01:17:44 -07:00
Yann Collet
ae728a43b8
removed defaultCustomMem
...
now ZSTD_customCMem is promoted as new default.
Advantages : ZSTD_customCMem = { NULL, NULL, NULL},
so it's natural default after a memset.
ZSTD_customCMem is public constant
(defaultCustomMem was private only).
Also : makes it possible to introduce ZSTD_calloc(),
which can now default to stdlib's calloc()
when it detects system default.
Fixed zlibwrapper which depended on defaultCustomMem.
2017-05-30 17:11:39 -07:00
Yann Collet
44e45e8423
added ZSTDMT_createCCtx_advanced()
...
make it possible to use custom allocators
2017-05-30 16:12:06 -07:00
Yann Collet
b81f19ffce
move MEM_readMINMATCH() into zstd_opt.h
...
which is its only user.
Use case too narrow to belong to mem.h.
renamed to ZSTD_readMINMATCH()
2017-05-23 15:41:55 -07:00
Nick Terrell
a1280406b0
[libzstd] Allow users to define custom visibility
2017-05-19 18:01:59 -07:00
Yann Collet
bfff8999c5
added prototype ZSTD_versionString()
2017-05-16 16:12:23 -07:00
Jos Collin
05286fdd5a
lib/common: warning: this statement may fall through
...
The following warning appears during the build. Fixed the review comments too.
zstd/lib/common/bitstream.h: In function ‘BIT_initDStream’:
zstd/lib/common/bitstream.h:277:33: warning: this statement may fall through [-Wimplicit-fallthrough=]
case 7: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[6]) <<
(sizeof(bitD->bitContainer)*8 - 16);
Signed-off-by: Jos Collin <jcollin@redhat.com>
2017-05-11 09:10:02 +05:30
Nick Terrell
5f2c7213c7
Merge remote-tracking branch 'upstream/dev' into btopt
...
* upstream/dev: (305 commits)
added test for ZSTD_estimateCStreamSize()
changed variable name, for clarity
fixed ZSTD_estimateCStreamSize()
shortened ZSTD_createCStream_Advanced()
fixed symbols test
added ZSTD_estimateDStreamSize()
changed name frameParams into frameHeader
regroup memory usage function declarations
separated ZSTD_estimateCStreamSize() from ZSTD_estimateCCtxSize()
bumped version number
added ZSTD_estimateCDictSize() and ZSTD_estimateDDictSize()
Updated ZSTD_freeCCtx()
updated ZSTD_estimateCCtxSize()
Updated ZSTD_sizeof_CCtx()
merged CCtx and CStream as a single same object
cli : -d and -t do not stop after a failed decompression
added dev branch CircleCI badge
added dev branch Appveyor badge
keep dev branch status only
creates a binary archive without the `programs` directory
...
2017-05-10 16:49:58 -07:00
Yann Collet
d47709b6ea
Merge pull request #654 from iburinoc/splittable
...
[RFC] Splittable Format and API
2017-05-08 13:41:56 -07:00
Yann Collet
33c38b0925
fixed const in prototype, that Visual doesn't accept
2017-05-01 11:12:30 -07:00
Yann Collet
f39a6731ec
sync bitstream.h from fse library
2017-05-01 09:56:03 -07:00
Yann Collet
202082f285
sync bitstream from FSE project
...
add assert into unsafe *_fast() variants
2017-04-28 17:00:31 -07:00
Yann Collet
68a7d3d49a
added HUF_PUBLIC_API macro to huf.h
...
to make it possible to control symbol visibility.
Also : better separation and comments between "public" and "static" sections
2017-04-28 12:46:48 -07:00
Yann Collet
d3694e6c70
removed C4204
2017-04-27 14:29:35 -07:00
Yann Collet
69a54d138a
fixed compilation warning : declaration-after-statement
2017-04-27 01:11:26 -07:00
Yann Collet
e42afbc6fa
Comply with suggested comments by @terrelln
...
created FSE_CTABLE_SIZE() and FSE_DTABLE_SIZE()
2017-04-26 11:39:35 -07:00
Sean Purcell
7d37ca1d5b
Merge remote-tracking branch 'origin/dev' into splittable
2017-04-21 14:18:39 -07:00
Yann Collet
e6fa70a0a1
reorganized ZSTD_resetCCtx_internal()
...
clearer separation between variables and buffers
clearer buffers category
kept static buffers at the beginning, favoring cache locality
(it will be easier to add FSE tables there later)
This break a few assumptions that hashTable was always at the beginning.
This is fixed.
And remaining assumptions (namely that tables stand next to each other in memory)
are now tested with assert.
2017-04-20 17:28:31 -07:00
Sean Purcell
0f7bd772e6
Update seekable API to simplify IO
2017-04-18 16:48:30 -07:00
Yann Collet
4f818182b8
clarified frame parameters for ZSTD_compress*_usingCDict()
...
created ZSTD_compressBegin_usingCDict_internal(),
which gives direct control to frame Parameters.
ZSTD_resetCStream_internal() now points into it.
2017-04-17 18:29:06 -07:00
Yann Collet
c47c68f6ca
proper evaluation of Huffman CTable size
2017-04-17 16:14:21 -07:00
Sean Purcell
5ee1135f30
s/chunk/frame/
2017-04-12 11:15:50 -07:00
Yann Collet
20d5e03893
content size is controlled at bufferless level
...
so it's active for all entry points
Also : added relevant test (wrong content size) in fuzzer
2017-04-11 18:34:02 -07:00
Sean Purcell
d048fefef7
Move seekable format content to /contrib
2017-04-11 14:38:56 -07:00
Sean Purcell
c3ba15e48f
Seekable compression demo
2017-04-11 13:53:09 -07:00
Nick Terrell
16a739cab0
Switch call of FSE_count() to FSE_count_wksp()
2017-04-04 16:17:21 -07:00
Yann Collet
274f59919d
Changed memory strategy to __packed for gcc
...
Method 1 __packed is always as good or better than memcpy().
But it's not portable, as it depends on compiler extension.
For gcc, __pakced directive works fine.
Furthermore, gcc has serious performance issues with memcpy() on ARM 32 bits.
See #620
2017-03-30 12:52:14 -07:00
Nick Terrell
5152fb2cb2
Convert all tabs to spaces
2017-03-29 18:51:58 -07:00
Yann Collet
f332ece468
dictBuilder fails to create dictionary on certain input
...
Properly expressed with an error code (see zstd_errors.h)
and a cli return code != 0
2017-03-23 16:24:02 -07:00
Sean Purcell
8fe5c6862c
Fix undefined behaviour in decompressor
2017-03-10 10:17:42 -08:00
Nick Terrell
f35ef5c8e9
Whitespace only: tabs to spaces
2017-03-09 12:51:33 -08:00
Yann Collet
1f2c95c5f3
minor code refactor in HUF module
2017-03-05 21:07:20 -08:00
Nick Terrell
54c4babd8f
Always check Huffman tables for ZSTD_lazy+
...
The compressor always reuses the existing Huffman table if the literals
size is at most 1 KiB. If the compression strategy is `ZSTD_lazy` or
stronger always check to see if reusing the previous table or creating
a new table is better.
This doesn't yet weigh in decompression speed. I don't want to add any
heuristics there until I have real data to work with to ensure that the
heuristic works for at least one use case, preferably more.
2017-03-03 16:49:38 -08:00
Yann Collet
f44b55c18d
Merge pull request #584 from terrelln/huff-repeat
...
Allow compressor to repeat Huffman tables
2017-03-02 17:20:11 -08:00
Nick Terrell
d051cd5b43
Use workspace for count and CTable
2017-03-02 16:38:07 -08:00
Sean Purcell
3d95925a59
Merge remote-tracking branch 'origin/dev' into m32
2017-03-02 15:17:56 -08:00
Nick Terrell
a419777eb1
Allow compressor to repeat Huffman tables
...
* Compressor saves most recently used Huffman table and reuses it
if it produces better results.
* I attempted to preserve CPU usage profile.
I intentionally left all of the existing heuristics in place.
There is only a speed difference on the second block and later.
When compressing large enough blocks (say >= 4 KiB) there is
no significant difference in compression speed.
Dictionary compression of one block is the same speed for blocks
with literals <= 1 KiB, and after that the difference is not
very significant.
* In the synthetic data, with blocks 10 KB or smaller, most blocks
can't use repeated tables because the previous block did not
contain a symbol that the current block contains.
Once blocks are about 12 KB or more, most previous blocks have
valid Huffman tables for the current block, and the compression
ratio and decompression speed jumped.
* In silesia blocks as small as 4KB can frequently reuse the
previous Huffman table (85%), but it isn't as profitable, and
the previous Huffman table only gets used about 3% of the time.
* Microbenchmarks show that `HUF_validateCTable()` takes ~55 ns
and `HUF_estimateCompressedSize()` takes ~35 ns.
They are decently well optimized, the first versions took 90 ns
and 120 ns respectively. `HUF_validateCTable()` could be twice as
fast, if we cast the `HUF_CElt*` to a `U32*` and compare to 0.
However, `U32` has an alignment of 4 instead of 2, so I think that
might be undefined behavior.
* I've ran `zstreamtest` compiled normally, with UASAN and with MSAN
for 4 hours each.
The worst case for the speed difference is a bunch of small blocks
in the same frame. I modified `bench.c` to compress the input in a
single frame but with blocks of the given block size, set by `-B`.
Benchmarks on level 1:
| Program | Block size | Corpus | Ratio | Compression MB/s | Decompression MB/s |
|-----------|------------|-----------|-------|------------------|--------------------|
| zstd.base | 256 | synthetic | 2.364 | 110.0 | 297.0 |
| zstd | 256 | synthetic | 2.367 | 108.9 | 297.0 |
| zstd.base | 256 | silesia | 2.204 | 93.8 | 415.7 |
| zstd | 256 | silesia | 2.204 | 93.4 | 415.7 |
| zstd.base | 512 | synthetic | 2.594 | 144.2 | 420.0 |
| zstd | 512 | synthetic | 2.599 | 141.5 | 425.7 |
| zstd.base | 512 | silesia | 2.358 | 118.4 | 432.6 |
| zstd | 512 | silesia | 2.358 | 119.8 | 432.6 |
| zstd.base | 1024 | synthetic | 2.790 | 192.3 | 594.1 |
| zstd | 1024 | synthetic | 2.794 | 192.3 | 600.0 |
| zstd.base | 1024 | silesia | 2.524 | 148.2 | 464.2 |
| zstd | 1024 | silesia | 2.525 | 148.2 | 467.6 |
| zstd.base | 4096 | synthetic | 3.023 | 300.0 | 1000.0 |
| zstd | 4096 | synthetic | 3.024 | 300.0 | 1010.1 |
| zstd.base | 4096 | silesia | 2.779 | 223.1 | 623.5 |
| zstd | 4096 | silesia | 2.779 | 223.1 | 636.0 |
| zstd.base | 16384 | synthetic | 3.131 | 350.0 | 1150.1 |
| zstd | 16384 | synthetic | 3.152 | 350.0 | 1630.3 |
| zstd.base | 16384 | silesia | 2.871 | 296.5 | 883.3 |
| zstd | 16384 | silesia | 2.872 | 294.4 | 898.3 |
2017-03-02 13:27:52 -08:00
Sean Purcell
d44703d145
Offsets >= 32MB in 32-bits mode
2017-03-01 16:27:56 -08:00
Yann Collet
76f0494089
xxhash can be included twice in any order
...
Previously,
followed by :
would fail to include the static definitions,
because the second include was simply skipped by guard macro.
Now it works as intended :
the missing static part is included during the second include.
2017-03-01 13:29:29 -08:00
Yann Collet
4bcc69b761
solves warnings when compiling with global XXH_STATIC_LINKING_ONLY
...
XXH_STATIC_LINKING_ONLY protection macro is intended to be triggered just before the include.
The main idea is to keep this setting local :
user module shall explicitly understand and accept the static linking restriction
which becomes transparent when triggering the macro at project level.
Global definition also triggers redefinition warnings for user modules which do locally define the macro.
This new version compiles lib and cli without warning when the macro is set globally.
That's not a scenario to be recommended, since it trades a local effect for a global one,
but it was easy enough to provide from zstd side.
2017-03-01 11:33:25 -08:00
Yann Collet
0b9b894b2d
reduced ZSTD_DDict memory usage
...
saved 128 KB
2017-02-27 00:27:30 -08:00
Anders Oleson
517577bf53
spelling fixes in comments
...
i.e. occurred labeled Huffman
2017-02-20 12:08:59 -08:00
Yann Collet
2252d29a5a
Merge branch 'dev' of github.com:facebook/zstd into dev
2017-02-15 12:00:50 -08:00
Yann Collet
4596037042
updated fse version
...
feature minor refactoring (removing FSE_abs())
also : fix a few minor issues recently introduced in examples
2017-02-15 12:00:03 -08:00
Yann Collet
f0b9a8dddb
Merge pull request #547 from inikep/dev11
...
Avoid fseek()'s 2GiB barrier with MacOS and *BSD
2017-02-14 12:29:00 -08:00
ds77
08e6a88a97
avoid empty translation unit warning without #pragma
2017-02-14 00:46:47 +01:00
Przemyslaw Skibinski
09c8e5390d
__builtin_bswap requires gcc 4.3+
2017-02-13 12:45:53 +01:00
Sean Purcell
e0b3265e87
Fix ZSTD_getErrorString and add tests
2017-02-08 17:28:49 -08:00
Yann Collet
cc3d1bc262
Merge pull request #525 from terrelln/covermt
...
Multithreaded COVER dictionary training
2017-01-30 10:15:33 -08:00
Nick Terrell
b42dd27ef5
Add include guards and extern C
2017-01-27 16:00:19 -08:00
Nick Terrell
e628eaf87a
Fix pool.c threading.h import
2017-01-26 15:29:10 -08:00
cyan4973
2e3b659ae1
fixed minor warnings (Visual, conversion, doxygen)
2017-01-20 14:43:09 -08:00
cyan4973
5fba09fa41
updated util's time for Windows compatibility
...
Correctly measures time on Posix systems when running with
Multi-threading
Todo : check Windows measurement under multi-threading
2017-01-20 12:57:31 -08:00
Yann Collet
0f984d94c4
changed MT enabling macro to ZSTD_MULTITHREAD
2017-01-19 14:05:07 -08:00
Yann Collet
32dfae6f98
fixed Multi-threaded compression
...
MT compression generates a single frame.
Multi-threading operates by breaking the frames into independent sections.
But from a decoder perspective, there is no difference :
it's just a suite of blocks.
Problem is, decoder preserves repCodes from previous block to start decoding next block.
This is also valid between sections, since they are no different than changing block.
Previous version would incorrectly initialize repcodes to their default value at the beginning of each section.
When using them, there was a mismatch between encoder (default values) and decoder (values from previous block).
This change ensures that repcodes won't be used at the beginning of a new section.
It works by setting them to 0.
This only works with regular (single segment) variants : extDict variants will fail !
Fortunately, sections beyond the 1st one belong to this category.
To be checked : btopt strategy.
This change was only validated from fast to btlazy2 strategies.
2017-01-19 10:32:55 -08:00
Yann Collet
f1cb55192c
fixed linux warnings
2017-01-02 01:11:55 +01:00
Nick Terrell
bb13387d7d
Fix pool for threading.h
2016-12-31 19:10:47 -05:00
Nick Terrell
4204e03e77
Add threading.h condition variables
2016-12-31 19:10:29 -05:00
Yann Collet
3b9d434356
extended ZSTDMT code support for non-MT systems and WIN32 (preliminary)
2016-12-31 16:32:19 +01:00
Yann Collet
3b29dbd9e8
new zstdmt version using generic treadpool
2016-12-31 06:04:25 +01:00
Yann Collet
c6a6417458
bench correctly measures time for multi-threaded compression (posix only)
2016-12-31 03:31:26 +01:00
Nick Terrell
e777a5be6b
Add a thread pool for ZSTDMT and COVER
2016-12-29 23:39:44 -08:00
Yann Collet
0819abe3c1
added ZSTD_createDDict_byReference() body
2016-12-21 19:25:15 +01:00
Nick Terrell
8de46ab51a
Export all API functions
2016-12-16 13:27:30 -08:00
Yann Collet
5397a66b19
minor BMI version check
2016-12-13 15:21:06 +01:00
Nick Terrell
064a143520
Fix execSequence wildcopy undefined behavior
...
execSequence relied on pointer overflow to handle cases where
`sequence.matchLength < 8`. Instead of passing an `size_t` to
wildcopy, pass a `ptrdiff_t`.
2016-12-12 19:01:23 -08:00
Yann Collet
825dffbc43
moved zbuff source files into lib/deprecated
2016-12-05 19:28:19 -08:00
Przemyslaw Skibinski
821bf1febc
fixed Doxygen trailing comment
2016-12-02 16:13:41 +01:00
Yann Collet
b89af20353
reduced table sizes for HUF_readDTableX4
2016-12-01 18:24:59 -08:00
Yann Collet
a0d742b1e4
introduced HUF_buildCTable_wksp(), to reduce stack memory usage
2016-12-01 17:47:30 -08:00
Yann Collet
e928f7e16d
introduced ext_wksp variants of count to reduce stack memory usage
2016-12-01 16:13:35 -08:00
Yann Collet
5e00b848a8
FSE_compress_wksp() uses less stack space
2016-11-30 16:46:13 -08:00
Yann Collet
d79a9a00d9
Introduced FSE_compress_wksp() and FSE_buildCTable_wksp() to reduce stack memory usage
2016-11-30 15:52:20 -08:00
Yann Collet
766431909f
introduced FSE_decompress_wksp(), to use less stack space
2016-11-30 12:36:45 -08:00
Yann Collet
167c494748
Merge branch 'dev' of github.com:facebook/zstd into dev
2016-11-29 14:05:15 -08:00
Yann Collet
52e136ed3d
long decoder compatible with round and separate buffers
2016-11-28 19:59:11 -08:00
Przemyslaw Skibinski
9ca65af810
zstd_opt.h: improved price function
2016-11-23 17:22:54 +01:00
Yann Collet
0d761dbe95
Merge pull request #453 from inikep/dev11
...
fullbench-dll
2016-11-16 15:45:30 -08:00
Yann Collet
52afb3993e
zbuff API now generates deprecation warnings
2016-11-16 08:50:54 -08:00
Przemyslaw Skibinski
179555c1d1
working fullbench-dll
2016-11-15 18:05:46 +01:00
Yann Collet
2115724c22
Merge pull request #430 from terrelln/exec-sequences
...
ZSTD_execSequence() accepts match in last 7 bytes
2016-10-28 10:45:05 -07:00
Nick Terrell
eb7873a048
ZSTD_execSequence() accepts match in last 7 bytes
...
The zstd reference compressor will not emit a match in the last 7
bytes of a block. The decompressor will also not accept a match
in the last 7 bytes. This patch makes the decompressor accept a
match in the last 7 bytes.
2016-10-25 21:24:15 -07:00
Nick Terrell
d760529a05
Fix stack buffer overrun when weightTotal == 0
...
If `weightTotal == 0`, then `BIT_highbit32(weightTotal)` is
undefined behavior in the case that it calls `__builtin_clz()`.
If `tableLog == HUF_TABLELOG_ABSOLUTEMAX` then we will access one
byte beyond the end of the buffer.
2016-10-19 11:39:11 -07:00
Nick Terrell
ccfcc643da
Check if dict is empty before reading first byte
2016-10-17 11:46:03 -07:00
Yann Collet
5d919e7ac3
added ZSTD_error_frameParameter_windowTooLarge ( #403 )
2016-10-12 17:29:24 -07:00
Yann Collet
ef2357d0d3
created error_private.c, so that a single list of error strings get included
2016-10-11 17:24:50 -07:00
Yann Collet
a17fd7312a
changed error_public.h into zstd_errors.h
2016-10-11 16:41:09 -07:00
Yann Collet
18b51b99c0
sync fse
2016-10-11 08:21:09 -07:00
Yann Collet
51f4d566c2
small decompression speed boost for very small data
2016-09-22 15:57:28 +02:00
Yann Collet
95d07d7447
introduced CHECK_E
2016-09-06 16:38:51 +02:00
Yann Collet
3e21ec5b01
introduced CHECK_F
2016-09-06 15:36:19 +02:00
Yann Collet
5c956d593c
FORCE_INLINE common definition
2016-09-06 15:05:19 +02:00
Yann Collet
1563bfeabc
fixing FORCE_INLINE for older compilers ( #330 )
2016-09-02 11:44:21 -07:00
David Lam
e10f7f3dcb
merge
2016-08-30 12:03:36 -07:00
Yann Collet
4ded9e591c
added boilerplate
2016-08-30 11:06:28 -07:00
David Lam
da9d3b7057
Cleanup some errors in typedef comments and remove duplicated HOWTO from zbuff_decompress.c
2016-08-29 17:31:51 -07:00
Yann Collet
23b6e05d8e
ZSTD_malloc() and ZSTD_free(), to simplify customMem
2016-08-28 21:05:43 -07:00
Yann Collet
4bf317dd00
first version supporting legacy streams (transparent decoding)
2016-08-28 07:43:34 -07:00
Yann Collet
87c18b2ebd
fixed multiple minor warnings for XCode
2016-08-26 01:43:47 +02:00
inikep
a3a47ec4d0
Merge remote-tracking branch 'refs/remotes/Cyan4973/dev' into Other
2016-08-24 21:25:49 +02:00
inikep
e416e30019
remove unnecessary comments
2016-08-24 17:32:09 +02:00
inikep
4e90f6c1e0
removed ZSTD_LOG_ENCODE and ZSTD_LOG_BLOCK
2016-08-24 17:24:11 +02:00
inikep
83388e109f
removed ZSTD_LOG_PARSER
2016-08-24 17:22:20 +02:00
inikep
8a36f8527c
removed stats in debug mode
2016-08-24 17:19:12 +02:00
Yann Collet
17e482efdd
added ZSTD_setDStreamParameter()
2016-08-23 16:58:10 +02:00
Yann Collet
0cfe2ec2fd
sync fse version
2016-08-20 00:26:26 +02:00
inikep
5f49eba512
added usage of rep[0]-1 for the optimal parser
2016-08-10 15:01:53 +02:00
inikep
48849f86f0
fixed compilation with Intel Compiler with Windows
2016-08-10 14:26:35 +02:00
Yann Collet
1ea5622a32
updated xxhash
2016-08-10 09:40:08 +02:00
Yann Collet
666398e7ed
added : xxhash namespace enforced from xxhash.h.
...
added : xxhash namespace test.
removed : -DXXH_NAMESPACE
2016-08-10 08:16:51 +02:00
Yann Collet
8ded0b84aa
update xxhash to v0.6.2
2016-08-10 07:40:40 +02:00
Yann Collet
280f9a8754
minor comment
2016-08-08 00:44:00 +02:00
Yann Collet
8cebfd1d26
fix attempt on test-zstd-speed
2016-07-31 01:59:23 +02:00
Yann Collet
c0ce4f1211
slightly improved compression speed
2016-07-30 00:55:13 +02:00
Yann Collet
ed57d8530a
new seqStore
2016-07-29 21:22:17 +02:00
Yann Collet
c00d30fbe4
Merge pull request #264 from inikep/dev08
...
Dev08
2016-07-29 17:42:30 +02:00
Yann Collet
6a82f0f8bf
minor comments
2016-07-29 00:55:45 +02:00
Yann Collet
ffa7d0ac1e
clarified comment
2016-07-28 21:01:17 +02:00
Yann Collet
60ba31c570
zbuff uses ZSTD_compressEnd()
2016-07-28 19:55:09 +02:00
Yann Collet
e7bf9156d1
Clarified API comments, from suggestions by Bryan O'Sullivan
2016-07-28 05:00:57 +02:00
Yann Collet
c991cc1828
new frame end, 32-bits checksums
2016-07-28 00:55:43 +02:00
Yann Collet
c154d9d6a2
better support for large dictionaries (> 128 KB)
2016-07-27 14:37:00 +02:00
inikep
003c7a8568
optimal parser: removed ZSTD_REP_INIT
2016-07-27 11:07:13 +02:00
Yann Collet
d50f9db3ea
Improved speed on clang and gcc -O2, thanks to @ebiggers ! ( #263 )
2016-07-26 21:30:35 +02:00
Yann Collet
cbc5e9dc19
fixes oob read
2016-07-24 18:02:04 +02:00
Yann Collet
38b75ddeb2
removed special case all-1 huffman distribution
2016-07-24 15:35:59 +02:00
Yann Collet
7ed5e33b89
minor comment changes
2016-07-24 14:26:11 +02:00
Yann Collet
f8e7b5363f
unified encoding types
2016-07-23 16:31:49 +02:00
Yann Collet
571a59034a
changed enccoding type order : raw, rle, compressed, repeat-stats
2016-07-23 15:52:05 +02:00
Yann Collet
6fa05a2371
cBlockSize uses little-endian convention
2016-07-22 14:37:09 +02:00
Yann Collet
d5c5a77990
minor comments clarifications
2016-07-20 13:35:14 +02:00
Yann Collet
85f3919960
moved zstd.h
to /lib
2016-07-17 20:42:21 +02:00
Yann Collet
9375590462
update version to v0.7.5
2016-07-17 16:44:18 +02:00
Yann Collet
e557fd5e92
minor compression level corrections
2016-07-17 16:21:37 +02:00
Yann Collet
d54b2d23b4
minor static assert for 32/64 bits system. Suggested by @ebiggers
2016-07-17 15:53:18 +02:00
Yann Collet
961b6a0e34
ZSTD_compressBlock() limits block size depending on windowLog parameter
2016-07-15 11:58:49 +02:00
Yann Collet
8847238cac
simplified ZSTD_estimateCCtxSize()
2016-07-14 17:05:38 +02:00
Yann Collet
45dc35628c
first version of doubleFast
2016-07-12 09:47:31 +02:00
Yann Collet
d158c35e9f
added ZSTD_estimateDCtxSize()
2016-07-11 13:46:25 +02:00
Yann Collet
8e0ee681b8
added ZSTD_sizeofDCtx()
2016-07-11 13:09:52 +02:00
Yann Collet
3ae543ce75
added ZSTD_estimateCCtxSize()
2016-07-11 03:12:17 +02:00
Yann Collet
25c506601c
promote ZSTD_getDecompressedSize() to stable API
2016-07-10 01:46:18 +02:00
Yann Collet
3b6ae77e15
comment clarification
2016-07-08 23:42:22 +02:00
Yann Collet
ed3845d3fa
introduced ZSTD_WINDOWLOG_MAX_32 ( #239 ), suggested by @GregSlazinski
2016-07-08 12:57:10 +02:00
Yann Collet
e72efeb0a1
removed "error_public.h" dependency from "zstd.h"
2016-07-07 14:17:40 +02:00
Yann Collet
e09d38e921
removed mem.h
dependency from zbuff.h
(experimental section)
2016-07-07 13:17:37 +02:00
Yann Collet
f323bf7d32
added : ZSTD_getDecompressedSize()
2016-07-07 13:14:21 +02:00
Yann Collet
52c04fe58f
removed mem.h
dependency from zstd.h
(experimental section)
2016-07-07 11:53:18 +02:00
Yann Collet
f246cf5423
ZSTD_decompress_usingDDict() compatible with Legacy mode
2016-07-06 20:32:27 +02:00
Yann Collet
d916c908e0
updated doc
2016-07-04 00:42:58 +02:00
Yann Collet
698cb63305
Updated specifications
2016-07-03 18:49:35 +02:00
Yann Collet
2fa9904844
update specification and comments
2016-07-01 20:55:28 +02:00
Yann Collet
6c6e1751f6
use ZSTD_getParams() to simplify code
2016-06-27 15:28:45 +02:00
Yann Collet
3d2cd7f816
Introduced ZSTD_getParams()
...
bench now uses ZSTD_createCDict_advanced()
2016-06-27 15:12:26 +02:00
Yann Collet
529d9c7dee
updated version to v0.7.2
2016-06-27 10:03:10 +02:00
Yann Collet
63b5e7a2ea
Improved comments
2016-06-26 17:42:15 +02:00
Yann Collet
3755eb8fea
fixed strict-aliasing warning on gcc6
2016-06-22 13:15:53 +02:00
Yann Collet
a49e066b26
clarified comments on ZSTD_compressContinue()
2016-06-21 11:54:03 +02:00
Yann Collet
d4f38d0dcd
updated library to v0.7.1
2016-06-21 10:15:43 +02:00
Yann Collet
510cff3570
minor comment change
2016-06-16 16:39:55 +02:00
Yann Collet
52a0622beb
RepsCodes are saved into Dict
...
(uncomplete : need decompression to regenerate them)
2016-06-16 01:05:04 +02:00
Yann Collet
45c03c564f
fixed corruption with inter-blocks repeated offsets
2016-06-14 13:46:11 +02:00
Yann Collet
4266c0a2fd
adding inter-blocks rep-offsets
2016-06-14 01:49:25 +02:00
Yann Collet
18c8f79f3e
fixed gcc warning on uninitialized structure variable
2016-06-12 22:51:52 +02:00
Yann Collet
cd98f93cff
Fixed decompression issue with invalid data
2016-06-11 23:26:22 +02:00
Yann Collet
237ad4beb3
Added single-stream decompression variant using external DTable
2016-06-11 01:46:03 +02:00
Yann Collet
289bbd52e5
Updated huff0
2016-06-11 01:31:54 +02:00
Yann Collet
0974f681a4
completed .gitignore
2016-06-10 14:44:16 +02:00
Yann Collet
9dd12742f3
litBlockType_t
is an enum
2016-06-10 00:12:26 +02:00
Yann Collet
662a541431
updated huff0 - now generates a common HUF_DTable type for all decoding tables
2016-06-08 11:11:02 +02:00
Yann Collet
302fb53a76
Removed ZSTD_*_usingPrepared?Ctx()
declaration from public space
2016-06-07 12:16:49 +02:00
Yann Collet
81e13ef7cf
first implementation of the new dictionary API (untested)
2016-06-07 00:51:51 +02:00
Yann Collet
673f0d7cdc
new frame format, allowing custom window size
2016-06-06 00:26:38 +02:00
Yann Collet
89703d20fb
reduced dependencies
2016-06-05 01:50:33 +02:00
Yann Collet
a91ca620cf
removed HUF_readStats()
from public space
2016-06-05 01:33:55 +02:00
Yann Collet
d0e2cd15cb
Merged fse_static
into fse.h
. Now requires FSE_STATIC_LINKING_ONLY
macro.
2016-06-05 00:58:01 +02:00
Yann Collet
130fe11394
merged huf_static.h
into huf.h
. Requires HUF_STATIC_LINKING_ONLY
macro.
2016-06-05 00:42:28 +02:00
Yann Collet
49bb0041af
removed ZSTD_highbit()
from zstd_internal.h
, as it is only used by zstd_compress.c
2016-06-04 20:17:38 +02:00
Yann Collet
d3b7f8d21f
Merged zstd_static.h
into zstd.h
. Now requires ZSTD_STATIC_LINKING_ONLY
macro
2016-06-04 19:47:02 +02:00
Yann Collet
ac110a1f21
Removed ZBUFF internal util function from public area
2016-06-04 19:16:49 +02:00
Yann Collet
5347aee8f7
merged zbuff_static.h
into zbuff.h
. Now requires ZBUFF_STATIC_LINKING_ONLY
macro
2016-06-04 19:12:48 +02:00
inikep
2a74609b90
zlibWrapper: ZWRAP_createCCtx and ZWRAP_freeCCtx use custom memory allocation functions
2016-06-03 14:53:51 +02:00
inikep
3763c77f6b
defaultCustomNULL replaced with defaultCustomMem
2016-06-03 13:28:20 +02:00
inikep
db2f540414
added defaultCustomNULL
2016-06-03 12:56:56 +02:00
inikep
b74a468fad
Merge remote-tracking branch 'refs/remotes/Cyan4973/dev070' into dev070
2016-06-02 22:09:09 +02:00
inikep
ff9114aee3
zlibWrapper: added support for custom memory allocation functions
2016-06-02 16:52:36 +02:00
inikep
c4807f4d2f
default custom allocation functions moved to zstd_internal.h
2016-06-02 15:11:39 +02:00
inikep
2866951558
opaque parameter for custom memory allocation functions
2016-06-02 13:04:18 +02:00
inikep
9242816b56
fparamsPtr->windowLog==0 means that a frame is skippable
2016-06-01 18:47:04 +02:00
Yann Collet
70d1301d6e
Changed ZSTD_adjustCParams()
prototype
...
`ZSTD_adjustCParams()` is now automatically invoked at the end of `ZSTD_getCParams()`
2016-06-01 18:45:34 +02:00
Yann Collet
83c3f4427c
upgraded zbufftest to also test advanced frame parameters no/checksum no/dictID
2016-06-01 17:44:53 +02:00
inikep
5c2771710d
Merge remote-tracking branch 'refs/remotes/Cyan4973/dev070' into dev070
...
# Conflicts:
# .gitignore
# lib/decompress/zstd_decompress.c
# programs/zbufftest.c
2016-06-01 09:16:11 +02:00
Yann Collet
8e3a36a6db
decompression validates frame content checksum
2016-06-01 00:18:28 +02:00
inikep
a6b942018d
Merge remote-tracking branch 'refs/remotes/origin/dev' into dev070
...
# Conflicts:
# .travis.yml
# Makefile
# lib/common/zstd_static.h
# programs/Makefile
# projects/VS2008/zstd/zstd.vcproj
# projects/VS2008/zstdlib/zstdlib.vcproj
# projects/cmake/lib/CMakeLists.txt
# projects/cmake/programs/CMakeLists.txt
2016-06-01 00:07:09 +02:00
Yann Collet
f2a3b6e7b4
added : frame content checksum
2016-05-31 22:23:45 +02:00
inikep
f772bf54a5
support for skippable frames
2016-05-31 12:43:46 +02:00
Yann Collet
c0a9bf3c2e
minor code refactoring
2016-05-30 04:48:32 +02:00
Yann Collet
c46fb924df
added dictionary ID (incomplete)
2016-05-29 05:01:04 +02:00
Yann Collet
0c5e8b17ad
moved xxhash to lib/common
2016-05-29 01:06:30 +02:00
inikep
957823f56f
zstdcli: -r (operate recursively on directories) works with dictBuilder and compression
2016-05-25 15:30:55 +02:00
inikep
e75909ef93
ZBUFF_createCCtx_advanced moved to zbuff_static.h
2016-05-25 11:31:16 +02:00
inikep
02c244bf78
Merge remote-tracking branch 'refs/remotes/Cyan4973/dev' into dev
2016-05-24 17:15:04 +02:00
inikep
fb5df613cf
zstd_stats.h included only in debug mode
2016-05-24 15:36:37 +02:00
inikep
71dd67cf57
fullbench: tests for ZBUFF_createCCtx_advanced and ZBUFF_createDCtx_advanced
2016-05-24 10:57:14 +02:00
inikep
13ba880b49
added ZBUFF_createCCtx_advanced and ZBUFF_createDCtx_advanced
2016-05-23 17:04:23 +02:00
inikep
107e243195
added ZSTD_createDCtx_advanced
2016-05-23 16:24:52 +02:00
inikep
50e82c015d
added ZSTD_createCCtx_advanced
2016-05-23 15:49:09 +02:00
inikep
35b891c5b0
zstd_stats.h updated to v0.6
2016-05-20 19:42:20 +02:00
Yann Collet
f22a0d653d
huff0 dynamic reduction
2016-05-20 14:36:36 +02:00
Yann Collet
de4d4da52d
changed version to 0.6.2
...
removed make-controlled version (now used from zstd.h)
removed std=c99 by default
added : c90/gno90/c99/gnu99/c11 tests
2016-05-20 12:20:12 +02:00
Yann Collet
78aa05228a
fixed Visual warning in debug mode
2016-05-17 14:30:19 +02:00
Yann Collet
d9b3cca4d3
restore openVMS support (detected by @thatsafunnyname)
2016-05-13 12:43:36 +02:00
inikep
63ecd747de
added common/entropy_common.c
2016-05-13 11:27:56 +02:00
Yann Collet
ccd6e86d45
improved decoding speed by inlining x_isError() functions
2016-05-12 15:55:26 +02:00
Yann Collet
16871680e3
minor refactor : more accurate variable scope
2016-05-12 14:27:00 +02:00
Yann Collet
1ceb5a9295
restored DStream init
...
due to strange speed regressions and warnins on gcc 5.3
2016-05-12 13:50:13 +02:00
Yann Collet
ce27e85209
fixed clang conversion warning
2016-05-11 18:55:27 +02:00
Yann Collet
1032fbe714
update FSE library
2016-05-11 18:30:24 +02:00
Yann Collet
249ae0ca99
better big-endian / little-endian r/w support
2016-05-11 16:38:18 +02:00
Yann Collet
c75e4c25e8
Added : ZSTD_getErrorString(), to get error string from error enum ( #168 )
2016-05-10 17:47:11 +02:00
Yann Collet
b3a9938d0c
Merge pull request #182 from inikep/dev
...
support for Visual Studio 2012, 2013, 2015
2016-05-10 17:18:12 +02:00
inikep
ed9a08538c
Merge remote-tracking branch 'refs/remotes/Cyan4973/dev' into dev
...
# Conflicts:
# lib/common/util.h
# programs/paramgrill.c
# visual/2013/fullbench/fullbench.vcxproj.filters
# visual/2013/fuzzer/fuzzer.vcxproj.filters
2016-05-10 13:20:01 +02:00
Yann Collet
918b934a26
minor comment update
2016-05-10 07:00:07 +02:00
inikep
aaaf923a17
common/util.h moved to programs/util.h
...
decompress/fse_decompress.c moved to common/
2016-05-09 16:19:25 +02:00