]> git.ipfire.org Git - thirdparty/zstd.git/log
thirdparty/zstd.git
7 years agofix un-initialized memory warning 921/head
Yann Collet [Fri, 17 Nov 2017 23:51:52 +0000 (15:51 -0800)] 
fix un-initialized memory warning

harmless, but cleaner

7 years agofix one UB pointer arithmetic in encoder
Yann Collet [Fri, 17 Nov 2017 20:55:37 +0000 (12:55 -0800)] 
fix one UB pointer arithmetic in encoder

Instead of calculating distance between 2 memory objects, which is UB,
we extract the offset from object 1, and transfer it into object 2.

7 years agofixed one UB pointer arithmetic
Yann Collet [Fri, 17 Nov 2017 19:40:08 +0000 (11:40 -0800)] 
fixed one UB pointer arithmetic

7 years agofixed circle-ci script 920/head
Yann Collet [Fri, 17 Nov 2017 10:14:16 +0000 (02:14 -0800)] 
fixed circle-ci script

7 years agominor interface adjustments
Yann Collet [Fri, 17 Nov 2017 09:21:40 +0000 (01:21 -0800)] 
minor interface adjustments

7 years agobench: added cli command `-S` to benchmark multiple files separately
Yann Collet [Fri, 17 Nov 2017 08:22:55 +0000 (00:22 -0800)] 
bench: added cli command `-S` to benchmark multiple files separately

Currently, all files are joined by default,
they are compressed separately but benchmarked together,
providing a single final result.

Benchmarking files separately make it possible to accurately measure difference for each file.
This is expected to be useful while tuning optimal parser.

7 years agobench: realTime is a global parameter
Yann Collet [Fri, 17 Nov 2017 08:02:37 +0000 (00:02 -0800)] 
bench: realTime is a global parameter

like most parameters not directly related to compression

7 years agofixed minor warning 916/head
Yann Collet [Thu, 16 Nov 2017 23:21:30 +0000 (15:21 -0800)] 
fixed minor warning

warning: void function returning a value
(even if the return value is void)

7 years agofixed some complex scenarios
Yann Collet [Thu, 16 Nov 2017 23:02:28 +0000 (15:02 -0800)] 
fixed some complex scenarios

Fixed : multithreading to compress some small data with dictionary
Fixed : ZSTD_initCStream_usingCDict()
Improved streaming memory usage when pledgedSrcSize is known.

7 years agoFixed Btree update
Yann Collet [Thu, 16 Nov 2017 20:18:56 +0000 (12:18 -0800)] 
Fixed Btree update

ZSTD_updateTree() expected to be followed by a Bt match finder, which would update zc->nextToUpdate.
With the new optimal match finder, it's not necessarily the case : a match might be found during repcode or hash3, and stops there because it reaches sufficient_len, without even entering the binary tree.
Previous policy was to nonetheless update zc->nextToUpdate, but the current position would not be inserted, creating "holes" in the btree, aka positions that will no longer be searched.
Now, when current position is not inserted, zc->nextToUpdate is not update, expecting ZSTD_updateTree() to fill the tree later on.

Solution selected is that ZSTD_updateTree() takes care of properly setting zc->nextToUpdate,
so that it no longer depends on a future function to do this job.

It took time to get there, as the issue started with a memory sanitizer error.
The pb would have been easier to spot with a proper `assert()`.
So this patch add a few of them.

Additionnally, I discovered that `make test` does not enable `assert()` during CLI tests.
This patch enables them.

Unfortunately, these `assert()` triggered other (unrelated) bugs during CLI tests, mostly within zstdmt.
So this patch also fixes them.

- Changed packed structure for gcc memory access : memory sanitizer would complain that a read "might" reach out-of-bound position on the ground that the `union` is larger than the type accessed.
  Now, to avoid this issue, each type is independent.
