]>
git.ipfire.org Git - thirdparty/zstd.git/log
Yann Collet [Thu, 27 Sep 2018 01:06:53 +0000 (18:06 -0700)]
moved again overflow correction
cannot work from within ZSTD_compressBlock()
Yann Collet [Wed, 26 Sep 2018 22:35:38 +0000 (15:35 -0700)]
changed overflow correction place
keep one in compress_frameChunk(),
so that it's tested at every loop
in case some user simply some large mulit-GB input in a single invocation.
Add one in ZSTD_compressBlock(),
since compressBlock() explicitly skips frameChunk().
Yann Collet [Wed, 26 Sep 2018 21:24:28 +0000 (14:24 -0700)]
fix : huge (>4GB) stream of blocks
experimental function ZSTD_compressBlock() is designed for very small data in mind,
for situation where saving the ~12 bytes of frame header can actually make a difference.
Some systems though may have to deal with small and large data entangled.
If it's larger than a block (> 128KB), compressBlock() cannot compress them in one round.
That's why it's possible to compress in multiple rounds.
This is a chain of compressed blocks.
Some users push this capability to the limit, encoding gigantic chain of blocks.
On crossing the 4GB limit, some internal overflow occurs.
This fix moves the overflow correction mechanism higher in the call chain,
so that it's applied also to gigantic chains of blocks.
Added a test case in fuzzer.c, which crashes before the fix, and pass now.
Yann Collet [Mon, 24 Sep 2018 23:01:13 +0000 (16:01 -0700)]
Merge pull request #1332 from facebook/minclevel
defined a minimum negative level
Yann Collet [Mon, 24 Sep 2018 21:49:16 +0000 (14:49 -0700)]
Merge pull request #1336 from facebook/scanbuild
fixed minor scan-build warnings
Yann Collet [Mon, 24 Sep 2018 21:49:03 +0000 (14:49 -0700)]
Merge pull request #1335 from facebook/limits
added some tests based on limits.h
Yann Collet [Mon, 24 Sep 2018 07:52:19 +0000 (00:52 -0700)]
fixed minor scan-build warnings
Yann Collet [Mon, 24 Sep 2018 06:57:30 +0000 (23:57 -0700)]
added some tests based on limits.h
in order to ensure proper type mapping
when not using stdint.h
Yann Collet [Sun, 23 Sep 2018 00:21:39 +0000 (17:21 -0700)]
fixed zstd-decompress
which cannot support ZSTD_minCLevel()
Yann Collet [Sat, 22 Sep 2018 23:11:55 +0000 (16:11 -0700)]
Merge pull request #1331 from facebook/mingw
fix mingw compatibility
Yann Collet [Sat, 22 Sep 2018 23:10:10 +0000 (16:10 -0700)]
enforce minimum compression level limit
using ZSTD_minCLevel()
Yann Collet [Sat, 22 Sep 2018 01:23:32 +0000 (18:23 -0700)]
fixed constant comparison on 32-bits systems
Yann Collet [Sat, 22 Sep 2018 00:40:30 +0000 (17:40 -0700)]
avoid recompiling dll every time under mingw
Yann Collet [Sat, 22 Sep 2018 00:36:00 +0000 (17:36 -0700)]
fix pzstd compatibility with mingw
some details changed with introduction of gcc7
Yann Collet [Sat, 22 Sep 2018 00:28:37 +0000 (17:28 -0700)]
fix constant redeclaration in paramgrill
Yann Collet [Fri, 21 Sep 2018 22:04:43 +0000 (15:04 -0700)]
fixed tautological tests
involving ZSTD_TARGETLENGTH_MIN (== 0)
Yann Collet [Fri, 21 Sep 2018 21:56:57 +0000 (14:56 -0700)]
Merge branch 'mingw' into minclevel
Yann Collet [Fri, 21 Sep 2018 21:46:09 +0000 (14:46 -0700)]
fix mingw compatibility
only enable backtraces for platforms we know support it
aka mac OS-X and Linux.
can be extended later.
Yann Collet [Fri, 21 Sep 2018 19:15:33 +0000 (12:15 -0700)]
Merge pull request #1318 from felixhandte/shadow-dict-matches
Don't Search Dictionary Context When Working Context Search Resulted in Mismatch
Yann Collet [Thu, 20 Sep 2018 23:17:49 +0000 (16:17 -0700)]
defined a minimum negative level
which can be probed using new function ZSTD_minCLevel().
Also : redefined ZSTD_TARGETLENGTH_MIN/MAX for consistency
used the opportunity to bump version number to v1.3.6
Yann Collet [Tue, 18 Sep 2018 22:28:34 +0000 (15:28 -0700)]
Merge pull request #1326 from facebook/refPrefix
updated documentation of *refPrefix()
Yann Collet [Tue, 18 Sep 2018 20:07:08 +0000 (13:07 -0700)]
updated documentation of *refPrefix()
indicating the equivalence with `diff` operation.
Nick Terrell [Mon, 17 Sep 2018 21:40:27 +0000 (14:40 -0700)]
Merge pull request #1321 from bket/non-portable
'head -c BYTES' is non-portable.
Yann Collet [Mon, 17 Sep 2018 21:10:17 +0000 (14:10 -0700)]
Merge pull request #1324 from ko-zu/fixclangcode
Fix largeNbDicts bench for clangbuild
Björn Ketelaars [Sat, 30 Jun 2018 13:42:42 +0000 (15:42 +0200)]
'head -c BYTES' is non-portable.
tests/playTests.sh uses 'head -c' in a couple of tests to truncate the
last byte of a file. The '-c' option is non-portable (not in POSIX).
Instead use a wrapper around dd (truncateLastByte).
Nick Terrell [Mon, 17 Sep 2018 18:04:51 +0000 (11:04 -0700)]
Merge pull request #1322 from azat-archive/seekable-fixes-pull
Fixes read write past end of input buffer.
ko-zu [Mon, 17 Sep 2018 04:09:08 +0000 (13:09 +0900)]
Fix largeNbDicts bench for clangbuild
Remove unsigned to size_t promotion to fix implicit down conversion errors in clangbuild target.
Azat Khuzhin [Sun, 16 Sep 2018 15:04:43 +0000 (18:04 +0300)]
seekable_decompression: support offset greater then UNIT_MAX
Azat Khuzhin [Sun, 16 Sep 2018 15:04:43 +0000 (18:04 +0300)]
zstdseek_decompress: fix decompression with data left in input buffer
Yann Collet [Sun, 16 Sep 2018 02:31:42 +0000 (19:31 -0700)]
Merge pull request #1319 from ko-zu/fixclangbuild
Fix clang build
ko-zu [Sun, 16 Sep 2018 01:27:02 +0000 (10:27 +0900)]
Fix clang build
Fix dixygen comment
Fix clang binary path
Yann Collet [Fri, 14 Sep 2018 23:06:35 +0000 (16:06 -0700)]
minor code comment update
Yann Collet [Fri, 14 Sep 2018 22:29:19 +0000 (15:29 -0700)]
Merge pull request #1295 from felixhandte/hdr-intro-comment-negative-lvls
Proposed Update to Zstd.h Introduction Comment
W. Felix Handte [Fri, 14 Sep 2018 22:24:25 +0000 (15:24 -0700)]
ZSTD_dfast: Don't Search Dict Context When Mismatch Was Found
W. Felix Handte [Fri, 14 Sep 2018 22:23:35 +0000 (15:23 -0700)]
ZSTD_fast: Don't Search Dict Context When Mismatch Was Found
Yann Collet [Fri, 14 Sep 2018 17:37:46 +0000 (10:37 -0700)]
Merge pull request #1316 from facebook/coldDict
Cold dictionary mitigation
Yann Collet [Thu, 13 Sep 2018 23:44:04 +0000 (16:44 -0700)]
updated code comments, based on @terrelln review
Yann Collet [Thu, 13 Sep 2018 19:29:52 +0000 (12:29 -0700)]
fixed msan error
cold dictionary is detected through a comparison with dictEnd,
which was not initialized at the beginning of first DCtx usage.
Yann Collet [Wed, 12 Sep 2018 23:54:57 +0000 (16:54 -0700)]
final parameter tuning
Yann Collet [Wed, 12 Sep 2018 23:40:28 +0000 (16:40 -0700)]
clean traces
Yann Collet [Wed, 12 Sep 2018 23:15:37 +0000 (16:15 -0700)]
fixed PREFETCH() macro
for corner cases and platforms without this instruction
Yann Collet [Wed, 12 Sep 2018 23:12:00 +0000 (16:12 -0700)]
Merge pull request #1315 from cmcginty/dev
Add build define to manually enable -rdynamic LD flag
Yann Collet [Wed, 12 Sep 2018 22:35:21 +0000 (15:35 -0700)]
conditional dict content prefetching
based on nbSeq.
Casey McGinty [Wed, 12 Sep 2018 21:00:08 +0000 (14:00 -0700)]
Add build define to manually enable -rdynamic LD flag
Yann Collet [Wed, 12 Sep 2018 20:30:16 +0000 (13:30 -0700)]
Merge pull request #1314 from terrelln/cpuid
[libzstd] Fix cpu for MSFT ARM
Yann Collet [Wed, 12 Sep 2018 19:32:09 +0000 (12:32 -0700)]
adjust heuristic decisions
Nick Terrell [Wed, 12 Sep 2018 19:05:32 +0000 (12:05 -0700)]
Also allow x86
Yann Collet [Wed, 12 Sep 2018 18:28:45 +0000 (11:28 -0700)]
largeNbDicts : can select a nb of blocks
will automatically truncate or repeat input as needed,
to create the requested nb of blocks.
default: nb of files, eventually increased appropriately if blockSize is set
Nick Terrell [Wed, 12 Sep 2018 17:35:16 +0000 (10:35 -0700)]
[libzstd] Fix cpu for MSFT ARM
The `__cpuid()` and `__cpuidex()` intrinsics are only available
on x86 and x86_64.
Yann Collet [Wed, 12 Sep 2018 17:29:47 +0000 (10:29 -0700)]
added conditional prefetch
depending on amount of work to do.
Yann Collet [Wed, 12 Sep 2018 17:13:23 +0000 (10:13 -0700)]
Merge pull request #1311 from cmcginty/dev
Print a stack trace on unexpected term signal (e.g. SIGABRT)
Yann Collet [Wed, 12 Sep 2018 00:23:44 +0000 (17:23 -0700)]
implemented first prefetch
based on dictID.
dictContent is prefetched up to 32 KB
(no contentSize adaptation)
Casey McGinty [Tue, 11 Sep 2018 23:19:34 +0000 (16:19 -0700)]
Disable -rdynamic LD option on Windows
Casey McGinty [Tue, 11 Sep 2018 21:49:47 +0000 (14:49 -0700)]
Update comments, and LD flag usage in Make
Casey McGinty [Tue, 11 Sep 2018 18:56:50 +0000 (11:56 -0700)]
Remove dead code and method name typo
Casey McGinty [Tue, 11 Sep 2018 18:39:49 +0000 (11:39 -0700)]
Move ABRThandler func out of internal lib
Casey McGinty [Tue, 11 Sep 2018 17:40:45 +0000 (10:40 -0700)]
Refactor abort signal handling
- Print signal name to term
- Add -rdynamic option to generate Linux symbol names in backtrace
- Raise default signal after handler to ensure program termination
Yann Collet [Mon, 10 Sep 2018 20:11:11 +0000 (13:11 -0700)]
Merge pull request #1310 from facebook/Dworkspace
reduce DDict size by 2KB
Yann Collet [Mon, 10 Sep 2018 18:24:17 +0000 (11:24 -0700)]
added comment about minimum size of FSE tables
required for DDict creation,
which use this space as workspace during Hufman table building stage.
Yann Collet [Fri, 7 Sep 2018 22:42:04 +0000 (15:42 -0700)]
Merge pull request #1307 from facebook/spec
spec clarification
Casey McGinty [Fri, 7 Sep 2018 01:46:52 +0000 (18:46 -0700)]
Print a stack trace on unexpected term signal (e.g. SIGABRT)
For OSX and Linux, add a signal handler to SIGABRT, SGIFPE, SIGILL,
SIGSEGV, and SIGBUS. When the program terminates unexpectedly the
handler will print the current stack to the terminal to help determine
the location of the failure.
On OSX the output will look like:
```
Stack trace:
4 zstd 0x000000010927ed96 main + 16886
5 libdyld.dylib 0x00007fff767d1015 start + 1
6 ??? 0x0000000000000001 0x0 + 1
```
On Linux the output will look like:
```
Stack trace:
./zstd() [0x4b8e1b]
./zstd() [0x4b928a]
./zstd() [0x403dc2]
/lib64/libc.so.6(__libc_start_main+0xf5) [0x7f5e0fbb0445]
./zstd() [0x405754]
```
As is, the code does not function on WIN32.
See also: https://oroboro.com/stack-trace-on-crash/
Yann Collet [Fri, 7 Sep 2018 01:01:10 +0000 (18:01 -0700)]
Merge pull request #1309 from facebook/islink
fixed UTIL_isLink() for Mac OS-X
Yann Collet [Fri, 7 Sep 2018 00:54:13 +0000 (17:54 -0700)]
strengthened conditions for using workplace into fse table space
ensure that the structure layout is as expected.
will trigger an error if it changes in the future.
Another solution would be to use a union,
this would be cleaner and get rid of these static asserts.
However, in order to keep the current code unmodified,
it would be necessary to use an un-named unions.
And apparently, un-named unions are only possible on "recent" compilers (C99+).
Yann Collet [Fri, 7 Sep 2018 00:33:27 +0000 (17:33 -0700)]
Merge branch 'islink' into Dworkspace
Yann Collet [Fri, 7 Sep 2018 00:32:16 +0000 (17:32 -0700)]
fixed UTIL_isLink() for Mac OS-X
Yann Collet [Fri, 7 Sep 2018 00:07:53 +0000 (17:07 -0700)]
reduced DDict size, by -2KB
corresponding to the removal of workspace
which is needed while building huffman table
and is now either present in DCtx,
or temporarily borrowed from available FSE table space.
Yann Collet [Thu, 6 Sep 2018 21:38:32 +0000 (14:38 -0700)]
Merge pull request #1308 from facebook/codeofconduct
added code of conduct
Yann Collet [Thu, 6 Sep 2018 18:20:39 +0000 (11:20 -0700)]
added code of conduct
as requested by Facebook OSS program.
Yann Collet [Thu, 6 Sep 2018 16:50:56 +0000 (09:50 -0700)]
Merge pull request #1304 from facebook/largeNbDicts
contrib/largeNbDicts
Yann Collet [Wed, 5 Sep 2018 21:33:51 +0000 (14:33 -0700)]
fixed minor static analyzer warning
Yann Collet [Wed, 5 Sep 2018 19:25:35 +0000 (12:25 -0700)]
spec clarification
following #1305 comments from @ulikunitz
Nick Terrell [Wed, 5 Sep 2018 01:03:36 +0000 (18:03 -0700)]
Merge pull request #1306 from jennifermliu/dev
Change default f of FASTCOVER to 20
Jennifer Liu [Wed, 5 Sep 2018 00:12:35 +0000 (17:12 -0700)]
Change default f to 20
Nick Terrell [Tue, 4 Sep 2018 23:59:41 +0000 (16:59 -0700)]
Merge pull request #1302 from jennifermliu/splitpoint
Always use splitPoint=1.0 for non-optimize cover and fastcover and some minor changes on comments
Yann Collet [Tue, 4 Sep 2018 21:57:45 +0000 (14:57 -0700)]
updated documentation
Yann Collet [Fri, 31 Aug 2018 17:01:06 +0000 (10:01 -0700)]
silenced false-positive scan-build warning
Yann Collet [Fri, 31 Aug 2018 01:09:33 +0000 (18:09 -0700)]
Merge pull request #1303 from cmcginty/dev
Zstandard - better `make list`
Casey McGinty [Thu, 30 Aug 2018 23:54:43 +0000 (16:54 -0700)]
Add optional description field support to "list" target
Yann Collet [Thu, 30 Aug 2018 23:43:28 +0000 (16:43 -0700)]
fixed link order for old compilers
Yann Collet [Thu, 30 Aug 2018 23:24:44 +0000 (16:24 -0700)]
minor : createDictionaryBuffer() can create dictionaries of different sizes
Yann Collet [Thu, 30 Aug 2018 22:54:14 +0000 (15:54 -0700)]
fixed minor compatibility issues with older compilers
Jennifer Liu [Thu, 30 Aug 2018 22:46:39 +0000 (15:46 -0700)]
Update comment about default dictionary builder
Jennifer Liu [Thu, 30 Aug 2018 22:37:29 +0000 (15:37 -0700)]
Update comment on default steps of cover and fastcover
Yann Collet [Thu, 30 Aug 2018 21:59:10 +0000 (14:59 -0700)]
-std=c99 for largeNbDicts
Jennifer Liu [Thu, 30 Aug 2018 21:53:59 +0000 (14:53 -0700)]
Always use splitPoint=1.0 for non-optimize cover and fastcover
Jennifer Liu [Thu, 30 Aug 2018 21:57:16 +0000 (14:57 -0700)]
Merge branch 'dev' of github.com:facebook/zstd into dev
Yann Collet [Thu, 30 Aug 2018 18:02:08 +0000 (11:02 -0700)]
largeNbDicts compatible with multiple source files
splitting is disabled by default, but can be re-enabled using usual command -B#
update commands to look like zstd ones
Yann Collet [Wed, 29 Aug 2018 23:17:22 +0000 (16:17 -0700)]
make all includes contrib/largeNbDicts
Yann Collet [Wed, 29 Aug 2018 01:19:19 +0000 (18:19 -0700)]
added a README
for documentation
Yann Collet [Wed, 29 Aug 2018 01:13:46 +0000 (18:13 -0700)]
increases randomness of ddict ptrs
Yann Collet [Wed, 29 Aug 2018 01:05:31 +0000 (18:05 -0700)]
level, block size and nb dicts can be set on command line
Yann Collet [Wed, 29 Aug 2018 00:10:25 +0000 (17:10 -0700)]
Merge pull request #1301 from terrelln/lit-size
[zstd] Fix seqStore growth
Yann Collet [Tue, 28 Aug 2018 22:47:07 +0000 (15:47 -0700)]
first working test program
measures :
- compression ratio with / without dictionary
- create one dictionary per block
- memory budget for dictionaries
- decompression speed, using one different dictionary per block
current limitations :
- only one file
- 4K blocks only
- automatic dictionary built with 4K size
dictionary can be selected on command line, with -D
Nick Terrell [Tue, 28 Aug 2018 20:56:47 +0000 (13:56 -0700)]
Fix decodecorpus
Nick Terrell [Tue, 28 Aug 2018 20:42:01 +0000 (13:42 -0700)]
Small test fixes
Nick Terrell [Tue, 28 Aug 2018 20:24:44 +0000 (13:24 -0700)]
[zstd] Fix seqStore growth
We could undersize the literals buffer by up to 11 bytes,
due to a combination of 2 bugs:
* The literals buffer didn't have `WILDCOPY_OVERLENGTH` extra
space, like it is supposed to.
* We didn't check the literals buffer size in `ZSTD_sufficientBuff()`.
Nick Terrell [Tue, 28 Aug 2018 20:20:37 +0000 (13:20 -0700)]
[fuzzer] Test growing the seqStore_t
Yann Collet [Tue, 28 Aug 2018 19:25:02 +0000 (12:25 -0700)]
Merge pull request #1298 from facebook/bench
Refactored bench.c
Yann Collet [Tue, 28 Aug 2018 18:26:46 +0000 (11:26 -0700)]
Merge branch 'bench' into largeNbDicts
Yann Collet [Tue, 28 Aug 2018 18:21:09 +0000 (11:21 -0700)]
timedFn : measurement delay is programmable
instead of hard-coded 1 second per measurement