]>
git.ipfire.org Git - thirdparty/zstd.git/log
Sean Purcell [Tue, 21 Mar 2017 20:44:33 +0000 (13:44 -0700)]
CMake: Fix version parsing and allow Unix flags on Clang
Yann Collet [Tue, 21 Mar 2017 18:23:27 +0000 (11:23 -0700)]
Merge pull request #611 from Majlen/cmake-improvement
Further cmake improvement
Milan Ševčík [Tue, 21 Mar 2017 12:00:05 +0000 (13:00 +0100)]
Remove multithreading support by default on non UNIX platforms
Milan Ševčík [Mon, 20 Mar 2017 21:58:02 +0000 (22:58 +0100)]
Install zstdcat and unzstd symlinks by cmake
Milan Ševčík [Mon, 20 Mar 2017 14:57:08 +0000 (15:57 +0100)]
Add build of new cmake branches to Makefile
Milan Ševčík [Mon, 20 Mar 2017 14:47:28 +0000 (15:47 +0100)]
Added options for building programs, static library and tests
Milan Ševčík [Mon, 20 Mar 2017 14:47:02 +0000 (15:47 +0100)]
Install forgotten zstdmt tool and zstd.1 man page
Milan Ševčík [Fri, 17 Mar 2017 14:36:37 +0000 (15:36 +0100)]
Add_extra_compilation_flags macro needs to run before adding sources
Also adding comments in the top-level CMakeLists.txt
Milan Ševčík [Fri, 17 Mar 2017 13:42:44 +0000 (14:42 +0100)]
Test new cmake stuff
Milan Ševčík [Fri, 17 Mar 2017 13:27:01 +0000 (14:27 +0100)]
Check for pthreads library
Milan Ševčík [Fri, 17 Mar 2017 13:14:46 +0000 (14:14 +0100)]
Much easier way of installing libraries with correct names
Milan Ševčík [Fri, 17 Mar 2017 13:13:47 +0000 (14:13 +0100)]
Install everything, not only libraries
Milan Ševčík [Fri, 17 Mar 2017 13:12:28 +0000 (14:12 +0100)]
Use shared library in programs
Milan Ševčík [Thu, 16 Mar 2017 21:59:11 +0000 (22:59 +0100)]
Fix cmake install prefix with cmake-3.x
Milan Ševčík [Thu, 16 Mar 2017 15:24:33 +0000 (16:24 +0100)]
Refactored AddExtraCompilationFlags
- Easier addition of new flags
- Removed flags not used by default
- Removed implicit PIC flag for all targets
Milan Ševčík [Thu, 16 Mar 2017 13:09:39 +0000 (14:09 +0100)]
.gitignore only build directory
Milan Ševčík [Thu, 16 Mar 2017 13:08:35 +0000 (14:08 +0100)]
Add build documentation by gen_html
Milan Ševčík [Thu, 16 Mar 2017 13:08:13 +0000 (14:08 +0100)]
Cleanup lib rules
Milan Ševčík [Thu, 16 Mar 2017 13:06:49 +0000 (14:06 +0100)]
Move GetLibraryVersion function to its own module file
Milan Ševčík [Thu, 16 Mar 2017 13:03:54 +0000 (14:03 +0100)]
Improve resolving ROOT_DIR
Yann Collet [Tue, 21 Mar 2017 02:52:26 +0000 (19:52 -0700)]
Merge pull request #613 from iburinoc/decodecorpus
Fix various compile errors/warnings with decodecorpus
Sean Purcell [Mon, 20 Mar 2017 23:02:24 +0000 (16:02 -0700)]
Fix decodecorpus clang compile errors
Sean Purcell [Mon, 20 Mar 2017 19:38:19 +0000 (12:38 -0700)]
Fix windows compiler warnings for decodecorpus
Yann Collet [Mon, 20 Mar 2017 20:36:01 +0000 (13:36 -0700)]
Merge pull request #610 from iburinoc/slowfuzzer
Strongly limit compression level when source is large for tests running on QEMU
Sean Purcell [Mon, 20 Mar 2017 18:32:24 +0000 (11:32 -0700)]
Add --no-big-tests flag for qemu fuzz-tests
Sean Purcell [Mon, 20 Mar 2017 18:25:00 +0000 (11:25 -0700)]
Add ability to strongly limit fuzzer test size with flag
Yann Collet [Sat, 18 Mar 2017 20:47:54 +0000 (13:47 -0700)]
Merge pull request #607 from inikep/dev
updated build of Windows packages
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