- ZSTD_CCtxParams_setParameter() : @return provides the value of parameter, clamped/fixed appropriately.
- ZSTDMT : changed constant name to ZSTDMT_JOBSIZE_MIN
- ZSTDMT : multithreading is automatically disabled when srcSize <= ZSTDMT_JOBSIZE_MIN, since only one thread will be used in this case (saves memory and runtime).
- ZSTDMT : nbThreads is automatically clamped on setting the value.

7 years agoremoved wrong assertion
Yann Collet [Wed, 15 Nov 2017 23:35:56 +0000 (15:35 -0800)] 
removed wrong assertion

7 years agoremoved a few specialized traces
Yann Collet [Wed, 15 Nov 2017 23:04:53 +0000 (15:04 -0800)] 
removed a few specialized traces

7 years agoshortened repcode match finder implementation
Yann Collet [Wed, 15 Nov 2017 22:37:40 +0000 (14:37 -0800)] 
shortened repcode match finder implementation

7 years agofixed corruption issue
Yann Collet [Wed, 15 Nov 2017 21:44:24 +0000 (13:44 -0800)] 
fixed corruption issue

7 years agostill fighting data corruption
Yann Collet [Wed, 15 Nov 2017 19:29:24 +0000 (11:29 -0800)] 
still fighting data corruption

due to messed up tree.
Seems to happen when reaching end of buffer.

7 years agomerged rep search into btMatchSearch
Yann Collet [Wed, 15 Nov 2017 02:08:17 +0000 (18:08 -0800)] 
merged rep search into btMatchSearch

but there is a tree corruption somewhere ...
bug hunt ongoing

7 years agomerged repcode search into BT match search
Yann Collet [Mon, 13 Nov 2017 10:19:36 +0000 (02:19 -0800)] 
merged repcode search into BT match search

this version has same speed as branch `opt`
which is itself 5-10% slower than branch `dev`
(no identified reason)

It does not compress exactly the same as `opt` or `dev`,
maybe because it doesn't stop search after repcodes,
leading to sometimes better compression, sometimes worse
(by a small margin).

warning : _extDict path does not work for the time being
This means that benchmark module works,
but file module will fail with large files (and high compression level).
Objective is to fuse _extDict path into current one,
in order to have a single parser to maintain.

7 years agocmake: fixed lib/CMakeLists.txt 912/head
Yann Collet [Fri, 10 Nov 2017 17:39:11 +0000 (09:39 -0800)] 
cmake: fixed lib/CMakeLists.txt

changed file name from zstd_compress.h to zstd_compress_internal.h

7 years agoreduced scope of multiple variables
Yann Collet [Thu, 9 Nov 2017 20:46:34 +0000 (12:46 -0800)] 
reduced scope of multiple variables

renamed some variables for better understanding

7 years agolib/compress: created ZSTD_LLcode() and ZSTD_MLcode()
Yann Collet [Wed, 8 Nov 2017 20:33:06 +0000 (12:33 -0800)] 
lib/compress: created ZSTD_LLcode() and ZSTD_MLcode()

transform length into code.
Since transformation is needed in several places throughout the code,
better write the logic in one place.

7 years agozstd_opt: simplified ZSTD_getPrice() and ZSTD_updatePrice() interface
Yann Collet [Wed, 8 Nov 2017 20:20:07 +0000 (12:20 -0800)] 
zstd_opt: simplified ZSTD_getPrice() and ZSTD_updatePrice() interface

ZSTD_getPrice() and ZSTD_updatePrice() accept normal matchlength as argument
instead of matchlength-MINMATCH,
which makes them easier / more logical to use and read.
Conversion is simply done internally.

7 years agozstd_opt: refactor code for improved readability
Yann Collet [Wed, 8 Nov 2017 19:36:38 +0000 (11:36 -0800)] 
zstd_opt: refactor code for improved readability

renamed variables to be more meaningful
reduced scope of multiple variables
removed some useless var attribution

