]>
git.ipfire.org Git - thirdparty/zstd.git/log
Przemyslaw Skibinski [Sat, 18 Mar 2017 10:19:09 +0000 (11:19 +0100)]
updated build of Windows packages
Przemyslaw Skibinski [Sat, 18 Mar 2017 10:16:21 +0000 (11:16 +0100)]
Merge remote-tracking branch 'refs/remotes/facebook/dev' into dev
Yann Collet [Fri, 17 Mar 2017 22:33:09 +0000 (15:33 -0700)]
fixed typo in server type
Yann Collet [Fri, 17 Mar 2017 21:26:17 +0000 (14:26 -0700)]
Merge branch 'dev' of github.com:facebook/zstd into dev
Yann Collet [Fri, 17 Mar 2017 21:25:57 +0000 (14:25 -0700)]
updated compression graph
Yann Collet [Fri, 17 Mar 2017 21:02:48 +0000 (14:02 -0700)]
Merge pull request #605 from iburinoc/term
Fix zstd not erroring on compressing to terminal without forceStdout
Sean Purcell [Fri, 17 Mar 2017 19:32:18 +0000 (12:32 -0700)]
Only run IS_CONSOLE tests with a TTY
Yann Collet [Thu, 16 Mar 2017 23:33:53 +0000 (16:33 -0700)]
fix minor details in man page
Sean Purcell [Thu, 16 Mar 2017 23:25:19 +0000 (16:25 -0700)]
Add tests for compressed data on console
Yann Collet [Thu, 16 Mar 2017 23:17:03 +0000 (16:17 -0700)]
Merge pull request #604 from iburinoc/manpage
Convert manpage to Markdown, convertible with ronn
Sean Purcell [Thu, 16 Mar 2017 23:06:03 +0000 (16:06 -0700)]
Fix zstd not erroring on compressing to terminal without forceStdout
Sean Purcell [Thu, 16 Mar 2017 22:33:21 +0000 (15:33 -0700)]
Convert manpage to Markdown, converted with ronn
Yann Collet [Thu, 16 Mar 2017 00:31:05 +0000 (17:31 -0700)]
Merge pull request #603 from iburinoc/slowfuzzer
Prevent fuzz testers from combining large dicts with high clevel
Sean Purcell [Wed, 15 Mar 2017 22:04:54 +0000 (15:04 -0700)]
Prevent fuzz testers from combining large dicts with high clevel
Yann Collet [Tue, 14 Mar 2017 21:08:41 +0000 (14:08 -0700)]
Merge pull request #602 from iburinoc/doc
Add functions missing from manual, and fix parameter alignment
Sean Purcell [Tue, 14 Mar 2017 18:24:09 +0000 (11:24 -0700)]
Add functions missing from manual, and fix parameter alignment
Yann Collet [Tue, 14 Mar 2017 11:20:12 +0000 (04:20 -0700)]
Merge branch 'dev' of github.com:facebook/zstd into dev
Yann Collet [Tue, 14 Mar 2017 11:19:51 +0000 (04:19 -0700)]
updated NEWS for v1.1.4
Yann Collet [Tue, 14 Mar 2017 05:00:03 +0000 (22:00 -0700)]
Merge pull request #601 from terrelln/nxz
Add xz and lzma support.
Yann Collet [Tue, 14 Mar 2017 02:10:40 +0000 (19:10 -0700)]
Merge pull request #600 from iburinoc/legacy
Add ability to control level of legacy support, and drop support for versions v01-v03
Nick Terrell [Tue, 14 Mar 2017 01:11:07 +0000 (18:11 -0700)]
Add xz and lzma support.
Finish feature started by @inikep.
* Add xz and lzma compression and decompression support to target `xzstd`.
* Fix bug in gzip decompression that silently accepted truncated files.
* Add gzip frame composition tests.
* Add xz/lzma compatibility tests.
* Add xz/lzma frame composition tests.
Sean Purcell [Tue, 14 Mar 2017 00:19:37 +0000 (17:19 -0700)]
Fix legacy support=0 case and accidental double include of version headers
Sean Purcell [Mon, 13 Mar 2017 21:44:08 +0000 (14:44 -0700)]
Update builds to not support legacy v01-v03
Sean Purcell [Mon, 13 Mar 2017 21:32:30 +0000 (14:32 -0700)]
ZSTD_LEGACY_SUPPORT defines lowest supported version
Yann Collet [Fri, 10 Mar 2017 19:46:53 +0000 (11:46 -0800)]
Merge pull request #598 from iburinoc/undef
Fix undefined behaviour in decompressor
Sean Purcell [Fri, 10 Mar 2017 18:34:45 +0000 (10:34 -0800)]
Change gotoDict type to uPtrDiff
Sean Purcell [Thu, 9 Mar 2017 19:54:34 +0000 (11:54 -0800)]
Fix undefined behaviour in decompressor
Yann Collet [Fri, 10 Mar 2017 02:44:17 +0000 (18:44 -0800)]
Merge pull request #597 from iburinoc/ci
Add medium tests on TravisCI
Yann Collet [Fri, 10 Mar 2017 02:36:45 +0000 (18:36 -0800)]
Merge pull request #596 from ldv-alt/dev
programs/Makefile: remove zstd-internal target
Sean Purcell [Fri, 10 Mar 2017 01:28:08 +0000 (17:28 -0800)]
Make signed integer overflow recoverable in UBsan
Sean Purcell [Thu, 9 Mar 2017 21:59:26 +0000 (13:59 -0800)]
Add testing description
Sean Purcell [Fri, 10 Mar 2017 00:05:10 +0000 (16:05 -0800)]
Make test times overwritable
Sean Purcell [Tue, 7 Mar 2017 20:08:15 +0000 (12:08 -0800)]
Update .travis.yml and Makefile for medium tests
Dmitry V. Levin [Thu, 9 Mar 2017 02:00:35 +0000 (02:00 +0000)]
programs/Makefile: remove zstd-internal target
zstd-internal was intended to be a helper target, but it doesn't help
at all, what it does in practice is a useless rebuild of zstd every time
"make zstd" is invoked.
Fixes: 030ac243a0f3 ("Changed Makefile to generate zstd with .gz support by default")
Yann Collet [Thu, 9 Mar 2017 00:13:31 +0000 (16:13 -0800)]
Merge pull request #595 from terrelln/macros
Remove 'mem.h' dependency from ZSTD_WINDOWLOG_MAX
Nick Terrell [Wed, 8 Mar 2017 23:40:13 +0000 (15:40 -0800)]
Remove 'mem.h' dependency from ZSTD_WINDOWLOG_MAX
Yann Collet [Wed, 8 Mar 2017 22:56:07 +0000 (14:56 -0800)]
Merge pull request #594 from terrelln/bugs
Small fixes
Nick Terrell [Wed, 8 Mar 2017 21:45:58 +0000 (13:45 -0800)]
Avoid '#define inline /* ... */'
Take definition of `FORCE_INLINE` from `zstd_internal.h`.
Nick Terrell [Wed, 8 Mar 2017 21:45:10 +0000 (13:45 -0800)]
Fix ZSTD_sizeof_CStream()
Yann Collet [Wed, 8 Mar 2017 02:31:38 +0000 (18:31 -0800)]
Merge pull request #593 from iburinoc/undef
Reduce point at which we reduce offsets to protect against UB
Sean Purcell [Wed, 8 Mar 2017 00:52:23 +0000 (16:52 -0800)]
Reduce point at which we reduce offsets to protect against UB
Yann Collet [Wed, 8 Mar 2017 00:24:54 +0000 (16:24 -0800)]
minor text refactor in readme
Yann Collet [Tue, 7 Mar 2017 21:51:33 +0000 (13:51 -0800)]
Merge pull request #592 from iburinoc/ci
Fix travis test broken by Makefile change
Sean Purcell [Tue, 7 Mar 2017 19:36:19 +0000 (11:36 -0800)]
Fix travis test broken by Makefile change
Yann Collet [Tue, 7 Mar 2017 07:29:26 +0000 (23:29 -0800)]
Merge pull request #590 from iburinoc/ci
Set up "short" tests on CircleCI
Sean Purcell [Tue, 7 Mar 2017 00:57:04 +0000 (16:57 -0800)]
Use test section
Yann Collet [Tue, 7 Mar 2017 01:24:34 +0000 (17:24 -0800)]
fixed lzbench link
Yann Collet [Tue, 7 Mar 2017 01:22:47 +0000 (17:22 -0800)]
fix : remove mempcpy line in bench
Yann Collet [Tue, 7 Mar 2017 01:20:44 +0000 (17:20 -0800)]
updated benchmark table
zstd v1.1.3, new station i7-6700K
Sean Purcell [Thu, 2 Mar 2017 00:10:26 +0000 (16:10 -0800)]
Add build targets to the Makefile, and update CircleCI tests
Yann Collet [Mon, 6 Mar 2017 05:18:25 +0000 (21:18 -0800)]
Merge branch 'dev' of github.com:facebook/zstd into dev
Yann Collet [Mon, 6 Mar 2017 05:17:32 +0000 (21:17 -0800)]
added -Wformat-security flag, as recommended by @pixelb
Yann Collet [Mon, 6 Mar 2017 05:07:20 +0000 (21:07 -0800)]
minor code refactor in HUF module
Yann Collet [Mon, 6 Mar 2017 05:06:13 +0000 (21:06 -0800)]
Merge pull request #588 from pixelb/fedora-warnings
support -Werror=format-security
Pádraig Brady [Mon, 6 Mar 2017 03:36:56 +0000 (19:36 -0800)]
support -Werror=format-security
Fedora now enables this option by default, resulting
in the following build failure:
Logging.h: In instantiation of
'void pzstd::Logger::operator()(int, const char*, Args ...)
Pzstd.cpp:413:48: required from here
Logging.h:46:17: error: format not a string literal and no format arguments
[-Werror=format-security]
std::fprintf(out_, fmt, args...);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
Yann Collet [Sat, 4 Mar 2017 03:38:56 +0000 (19:38 -0800)]
Merge pull request #586 from terrelln/repeat-heuristic
Always check Huffman tables for ZSTD_lazy+
Nick Terrell [Fri, 3 Mar 2017 20:30:24 +0000 (12:30 -0800)]
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.
Yann Collet [Fri, 3 Mar 2017 04:46:35 +0000 (20:46 -0800)]
Merge pull request #585 from terrelln/cover-leak
Fix COVER_optimizeTrainFromBuffer() resource leaks
Yann Collet [Fri, 3 Mar 2017 01:20:11 +0000 (17:20 -0800)]
Merge pull request #584 from terrelln/huff-repeat
Allow compressor to repeat Huffman tables
Yann Collet [Fri, 3 Mar 2017 01:14:57 +0000 (17:14 -0800)]
update NEWS on @iburinoc's 32-bits version improvement
Yann Collet [Fri, 3 Mar 2017 01:09:21 +0000 (17:09 -0800)]
disable prefetch-decode for 32-bits target
This decoder variant is detrimental to x86 architecture
likely due to register pressure.
Note that the variant is disabled for all 32-bits targets.
It's unclear if it would help for different architectures,
such as ARM, MIPS or PowerPC.
Yann Collet [Fri, 3 Mar 2017 00:42:50 +0000 (16:42 -0800)]
Merge pull request #582 from iburinoc/m32
Encode/decode offsets >= 32MB in 32-bits mode
Nick Terrell [Fri, 3 Mar 2017 00:38:07 +0000 (16:38 -0800)]
Use workspace for count and CTable
Nick Terrell [Thu, 2 Mar 2017 23:54:39 +0000 (15:54 -0800)]
Fix COVER_optimizeTrainFromBuffer() resource leaks
Thanks to @nemequ for reporting the resource leaks.
Sean Purcell [Thu, 2 Mar 2017 23:15:31 +0000 (15:15 -0800)]
Remove 'generic' inline strategy
Seems to avoid performance loss for compression.
Same strategy tested on decompression side, did not appear to improve
speed.
Sean Purcell [Thu, 2 Mar 2017 23:17:56 +0000 (15:17 -0800)]
Merge remote-tracking branch 'origin/dev' into m32
Nick Terrell [Thu, 2 Mar 2017 01:51:56 +0000 (17:51 -0800)]
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 |
Yann Collet [Thu, 2 Mar 2017 21:15:31 +0000 (13:15 -0800)]
Merge pull request #583 from terrelln/set-dictid
Set dictID to 0 for content only dictionaries
Nick Terrell [Thu, 2 Mar 2017 20:33:02 +0000 (12:33 -0800)]
Set dictID to 0 for content only dictionaries
Yann Collet [Thu, 2 Mar 2017 05:02:06 +0000 (21:02 -0800)]
fixed : build zstd cli after libzstd
Yann Collet [Thu, 2 Mar 2017 01:02:49 +0000 (17:02 -0800)]
make : added target shortest
shortest only run fast part of playTests.sh .
cc @iburinoc
Yann Collet [Thu, 2 Mar 2017 00:49:20 +0000 (16:49 -0800)]
added gzip tests
also : made sure zstd --format=gzip -V
would fail if gzip compatibility is not supported
Sean Purcell [Wed, 1 Mar 2017 22:36:25 +0000 (14:36 -0800)]
Offsets >= 32MB in 32-bits mode
Yann Collet [Wed, 1 Mar 2017 21:29:29 +0000 (13:29 -0800)]
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.
Yann Collet [Wed, 1 Mar 2017 19:33:25 +0000 (11:33 -0800)]
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.
Yann Collet [Wed, 1 Mar 2017 19:02:04 +0000 (11:02 -0800)]
Merge pull request #579 from iburinoc/multiframe
Check to ensure ddict isn't null before dereference
Yann Collet [Wed, 1 Mar 2017 18:59:51 +0000 (10:59 -0800)]
Merge pull request #580 from facebook/speedStream
Improve streaming decompression speed
Yann Collet [Wed, 1 Mar 2017 01:44:17 +0000 (17:44 -0800)]
updated NEWS for 1.1.4
cmake, performance
Yann Collet [Tue, 28 Feb 2017 23:32:21 +0000 (15:32 -0800)]
Merge pull request #575 from Majlen/cmake-improvement
Cmake improvement
Sean Purcell [Tue, 28 Feb 2017 23:28:29 +0000 (15:28 -0800)]
Check to ensure ddict isn't null before dereference
Yann Collet [Tue, 28 Feb 2017 23:21:28 +0000 (15:21 -0800)]
Merge pull request #578 from inikep/dev
decompression: --rm is silent when input is stdin
Przemyslaw Skibinski [Tue, 28 Feb 2017 16:27:41 +0000 (17:27 +0100)]
travis.yml: fixed pull_request
Yann Collet [Tue, 28 Feb 2017 10:12:42 +0000 (02:12 -0800)]
fixed multi frames
Milan Ševčík [Mon, 27 Feb 2017 13:44:49 +0000 (14:44 +0100)]
Added compile flags to pzstd
Definition NDEBUG from original Makefile
-Wno-shadow silences shadowing in initializers
Milan Ševčík [Mon, 27 Feb 2017 12:56:04 +0000 (13:56 +0100)]
-Wstrict-prototypes is not supported with C++
Milan Ševčík [Fri, 10 Feb 2017 11:29:55 +0000 (12:29 +0100)]
Improve handling of library symlinks.
Previous method was failing to remove the symlinks when make clean was
invoked and wasn't portable.
Milan Ševčík [Thu, 9 Feb 2017 14:11:05 +0000 (15:11 +0100)]
Add zstdmt target in cmake
Milan Ševčík [Thu, 9 Feb 2017 14:10:24 +0000 (15:10 +0100)]
Support building contrib utils from cmake
Yann Collet [Tue, 28 Feb 2017 09:15:28 +0000 (01:15 -0800)]
fixed decoding skippable frames
Yann Collet [Tue, 28 Feb 2017 09:02:46 +0000 (01:02 -0800)]
added test for decompression with NULL dict and NULL DDict
previous version of ZSTD_decompressMultiFrame() would fail that test
Przemyslaw Skibinski [Tue, 28 Feb 2017 08:42:37 +0000 (09:42 +0100)]
cli : fix : --rm is silent when input is stdin (decompression)
Przemyslaw Skibinski [Tue, 28 Feb 2017 08:41:23 +0000 (09:41 +0100)]
update gzip tests
Yann Collet [Tue, 28 Feb 2017 08:14:28 +0000 (00:14 -0800)]
Improved speed of ZSTD_decompressStream()
When ZSTD_decompressStream() detects
that there is enough space in dst
to complete decompression in a single pass,
delegates to ZSTD_decompress(),
for an extra ~5% speed boost
Przemyslaw Skibinski [Tue, 28 Feb 2017 07:20:53 +0000 (08:20 +0100)]
updated .travis.yml (2)
Przemyslaw Skibinski [Tue, 28 Feb 2017 07:16:49 +0000 (08:16 +0100)]
updated .travis.yml
Yann Collet [Tue, 28 Feb 2017 04:55:22 +0000 (20:55 -0800)]
Merge branch 'decompressStream' into dev
Yann Collet [Tue, 28 Feb 2017 04:54:42 +0000 (20:54 -0800)]
Merge pull request #573 from facebook/ddict
Improved DDict memory usage
Yann Collet [Tue, 28 Feb 2017 01:58:02 +0000 (17:58 -0800)]
fullbench : -i0 displays list of functions to bench
Yann Collet [Tue, 28 Feb 2017 00:09:20 +0000 (16:09 -0800)]
added test case : --rm on stdin
must remain silent (instead of failing)
Yann Collet [Mon, 27 Feb 2017 23:58:38 +0000 (15:58 -0800)]
Merge branch 'dev' of github.com:facebook/zstd into dev