]>
git.ipfire.org Git - thirdparty/zstd.git/log
Nick Terrell [Mon, 13 Jan 2020 22:22:46 +0000 (14:22 -0800)]
[util] Fix readLineFromFile on Cygwin
Nick Terrell [Mon, 13 Jan 2020 19:52:33 +0000 (11:52 -0800)]
[cmake] Add playTests.sh as a test
Nick Terrell [Mon, 13 Jan 2020 19:35:28 +0000 (11:35 -0800)]
Merge pull request #1948 from lazka/cygwin-fix-c99-build
Fix the c99/cmake build under Cygwin/MSYS2
Christoph Reiter [Sat, 11 Jan 2020 09:41:56 +0000 (10:41 +0100)]
appveyor: build with CMake under Cygwin
Nick Terrell [Sat, 11 Jan 2020 02:02:11 +0000 (18:02 -0800)]
Fix super block compression and stream raw blocks in decompression (#1947)
Super blocks must never violate the zstd block bound of input_size + ZSTD_blockHeaderSize. The individual sub-blocks may, but not the super block. If the superblock violates the block bound we are liable to violate ZSTD_compressBound(), which we must not do. Whenever the super block violates the block bound we instead emit an uncompressed block.
This means we increase the latency because of the single uncompressed block. I fix this by enabling streaming an uncompressed block, so the latency of an uncompressed block is 1 byte. This doesn't reduce the latency of the buffer-less API, but I don't think we really care.
* I added a test case that verifies that the decompression has 1 byte latency.
* I rely on existing zstreamtest / fuzzer / libfuzzer regression tests for correctness. During development I had several correctness bugs, and they easily caught them.
* The added assert that the superblock doesn't violate the block bound will help us discover any missed conditions (though I think I got them all).
Credit to OSS-Fuzz.
Christoph Reiter [Sat, 11 Jan 2020 00:04:14 +0000 (01:04 +0100)]
Fix the c99/cmake build under Cygwin/MSYS2
When building zst under cygwin or msys2 with std=c99 the build would fail because
of an undefined fileno()/_fileno(), which is used by the IS_CONSOLE() macro.
When building with -std=c99 (gcc otherwise defaults to gnu, which implies POSIX),
which is the default of the cmake build, then including unistd.h wont define
_POSIX_VERSION and all other headers also wont expose POSIX API.
To fix this make sure to define _POSIX_C_SOURCE with the version we want before including
unistd.h and so that _POSIX_VERSION is set to the version provided by the system.
Since Cygwin/MSYS2 just follow POSIX we can also remove their special cases for
defining IS_CONSOLE().
And, for completeness, also explicitly include stdio.h which is what actually declares fileno().
Tested with the normal make file and cmake under MSYS2 and Cygwin.
Bimba Shrestha [Fri, 10 Jan 2020 22:25:24 +0000 (14:25 -0800)]
Adding new cli endpoint --patch-from= (#1940)
* Adding new cli endpoint --diff-from=
* Appveyor conversion nit
* Using bool set trick instead of direct set
* Removing --diff-from and only leaving --diff-from=#
* Throwing error when both dictFileName vars are set
* Clean up syntax
* Renaming diff-from to patch-from
* Revering comma separated syntax clean up
* Updating playtests with patch-from
* Uncommenting accidentally commented
* Updating remaining docs and var names to be patch-from instead of diff-from
* Constifying
* Using existing log2 function and removing newly created one
* Argument order (moving prefs to end)
* Using comma separated syntax
* Moving to outside #ifndef
Nick Terrell [Thu, 9 Jan 2020 19:38:50 +0000 (11:38 -0800)]
[fuzz] Allow zero sized buffers for streaming fuzzers (#1945)
* Allow zero sized buffers in `stream_decompress`. Ensure that we never have two
zero sized buffers in a row so we guarantee forwards progress.
* Make case 4 in `stream_round_trip` do a zero sized buffers call followed by
a full call to guarantee forwards progress.
* Fix `limitCopy()` in legacy decoders.
* Fix memcpy in `zstdmt_compress.c`.
Catches the bug fixed in PR #1939
Igor Sugak [Thu, 9 Jan 2020 00:17:42 +0000 (16:17 -0800)]
fix UBSAN's invalid-null-argument error in zstd_decompress.c (#1939)
Nick Terrell [Wed, 8 Jan 2020 21:20:56 +0000 (13:20 -0800)]
[fuzz] Fix regression_driver.c with directory input (#1944)
The `numFiles` variable wasn't updated, so the fuzzer didn't do anything.
I did two things to fix this:
1. Remove the `numFiles` variable entirely.
2. Error if we can't open a file and print the number of files tested.
Christoph Reiter [Tue, 7 Jan 2020 23:48:26 +0000 (00:48 +0100)]
Make UTIL_countPhysicalCores() work under Cygwin (#1941)
Cygwin currently uses the fallback implementation which just returns 1 every time,
which leads to bad performance when zstd is called with -T0 for example.
Instead use the POSIX implementation used for the BSDs which works just fine under Cygwin.
Tested under Cygwin and MSYS2.
Yann Collet [Tue, 7 Jan 2020 17:51:22 +0000 (09:51 -0800)]
updated CHANGELOG
one missing item in v1.4.4
Bimba Shrestha [Mon, 6 Jan 2020 22:19:11 +0000 (14:19 -0800)]
[bench] Automated benchmarking script (#1906)
* Initial revised automated benchmarking script
* Updating nb_iterations and making loop infinite
* Allowing benchmarking params to be changed from cli
* Renaming old speed test
* Removing numpy dependency for cli
* Change filename and benchmakr on pr level
* Moving build outside loop and adding iterations param
* Moving benchmarking to seperate travis ci test
* Fixing typo and using unused variable
* Added mode labels and updated README accordingly
* Adding new mode 'current' that compraes facebook:dev against current hash
* Typo
* Reverting previous accidental diff
* Typo
* Adding frequency config variable to prevent github from blacklisting
* Added new argument for frequency of fetching new prs
* Updating documentation
Bimba Shrestha [Sat, 4 Jan 2020 00:53:51 +0000 (16:53 -0800)]
[fuzz] Dividing by targetCBlockSize instead of blockSize for nbBlocks fit (#1936)
* Adding fail logging for superblock flow
* Dividing by targetCBlockSize instead of blockSize
* Adding new const and using more acurate formula for nbBlocks
* Only do dstCapacity check if using superblock
* Remvoing disabling logic
* Updating test to make it catch more extreme case of previou bug
* Also updating comment
* Only taking compressEnd shortcut on non-superblock
Bimba Shrestha [Sat, 4 Jan 2020 00:36:47 +0000 (16:36 -0800)]
[doc] Adding -M# decompression operation modifier documentation (#1938)
* Adding -M# operation modifier documentation
* Adding long name, typo and update desc
Felix Handte [Fri, 3 Jan 2020 21:07:16 +0000 (16:07 -0500)]
Merge pull request #1920 from felixhandte/fix-mtim-again
Use statbuf->st_mtim Again
Felix Handte [Thu, 26 Dec 2019 19:16:23 +0000 (14:16 -0500)]
Fix playTests.sh Under QEMU (#1923)
W. Felix Handte [Thu, 5 Dec 2019 17:02:35 +0000 (12:02 -0500)]
Also Define _ATFILE_SOURCE
W. Felix Handte [Wed, 4 Dec 2019 21:59:16 +0000 (16:59 -0500)]
Add Comment
W. Felix Handte [Wed, 4 Dec 2019 15:25:07 +0000 (10:25 -0500)]
Use statbuf->st_mtim Again
W. Felix Handte [Thu, 5 Dec 2019 22:14:57 +0000 (17:14 -0500)]
Add Travis Test that Builds ARM on Trusty
W. Felix Handte [Thu, 5 Dec 2019 22:14:29 +0000 (17:14 -0500)]
Fix playTests.sh Under QEMU
Yann Collet [Thu, 19 Dec 2019 20:58:24 +0000 (12:58 -0800)]
Merge pull request #1928 from bimbashrestha/bimba-oss
[fuzz] Adding bool to check if there is enough room to emit noCompress Superblocks
Felix Handte [Thu, 19 Dec 2019 17:08:28 +0000 (12:08 -0500)]
Merge pull request #1932 from felixhandte/diagnose-corruption-dicts
Add Support for Dictionaries in Corruption Diagnosis Tool
W. Felix Handte [Wed, 18 Dec 2019 19:26:35 +0000 (11:26 -0800)]
Add Support for Dictionaries
Yann Collet [Wed, 18 Dec 2019 19:49:26 +0000 (11:49 -0800)]
Merge pull request #1929 from facebook/travisTest
added ppc64le tests on travis
W. Felix Handte [Wed, 18 Dec 2019 19:29:53 +0000 (11:29 -0800)]
Print Summary of Errors Encountered
Bimba Shrestha [Wed, 18 Dec 2019 01:16:51 +0000 (17:16 -0800)]
Constifying, malloc check and naming nit
W. Felix Handte [Tue, 17 Dec 2019 19:26:18 +0000 (11:26 -0800)]
Don't Rely on Implicit Return in Main
Yann Collet [Sat, 14 Dec 2019 21:29:24 +0000 (13:29 -0800)]
added ppc64le tests on travis
on real hardware
Bimba Shrestha [Sat, 14 Dec 2019 00:50:21 +0000 (16:50 -0800)]
One more type conversion
Bimba Shrestha [Sat, 14 Dec 2019 00:38:11 +0000 (16:38 -0800)]
Adding explict cast to satisfy appveyor ci
Bimba Shrestha [Sat, 14 Dec 2019 00:24:49 +0000 (16:24 -0800)]
More void* issues. Just replacing with BYTE*
Bimba Shrestha [Sat, 14 Dec 2019 00:06:57 +0000 (16:06 -0800)]
'void* size issue' fix
Bimba Shrestha [Fri, 13 Dec 2019 23:47:28 +0000 (15:47 -0800)]
Adding bool to check if enough room left for noCompress superblocks
Bimba Shrestha [Fri, 13 Dec 2019 23:31:29 +0000 (15:31 -0800)]
Add test to catch too many noCompress superblocks on streaming
Yann Collet [Tue, 10 Dec 2019 21:17:00 +0000 (13:17 -0800)]
Merge pull request #1891 from bimbashrestha/oss
[fuzz] Superblock fuzz issues
Yann Collet [Tue, 10 Dec 2019 21:16:45 +0000 (13:16 -0800)]
Merge pull request #1924 from ned14/dev
Make idiomatic cmake install so third party cmake installers work right.
Make idiomatic cmake install so third party cmake installers work right.
Bimba Shrestha [Wed, 4 Dec 2019 23:51:17 +0000 (15:51 -0800)]
Making const, removing unnecessary indent, changing parameter order
Bimba Shrestha [Wed, 4 Dec 2019 23:23:13 +0000 (15:23 -0800)]
Moving init/end functions, moving compressSuperBlock inside body()
Bimba Shrestha [Wed, 4 Dec 2019 22:52:27 +0000 (14:52 -0800)]
Refactor
Bimba Shrestha [Wed, 4 Dec 2019 18:02:17 +0000 (10:02 -0800)]
[fuzz] msan uninitialized unsigned value (#1908)
Fixes new fuzz issue
Credit to OSS-Fuzz
* Initializing unsigned value
* Initialilzing to 1 instead of 0 because its more conservative
* Unconditionoally setting to check first and then checking zero
* Moving bool to before block for c90
* Move check set before block
Yann Collet [Wed, 4 Dec 2019 01:06:42 +0000 (17:06 -0800)]
bumped version number
so that potential issue report do not confuse `dev` with latest release
Yann Collet [Tue, 3 Dec 2019 23:35:07 +0000 (15:35 -0800)]
Merge pull request #1893 from felixhandte/check-flipped-bits
Add Tool to Diagnose Whether Corrupt Blobs are Plausibly Bit-Flips
Yann Collet [Tue, 3 Dec 2019 23:31:11 +0000 (15:31 -0800)]
Merge pull request #1907 from selavy/check-fread-r1895
Check for fread failure
Bimba Shrestha [Tue, 3 Dec 2019 05:39:06 +0000 (21:39 -0800)]
Using bss var instead of creating new bool
Yann Collet [Tue, 3 Dec 2019 01:30:37 +0000 (17:30 -0800)]
Merge pull request #1918 from facebook/recurse_fix
small refactoring : remove global variable g_displayOut
Yann Collet [Tue, 3 Dec 2019 00:08:08 +0000 (16:08 -0800)]
refactoring : remove global variable g_displayOut
displaying into stderr or stdout is now an explicit operation,
no longer depending on some global state set elsewhere in the code.
Yann Collet [Mon, 2 Dec 2019 23:38:14 +0000 (15:38 -0800)]
Merge pull request #1917 from facebook/recurse_fix
fix recent issue combining -r with empty list of input files
Yann Collet [Mon, 2 Dec 2019 22:28:18 +0000 (14:28 -0800)]
fix recent issue combining -r with empty list of input files
This would resize the table of input filenames to zero,
delivering an empty table,
to which it was no longer possible to add stdin.
Yann Collet [Thu, 28 Nov 2019 02:45:16 +0000 (18:45 -0800)]
Merge pull request #1910 from facebook/travisTest
mingw cross compilation test
Yann Collet [Wed, 27 Nov 2019 22:48:26 +0000 (14:48 -0800)]
Merge pull request #1883 from Ericson2314/fix-mingw-cross
Fix MinGW cross
Yann Collet [Wed, 27 Nov 2019 22:39:43 +0000 (14:39 -0800)]
travis: updated mingw cross compilation test
- only compiles zstd CLI
- enforces zero warning tolerance policy
note : mingw compilation of the library complains (warning) about -fPIC flag.
It mostly ignores it, so it's not a big issue.
Still, it would need to be fixed if library cross-compilation becomes part of CI.
At this stage, it's unclear if this is a scenario.
Yann Collet [Wed, 27 Nov 2019 20:44:02 +0000 (12:44 -0800)]
added mingw cross compilation tests
based on a script in RocksDB project.
also : pushed qemu aarch64 tests to master/cron,
since there are already hardware aarch64 tests on dev.
Bimba Shrestha [Wed, 27 Nov 2019 18:56:54 +0000 (10:56 -0800)]
Merge branch 'oss' of https://github.com/bimbashrestha/zstd into oss
Yann Collet [Wed, 27 Nov 2019 04:57:25 +0000 (20:57 -0800)]
Merge pull request #1853 from facebook/ahmed_file
--filelist=FILE feature
Peter Lesslie [Wed, 27 Nov 2019 01:36:33 +0000 (19:36 -0600)]
Check for fread failure
On failure fread may return either a short read or 0. Need to use
ferror to detect error versus eof.
Yann Collet [Wed, 27 Nov 2019 01:46:57 +0000 (17:46 -0800)]
removed scanbuild workaround
Yann Collet [Wed, 27 Nov 2019 00:44:56 +0000 (16:44 -0800)]
reverted ppc qemu and scanbuild on trusty
ppc cross-compilation seems broken outside of trusty
scan-build version changes with distrib version, resulting in a different list of false positives
Yann Collet [Tue, 26 Nov 2019 23:44:33 +0000 (15:44 -0800)]
assembleFNT() can no longer fail
Yann Collet [Tue, 26 Nov 2019 23:25:32 +0000 (15:25 -0800)]
pushed aside stdio.h too
since only UTIL_DISPLAY() depended on it.
Yann Collet [Tue, 26 Nov 2019 23:21:58 +0000 (15:21 -0800)]
moved UTIL_DISPLAY() inside util.c
Yann Collet [Tue, 26 Nov 2019 23:16:53 +0000 (15:16 -0800)]
util: isolated some dependencies
from *.h to *.c
so that they don't get transitively included
into users of util.h.
Yann Collet [Tue, 26 Nov 2019 23:01:16 +0000 (15:01 -0800)]
travisCI : removed `trusty` generic statement
trusty is out of long term support.
let's run (most) tests on "current" platform.
Yann Collet [Tue, 26 Nov 2019 22:53:37 +0000 (14:53 -0800)]
fixed minor VS warning, on parameter difference
complaining about a `const` property on one side but not the other.
Yann Collet [Tue, 26 Nov 2019 22:48:23 +0000 (14:48 -0800)]
switched UTIL_refFilename() to an assert()
Yann Collet [Tue, 26 Nov 2019 22:33:04 +0000 (14:33 -0800)]
Merge branch 'dev' into ahmed_file
Yann Collet [Tue, 26 Nov 2019 22:18:09 +0000 (14:18 -0800)]
fixed fifo test
Bimba Shrestha [Tue, 26 Nov 2019 20:24:19 +0000 (12:24 -0800)]
[fuzz] Only set HUF_repeat_valid if loaded table has all non-zero weights (#1898)
Fixes a fuzz issue where dictionary_round_trip failed because the compressor was generating corrupt files thanks to zero weights in the table.
* Only setting loaded dict huf table to valid on non-zero
* Adding hasNoZeroWeights test to fse tables
* Forbiding nbBits != 0 when weight == 0
* Reverting the last commit
* Setting table log to 0 when weight == 0
* Small (invalid) zero weight dict test
* Small (valid) zero weight dict test
* Initializing repeatMode vars to check before zero check
* Removing FSE changes to seperate pr
* Reverting accidentally changed file
* Negating bool, using unsigned, optimization nit
Bimba Shrestha [Tue, 26 Nov 2019 20:17:43 +0000 (12:17 -0800)]
Negating bool, updating bool on inner branches
Yann Collet [Tue, 26 Nov 2019 19:20:26 +0000 (11:20 -0800)]
Merge branch 'dev' into ahmed_file
Yann Collet [Tue, 26 Nov 2019 18:30:11 +0000 (10:30 -0800)]
travisCI: moved compatibility tests to `dev`
they are fast enough, and we want to catch such incompatibility early
Yann Collet [Tue, 26 Nov 2019 18:28:21 +0000 (10:28 -0800)]
moved meson and versions compatibility tests to master/cron
also : joined c99 compatibility tests with gnu90 and c++ ones
Yann Collet [Tue, 26 Nov 2019 18:24:09 +0000 (10:24 -0800)]
travis : added test durations
as a guide when doing test selection
Yann Collet [Tue, 26 Nov 2019 02:48:12 +0000 (18:48 -0800)]
Merge pull request #1905 from facebook/devnull
fix #1904
Nick Terrell [Tue, 26 Nov 2019 02:26:19 +0000 (18:26 -0800)]
Optimize decompression speed for gcc and clang (#1892)
* Optimize `ZSTD_decodeSequence()`
* Optimize Huffman decoding
* Optimize `ZSTD_decompressSequences()`
* Delete `ZSTD_decodeSequenceLong()`
Yann Collet [Mon, 25 Nov 2019 23:50:58 +0000 (15:50 -0800)]
silence scan-build false positive
blind attempt
Yann Collet [Mon, 25 Nov 2019 23:34:55 +0000 (15:34 -0800)]
changed name from createX to assembleX
shows that the resulting object just takes ownership of provided buffer.
Yann Collet [Mon, 25 Nov 2019 21:59:35 +0000 (13:59 -0800)]
fix mode_t on Windows
Yann Collet [Mon, 25 Nov 2019 21:45:22 +0000 (13:45 -0800)]
created UTIL_chmod()
protecting "/dev/null" from having its permissions changed.
also : minor : improved consistency of util.h API
Yann Collet [Mon, 25 Nov 2019 18:53:03 +0000 (10:53 -0800)]
added decompression into /dev/null tests
Yann Collet [Mon, 25 Nov 2019 18:35:36 +0000 (10:35 -0800)]
fix #1904
/dev/null permissions were modified when using sudo rights.
This fixes this bug during decompression.
More importantly, this patch adds a test, triggered in TravisCI,
ensuring unaltered /dev/null permissions.
Yann Collet [Sat, 23 Nov 2019 01:32:07 +0000 (17:32 -0800)]
minor update to travis script
many tests used to be run on Trusty platform,
they are now run on _current_ platform,
and now many test titles are incorrect.
Fixed.
Bimba Shrestha [Sat, 23 Nov 2019 01:29:33 +0000 (17:29 -0800)]
Merge branch 'dev' into oss
Yann Collet [Sat, 23 Nov 2019 01:25:55 +0000 (17:25 -0800)]
Merge pull request #1897 from sergey-dryabzhinsky/patch-1
WIP: Fix typo in util.c
Bimba Shrestha [Sat, 23 Nov 2019 01:25:36 +0000 (17:25 -0800)]
Test enough room for checksum in superblock
Nick Terrell [Fri, 22 Nov 2019 01:35:06 +0000 (17:35 -0800)]
Merge pull request #1903 from terrelln/null
Fix null pointer addition
Yann Collet [Thu, 21 Nov 2019 23:49:06 +0000 (15:49 -0800)]
Merge pull request #1902 from terrelln/ignore
[cmake][tests] Add zstreamtest executable
Bimba Shrestha [Thu, 21 Nov 2019 21:08:27 +0000 (13:08 -0800)]
Mixed declration fix
Bimba Shrestha [Thu, 21 Nov 2019 21:06:26 +0000 (13:06 -0800)]
Checking noCompressBlock explicitly for rep code confirmation
Nick Terrell [Thu, 21 Nov 2019 02:21:51 +0000 (18:21 -0800)]
Fix null pointer addition
Nick Terrell [Thu, 21 Nov 2019 01:26:06 +0000 (17:26 -0800)]
[cmake][tests] Add zstreamtest executable
Nick Terrell [Thu, 21 Nov 2019 01:24:19 +0000 (17:24 -0800)]
Merge pull request #1901 from terrelln/ignore
Update .gitignore
Nick Terrell [Thu, 21 Nov 2019 00:36:40 +0000 (16:36 -0800)]
Update .gitignore
Yann Collet [Wed, 20 Nov 2019 00:18:56 +0000 (16:18 -0800)]
Merge pull request #1894 from felixhandte/doc-clarify-dctx-reset
Easy: Update Comment on `ZSTD_initDStream()`
Yann Collet [Wed, 20 Nov 2019 00:14:20 +0000 (16:14 -0800)]
Merge pull request #1887 from bimbashrestha/doc-fix
Fixing hashLog error 2^26=64Mib
Nick Terrell [Tue, 19 Nov 2019 20:52:51 +0000 (12:52 -0800)]
Merge pull request #1896 from terrelln/test-fixes
Fix Appveyor failure
Sergey Dryabzhinsky [Tue, 19 Nov 2019 20:24:00 +0000 (23:24 +0300)]
Update util.c
Sergey Dryabzhinsky [Tue, 19 Nov 2019 20:15:28 +0000 (23:15 +0300)]
Fix typo in util.c
There must be mtim*e*