7 years agozstd_opt: ensure sufficient_len < ZSTD_OPT_NUM to simplify some tests
Yann Collet [Wed, 8 Nov 2017 19:05:32 +0000 (11:05 -0800)] 
zstd_opt: ensure sufficient_len < ZSTD_OPT_NUM to simplify some tests

7 years agorenamed zstd_compress.h into zstd_compress_internal.h
Yann Collet [Wed, 8 Nov 2017 00:15:23 +0000 (16:15 -0800)] 
renamed zstd_compress.h into zstd_compress_internal.h

to emphasize the fact that all definitions it contains
must remain private, accross lib/compress modules.

7 years agomoved a few structures from `zstd_internal.h` to `zstd_compress.h`
Yann Collet [Tue, 7 Nov 2017 23:27:06 +0000 (15:27 -0800)] 
moved a few structures from `zstd_internal.h` to `zstd_compress.h`

which is a more precise scope

7 years agoMerge pull request #908 from facebook/ubsan
Yann Collet [Tue, 7 Nov 2017 19:45:34 +0000 (11:45 -0800)] 
Merge pull request #908 from facebook/ubsan

Modified one pointer arithmetic expression to a more conformant way.

7 years agoMerge pull request #906 from facebook/fixAutoPledge
Yann Collet [Thu, 2 Nov 2017 17:14:20 +0000 (10:14 -0700)] 
Merge pull request #906 from facebook/fixAutoPledge

fix : ZSTD_compress_generic(,,,ZSTD_e_end) automatically sets pledgedSrcSize

7 years agofixed zstreamtest declaration after statement 908/head
Yann Collet [Thu, 2 Nov 2017 00:36:31 +0000 (17:36 -0700)] 
fixed zstreamtest declaration after statement

7 years agoremoved line with `//` comment 906/head
Yann Collet [Thu, 2 Nov 2017 00:01:45 +0000 (17:01 -0700)] 
removed line with `//` comment

this is for a different topic
(better parameter adaptation for small files + dictionary and/or custome parameters)

7 years agominor refactor
Yann Collet [Wed, 1 Nov 2017 23:57:48 +0000 (16:57 -0700)] 
minor refactor

added some traces and assert
related to hunting a potential ubsan error in 32-bits more
(it ends up being a compiler-side issue : https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82802).

Modified one pointer arithmetic expression for a more conformant way.

7 years agoMerge pull request #905 from terrelln/skip
Yann Collet [Wed, 1 Nov 2017 21:36:48 +0000 (14:36 -0700)] 
Merge pull request #905 from terrelln/skip

Allow skippable frames of any size

7 years agofix : ZSTD_compress_generic(,,,ZSTD_e_end) automatically sets pledgedSrcSize
Yann Collet [Wed, 1 Nov 2017 20:15:23 +0000 (13:15 -0700)] 
fix : ZSTD_compress_generic(,,,ZSTD_e_end) automatically sets pledgedSrcSize

as per documentation, on ZSTD_setPledgedSrcSize() :
> If all data is provided and consumed in a single round,
> this value (pledgedSrcSize) is overriden by srcSize instead.

This wasn't applied before compression level is transformed into compression parameters.
As a consequence, small input missed compression parameters adaptation.

It seems to work fine now : compression was compared with ZSTD_compress_advanced(),
results were the same.

7 years agoTest large skippable frames 905/head
Nick Terrell [Wed, 1 Nov 2017 20:10:03 +0000 (13:10 -0700)] 
Test large skippable frames

7 years agoAllow skippable frames of any size
Nick Terrell [Wed, 1 Nov 2017 19:49:51 +0000 (12:49 -0700)] 
Allow skippable frames of any size

7 years agoremoved direct call to malloc() from pool.c
Yann Collet [Wed, 1 Nov 2017 00:43:24 +0000 (17:43 -0700)] 
removed direct call to malloc() from pool.c

7 years agoMerge pull request #903 from terrelln/empty-input
Yann Collet [Sun, 29 Oct 2017 00:28:08 +0000 (17:28 -0700)] 
Merge pull request #903 from terrelln/empty-input

[libzstd] Fix parameter selection for empty input

7 years agoMerge pull request #902 from terrelln/buck
Yann Collet [Sun, 29 Oct 2017 00:26:45 +0000 (17:26 -0700)] 
Merge pull request #902 from terrelln/buck

Update BUCK files

7 years ago[libzstd] Fix parameter selection for empty input 903/head
Nick Terrell [Thu, 26 Oct 2017 00:10:57 +0000 (17:10 -0700)] 
[libzstd] Fix parameter selection for empty input

ZSTD_compress() and friends would treat an empty input as an unknown size
when selecting parameters. Thus, they would drastically overallocate the
context. Tell ZSTD_getParams() that the source size is 1 when it is empty.

7 years agoUpdate BUCK files 902/head
Nick Terrell [Wed, 25 Oct 2017 19:47:57 +0000 (12:47 -0700)] 
Update BUCK files

* Correct XXH namespace (Fixes #901)
* Multithreading always enabled
* GZIP/LZ4/LZMA always enabled
* Legacy support always fully enabled

7 years agofixed zbufftest
Yann Collet [Thu, 19 Oct 2017 21:05:23 +0000 (14:05 -0700)] 
fixed zbufftest

preserve "pledgedSrcSize=0" means "unknown" in init_advanced()

7 years agoMerge pull request #896 from facebook/simplifyio
Yann Collet [Thu, 19 Oct 2017 20:59:59 +0000 (13:59 -0700)] 
Merge pull request #896 from facebook/simplifyio

fileio and bench : ZSTD_NEWAPI as the only code path

7 years agofixed missing zstdmt_compress.h dependency 896/head
Yann Collet [Thu, 19 Oct 2017 19:09:34 +0000 (12:09 -0700)] 
fixed missing zstdmt_compress.h dependency

we lose a warning message :
when a job size is chosen < minimum job size for multithreading,
it is automatically resized to minimum size.

If this information is really useful, it should be present in zstd.h now.

7 years agobench: fixed Visual warning regarding struct initialization
Yann Collet [Thu, 19 Oct 2017 18:56:14 +0000 (11:56 -0700)] 
bench: fixed Visual warning regarding struct initialization

also :
removed dependency on zstdmt_compress.h
removed several unused macros
fileio : small code refactoring to reduce some variable scope

7 years agoIO and bench : ZSTD_NEWAPI is the only remaining code path
Yann Collet [Thu, 19 Oct 2017 00:01:53 +0000 (17:01 -0700)] 
IO and bench : ZSTD_NEWAPI is the only remaining code path

removed the other 2 code paths (single thread, and ZSTDMT ones)
keeping only the new advanced API, for easier code coverage.

It shall also fix identified issue with Visual Studio
which doesn't have ZSTD_NEWAPI defined.

7 years agoMerge pull request #895 from facebook/fileSize_unknown
Yann Collet [Wed, 18 Oct 2017 23:50:17 +0000 (16:50 -0700)] 
Merge pull request #895 from facebook/fileSize_unknown

Distinguish 0-size from size-unavailable

7 years agofixed wrong test to display compression status 895/head
Yann Collet [Wed, 18 Oct 2017 18:41:52 +0000 (11:41 -0700)] 
fixed wrong test to display compression status

7 years agofixed zlib wrapper
Yann Collet [Wed, 18 Oct 2017 18:18:27 +0000 (11:18 -0700)] 
fixed zlib wrapper

it was invoking ZSTD_initCStream_advanced() with pledgedSrcSize==0 and contentSizeFlag=1
which means "empty"
while the intention was to mean "unknown".

The contentSizeFlag==1 is new, it is a consequence of setting this value to 1 by default.

The solution selected here is to pass ZSTD_CONTENTSIZE_UNKNOWN to mean "unknown".
So contentSizeFlag remains set (it wasn't in previous versions).

7 years agoMerge pull request #891 from facebook/contentSize
Yann Collet [Wed, 18 Oct 2017 00:24:51 +0000 (17:24 -0700)] 
Merge pull request #891 from facebook/contentSize

Content size

7 years agoMerge pull request #890 from terrelln/dev
Yann Collet [Tue, 17 Oct 2017 23:34:53 +0000 (16:34 -0700)] 
Merge pull request #890 from terrelln/dev

Don't allow default tables to repeat

7 years agoadded a check to ensure 0-size is present in frame header
Yann Collet [Tue, 17 Oct 2017 23:23:20 +0000 (16:23 -0700)] 
added a check to ensure 0-size is present in frame header

7 years agoUTIL_getFileSize() returns UTIL_FILESIZE_UNKNOWN on failure
Yann Collet [Tue, 17 Oct 2017 23:14:25 +0000 (16:14 -0700)] 
UTIL_getFileSize() returns UTIL_FILESIZE_UNKNOWN on failure

UTIL_getFileSize() used to return zero on failure.
This made it impossible to distinguish a failure from a genuine empty file.
Both cases where coalesced.

Adding UTIL_FILESIZE_UNKNOWN constant has many consequences on user code,
since in many places, the `0` was assumed to mean "error".
This is no longer the case, and the error code must be actively checked.

7 years agoMerge pull request #892 from terrelln/seq-test
Yann Collet [Tue, 17 Oct 2017 21:11:38 +0000 (14:11 -0700)] 
Merge pull request #892 from terrelln/seq-test

[test] Exercise all codes in dictionary tables

7 years agofixed : Visual build compressing stdin with multi-threading enabled fails 891/head
Yann Collet [Tue, 17 Oct 2017 21:07:43 +0000 (14:07 -0700)] 
fixed : Visual build compressing stdin with multi-threading enabled fails

It was multiple reasons stacked :
- Visual use a different code path, because ZSTD_NEWAPI is not defined
- fileio.c sends `0` as `pledgedSrcSize` to mean `ZSTD_CONTENTSIZE_UNKNOWN`  (fixed)
- ZSTDMT_resetCCtx() interpreted `0` as "empty" instead of "unknown" (fixed)

7 years agoMerge pull request #894 from felixhandte/add-check-target
Yann Collet [Tue, 17 Oct 2017 20:51:27 +0000 (13:51 -0700)] 
Merge pull request #894 from felixhandte/add-check-target

Add `check` Target to Makefile

7 years agoAdd `check` Target to Makefile 894/head
W. Felix Handte [Tue, 17 Oct 2017 20:02:39 +0000 (16:02 -0400)] 
Add `check` Target to Makefile

7 years ago[test] Exercise all codes in dictionary tables 892/head
Nick Terrell [Tue, 17 Oct 2017 00:18:43 +0000 (17:18 -0700)] 
[test] Exercise all codes in dictionary tables

7 years agoedited ZSTD_initCStream_advanced() comment
Yann Collet [Mon, 16 Oct 2017 21:06:22 +0000 (14:06 -0700)] 
edited ZSTD_initCStream_advanced() comment

7 years agoplaytest : minor cosmetic changes
Yann Collet [Mon, 16 Oct 2017 21:01:42 +0000 (14:01 -0700)] 
playtest : minor cosmetic changes

7 years agoDon't allow default tables to repeat 890/head
Nick Terrell [Fri, 13 Oct 2017 20:23:57 +0000 (13:23 -0700)] 
Don't allow default tables to repeat

It isn't useful in any case to repeat default tables.
Saves a few bytes on Silesia, since we don't trigger the dictionary
heuristic.

Before: 211988480 => 73651998 bytes
After:  211988480 => 73651721 bytes

7 years agoMerge pull request #889 from terrelln/bug-fix
Yann Collet [Sat, 14 Oct 2017 08:29:42 +0000 (01:29 -0700)] 
Merge pull request #889 from terrelln/bug-fix

Fix invalid use of dictionary offcode table

7 years agodictionary compression use correct file size estimation
Yann Collet [Sat, 14 Oct 2017 08:21:43 +0000 (01:21 -0700)] 
dictionary compression use correct file size estimation

when determining compression parameters
to compress one file only.

For multiple files, it still "bets" that files are going to be small.

There was also a bug recently added in ZSTD_CCtx_loadDictionary_advanced()
making it incapable to use pledgedSrcSize to determine compression parameters.

7 years agochanged API comments to invite using macro ZSTD_CONTENTSIZE_UNKNOWN
Yann Collet [Sat, 14 Oct 2017 07:32:06 +0000 (00:32 -0700)] 
changed API comments to invite using macro ZSTD_CONTENTSIZE_UNKNOWN

to mean "pledgedSrcSize is not known at init time" instead of `0`.
Note that, a few prototypes created and documented with `0` to mean "unknown" still interpret "0" as unknown,
to avoid breaking 3rd party applications which depend on this behavior.
But this value is no longer recommended to mean "unknown".

In some future version, it might be possible to switch "0" to mean "empty",
as is already the case for several prototypes.
The advantage is that pledgedSrcSize field would have same behavior accross entire API,
making it easier to reason about.

Note that all concerned prototypes belong to the "experimental" API section.

srcSize is controlled at end of compression,
so if someone uses "0" to mean "unknown" while it effectively means "empty",
this is immediately caught by the compression function, which generates an error code : ZSTD_ERROR_srcSize_wrong

7 years agominor : zstd -l -v display each file name
Yann Collet [Sat, 14 Oct 2017 07:02:32 +0000 (00:02 -0700)] 
minor : zstd -l -v display each file name

7 years agoadd test for presence of decompressed size field in header
Yann Collet [Sat, 14 Oct 2017 06:47:01 +0000 (23:47 -0700)] 
add test for presence of decompressed size field in header

previous test was "display" only, it wouldn't trigger an error in case of missing header.

7 years agofixed ZSTDMT_initCStream() when contentSizeFlag==1 by default
Yann Collet [Sat, 14 Oct 2017 02:09:30 +0000 (19:09 -0700)] 
fixed ZSTDMT_initCStream() when contentSizeFlag==1 by default

and a wrong test in zstreamtest --mt

7 years agofixed ZSTD_initCStream_advanced() behavior, which depends on contentSizeFlag,
Yann Collet [Sat, 14 Oct 2017 02:01:58 +0000 (19:01 -0700)] 
fixed ZSTD_initCStream_advanced() behavior, which depends on contentSizeFlag,

and a stream fuzzer test, which was incorrect
(relied on 0 being unconditionnally transformed into `ZSTD_CONTENTSIZE_UNKNOWN`)

7 years agocontentSizeFlag enabled by default would also fail for streaming and MT operations
Yann Collet [Sat, 14 Oct 2017 01:32:06 +0000 (18:32 -0700)] 
contentSizeFlag enabled by default would also fail for streaming and MT operations

fixed

7 years agoensure fParams.contentSizeFlag starts at 1
Yann Collet [Sat, 14 Oct 2017 00:39:13 +0000 (17:39 -0700)] 
ensure fParams.contentSizeFlag starts at 1

such default was failing for ZSTD_compressBegin/ZSTD_compressContinue
fixed too

7 years agofileio: content size is enabled by default
Yann Collet [Fri, 13 Oct 2017 23:32:18 +0000 (16:32 -0700)] 
fileio: content size is enabled by default

7 years agoAdd DEBUGLOG() that prints FSE encoding types 889/head
Nick Terrell [Fri, 13 Oct 2017 21:09:17 +0000 (14:09 -0700)] 
Add DEBUGLOG() that prints FSE encoding types

7 years agoFix invalid use of dictionary offcode table
Nick Terrell [Fri, 13 Oct 2017 19:47:00 +0000 (12:47 -0700)] 
Fix invalid use of dictionary offcode table

Fixes #888.

7 years agoMerge branch 'dev' of github.com:facebook/zstd into dev
Yann Collet [Fri, 13 Oct 2017 09:36:40 +0000 (02:36 -0700)] 
Merge branch 'dev' of github.com:facebook/zstd into dev

7 years agominor code formatting
Yann Collet [Fri, 13 Oct 2017 09:36:16 +0000 (02:36 -0700)] 
minor code formatting

added a trace during sequence encoding

7 years agoMerge pull request #885 from terrelln/dev
Yann Collet [Mon, 9 Oct 2017 23:50:09 +0000 (16:50 -0700)] 
Merge pull request #885 from terrelln/dev

[doc] Add images for release notes

7 years ago[doc] Add images for release notes 885/head
Nick Terrell [Mon, 9 Oct 2017 23:44:31 +0000 (16:44 -0700)] 
[doc] Add images for release notes

7 years agofixed a small error in decodeCorpus 883/head
Yann Collet [Sat, 7 Oct 2017 22:19:52 +0000 (15:19 -0700)] 
fixed a small error in decodeCorpus

a compressed block must be strictly smaller than its decompressed size.

7 years agoplaytests: do not use cat on large files
Yann Collet [Fri, 6 Oct 2017 03:21:59 +0000 (20:21 -0700)] 
playtests: do not use cat on large files

some target have limitation making cat incompatible with large files
(namely debian hurd-i386)

7 years agoMerge pull request #882 from terrelln/list
Yann Collet [Wed, 4 Oct 2017 20:39:30 +0000 (13:39 -0700)] 
Merge pull request #882 from terrelln/list

[zstdcli] Add window size to verbose list

7 years ago[zstdcli] Add window size to verbose list 882/head
Nick Terrell [Wed, 4 Oct 2017 19:23:23 +0000 (12:23 -0700)] 
[zstdcli] Add window size to verbose list

```
> zstd --list -v file1 file2 file3
*** zstd command line interface 64-bits v1.3.2, by Yann Collet ***
Window Size: 512.00 KB (524288 B)
Compressed Size: 0.02 KB (19 B)
Check: XXH64

Window Size: 8192.00 KB (8388608 B)
Compressed Size: 0.02 KB (19 B)
Check: XXH64

Window Size: 512.00 KB (524288 B)
Compressed Size: 0.01 KB (15 B)
Check: None

```

7 years agoMerge pull request #881 from terrelln/dev
Yann Collet [Tue, 3 Oct 2017 21:49:07 +0000 (14:49 -0700)] 
Merge pull request #881 from terrelln/dev

Ensure dictionary Huff table can encode any symbol

7 years agoEnsure dictionary Huff table can encode any symbol 881/head
Nick Terrell [Tue, 3 Oct 2017 20:22:13 +0000 (13:22 -0700)] 
Ensure dictionary Huff table can encode any symbol

* Ensure that the dictionary Huffman CTable has maxSymbolValue 255.
* Fix a stack buffer overflow during compression dictionary loading.

7 years agofixed minor conversion warnings for printf
Yann Collet [Tue, 3 Oct 2017 00:28:57 +0000 (17:28 -0700)] 
fixed minor conversion warnings for printf

in debug mode

7 years agoMerge branch 'dev' of github.com:facebook/zstd into dev
Yann Collet [Mon, 2 Oct 2017 23:34:26 +0000 (16:34 -0700)] 
Merge branch 'dev' of github.com:facebook/zstd into dev

7 years agoMerge branch 'srcSize' into dev
Yann Collet [Mon, 2 Oct 2017 23:34:14 +0000 (16:34 -0700)] 
Merge branch 'srcSize' into dev

7 years agobumped version number
Yann Collet [Mon, 2 Oct 2017 23:27:25 +0000 (16:27 -0700)] 
bumped version number

and updated NEWS in anticipation for release

7 years agoMerge pull request #876 from facebook/srcSize
Yann Collet [Mon, 2 Oct 2017 22:02:05 +0000 (15:02 -0700)] 
Merge pull request #876 from facebook/srcSize

CLI Fix : srcSize written in frame headers when compressing multiple files

7 years agoMerge pull request #879 from terrelln/block-size
Yann Collet [Mon, 2 Oct 2017 21:51:47 +0000 (14:51 -0700)] 
Merge pull request #879 from terrelln/block-size

[libzstd] Set CLEVEL_CUSTOM correctly

7 years ago[libzstd] Set CLEVEL_CUSTOM correctly 879/head
Nick Terrell [Mon, 2 Oct 2017 20:43:30 +0000 (13:43 -0700)] 
[libzstd] Set CLEVEL_CUSTOM correctly

In `ZSTD_compressBegin_advanced()`, `ZSTD_parameters` are used to set the
compression parameters, but the level didn't get set to `CLEVEL_CUSTOM`, so
`ZSTD_compressBlock()` used the wrong parameters when checking the source
size.

7 years agoremoved isRegularFile parameter 876/head
Yann Collet [Mon, 2 Oct 2017 19:29:25 +0000 (12:29 -0700)] 
removed isRegularFile parameter

no longer useful : size of src is determined for each file.

7 years agointerruption handler and variable are static
Yann Collet [Mon, 2 Oct 2017 18:39:05 +0000 (11:39 -0700)] 
interruption handler and variable are static

7 years ago/contrib: fixed license header
Yann Collet [Mon, 2 Oct 2017 09:07:17 +0000 (02:07 -0700)] 
/contrib: fixed license header

removed last reference to PATENTS file

7 years agoremoved the statement for all versions of Visual Studio
Yann Collet [Mon, 2 Oct 2017 09:02:16 +0000 (02:02 -0700)] 
removed the statement for all versions of Visual Studio

7 years agosame error in Visual Studio 2012 ...
Yann Collet [Mon, 2 Oct 2017 08:12:40 +0000 (01:12 -0700)] 
same error in Visual Studio 2012 ...

7 years agoThe issue also impacts Visual Studio 2010
Yann Collet [Mon, 2 Oct 2017 07:45:28 +0000 (00:45 -0700)] 
The issue also impacts Visual Studio 2010

7 years agoadded (void)sig to avoid compilers complaining that sig is not used.
Yann Collet [Mon, 2 Oct 2017 07:19:47 +0000 (00:19 -0700)] 
added (void)sig to avoid compilers complaining that sig is not used.

7 years agoconditionnally removed invocation that generates a buggy warning with Visual Studio...
Yann Collet [Mon, 2 Oct 2017 07:02:24 +0000 (00:02 -0700)] 
conditionnally removed invocation that generates a buggy warning with Visual Studio 2008

7 years agoMerge branch 'dev' of github.com:facebook/zstd into dev
Yann Collet [Sun, 1 Oct 2017 22:33:57 +0000 (15:33 -0700)] 
Merge branch 'dev' of github.com:facebook/zstd into dev

7 years agoblindfix for Visual : minor casting issue
Yann Collet [Sun, 1 Oct 2017 22:32:48 +0000 (15:32 -0700)] 
blindfix for Visual : minor casting issue

should not happen since SIGIGN is provided by <signal.h>,
so it should work "ouf of the box"

7 years agoMerge pull request #877 from facebook/compressBound
Yann Collet [Sun, 1 Oct 2017 21:59:38 +0000 (14:59 -0700)] 
Merge pull request #877 from facebook/compressBound

added ZSTD_COMPRESSBOUND() as a macro

7 years agocli: add Ctrl-C support, requested by @mike155 in #854
Yann Collet [Sun, 1 Oct 2017 19:10:26 +0000 (12:10 -0700)] 
cli: add Ctrl-C support, requested by @mike155 in #854

Now, pressing Ctrl-C during compression or decompression
will erase operation artefact (unfinished destination file)
before leaving execution.