]> git.ipfire.org Git - thirdparty/zstd.git/log
thirdparty/zstd.git
7 years agoTest for incorrect pledgeSrcSize earlier 1009/head
Nick Terrell [Thu, 1 Feb 2018 20:04:05 +0000 (12:04 -0800)] 
Test for incorrect pledgeSrcSize earlier

7 years agoMerge pull request #1008 from terrelln/hlog3
Yann Collet [Wed, 31 Jan 2018 20:49:07 +0000 (12:49 -0800)] 
Merge pull request #1008 from terrelln/hlog3

Fix hashLog3 size when copying cdict tables

7 years ago[fuzzer] Check ZSTD_initStaticCDict() for every level 1008/head
Nick Terrell [Wed, 31 Jan 2018 19:12:54 +0000 (11:12 -0800)] 
[fuzzer] Check ZSTD_initStaticCDict() for every level

7 years agoFix hashLog3 size when copying cdict tables
Nick Terrell [Tue, 30 Jan 2018 21:30:30 +0000 (13:30 -0800)] 
Fix hashLog3 size when copying cdict tables

7 years agoMerge pull request #1000 from facebook/progressiveFlush
Yann Collet [Wed, 31 Jan 2018 06:49:47 +0000 (22:49 -0800)] 
Merge pull request #1000 from facebook/progressiveFlush

Progressive flush

7 years agoupdated zstd api manual 1000/head
Yann Collet [Tue, 30 Jan 2018 23:05:12 +0000 (15:05 -0800)] 
updated zstd api manual

7 years agofixed function declaration ZSTD_getBlockSize()
Yann Collet [Tue, 30 Jan 2018 23:03:39 +0000 (15:03 -0800)] 
fixed function declaration ZSTD_getBlockSize()

7 years agozstdmt: changed naming convention
Yann Collet [Tue, 30 Jan 2018 22:43:36 +0000 (14:43 -0800)] 
zstdmt: changed naming convention

to avoid confusion with blocks.

also:
- jobs are cut into chunks of 512KB now, to reduce nb of mutex calls.
- fix function declaration ZSTD_getBlockSizeMax()
- fix outdated comment

7 years agobumped version number to v1.3.4
Yann Collet [Sun, 28 Jan 2018 06:23:26 +0000 (22:23 -0800)] 
bumped version number to v1.3.4

also added a paragraph on using compression level with training mode
as this is a recurrent question (see for example #1004)

7 years agofixed minor conversion warning for C++ compilation mode
Yann Collet [Sat, 27 Jan 2018 02:18:42 +0000 (18:18 -0800)] 
fixed minor conversion warning for C++ compilation mode

7 years agojob mutex creation is checked
Yann Collet [Sat, 27 Jan 2018 02:09:25 +0000 (18:09 -0800)] 
job mutex creation is checked

7 years agozstdmt: there is now one mutex/cond per job
Yann Collet [Sat, 27 Jan 2018 01:48:33 +0000 (17:48 -0800)] 
zstdmt: there is now one mutex/cond per job

7 years agozstdmt: minor code refactor for clarity
Yann Collet [Sat, 27 Jan 2018 01:08:58 +0000 (17:08 -0800)] 
zstdmt: minor code refactor for clarity

7 years agozstdmt: job table correctly cleaned after synchronous ZSTDMT_compress()
Yann Collet [Fri, 26 Jan 2018 22:35:54 +0000 (14:35 -0800)] 
zstdmt: job table correctly cleaned after synchronous ZSTDMT_compress()

7 years agozstdmt : refactor a few member names
Yann Collet [Fri, 26 Jan 2018 21:00:14 +0000 (13:00 -0800)] 
zstdmt : refactor a few member names

for clarity

7 years agozstdmt : flush() only lock to read shared job members
Yann Collet [Fri, 26 Jan 2018 20:15:43 +0000 (12:15 -0800)] 
zstdmt : flush() only lock to read shared job members

Other job members are accessed directly.
This avoids a full job copy, which would access everything,
including a few members that are supposed to be used by worker only,
uselessly requiring additional locks to avoid race conditions.

7 years agominor : ZSTDMT_writeLastEmptyBlock() is a void function
Yann Collet [Fri, 26 Jan 2018 19:06:34 +0000 (11:06 -0800)] 
minor : ZSTDMT_writeLastEmptyBlock() is a void function

because it cannot fail

7 years agozstdmt : fixed memory leak
Yann Collet [Fri, 26 Jan 2018 18:44:09 +0000 (10:44 -0800)] 
zstdmt : fixed memory leak

writeLastEmptyBlock() must release srcBuffer
as mtctx assumes it's done by job worker.

minor : changed 2 job member names (src->srcBuffer, srcStart->prefixStart) for clarity

7 years agozstdmt : refactor job members
Yann Collet [Fri, 26 Jan 2018 18:20:38 +0000 (10:20 -0800)] 
zstdmt : refactor job members

grouped by sharing properties

7 years agofixed minor declaration-after-statement warning
Yann Collet [Fri, 26 Jan 2018 01:45:18 +0000 (17:45 -0800)] 
fixed minor declaration-after-statement warning

7 years agozstdmt: removed job->jobCompleted
Yann Collet [Fri, 26 Jan 2018 01:35:49 +0000 (17:35 -0800)] 
zstdmt: removed job->jobCompleted

replaced by equivalent signal job->consumer == job->srcSize.

created additional functions
ZSTD_writeLastEmptyBlock()
and
ZSTDMT_writeLastEmptyBlock()
required when it's necessary to finish a frame with a last empty job, to create an "end of frame" marker.

It avoids creating a job with srcSize==0.

7 years agozstdmt:: renamed mutex and cond to underline they are context-global
Yann Collet [Thu, 25 Jan 2018 22:52:34 +0000 (14:52 -0800)] 
zstdmt:: renamed mutex and cond to underline they are context-global

7 years agoMerge pull request #1001 from ne-sted/fix-defaults-align
Yann Collet [Wed, 24 Jan 2018 17:34:36 +0000 (09:34 -0800)] 
Merge pull request #1001 from ne-sted/fix-defaults-align

cli: fix align of defaults

7 years agocli: fix align of defaults 1001/head
ne-sted [Wed, 24 Jan 2018 12:59:44 +0000 (14:59 +0200)] 
cli: fix align of defaults

7 years agozstdmt : fixed complex sequencing bug
Yann Collet [Wed, 24 Jan 2018 02:00:51 +0000 (18:00 -0800)] 
zstdmt : fixed complex sequencing bug

zstdmt would shortcut to single-thread blocking mode
in some rare cases where data is sent to be compressed but is not yet ready.

7 years agozstdmt : correctly set end of frame
Yann Collet [Tue, 23 Jan 2018 23:52:40 +0000 (15:52 -0800)] 
zstdmt : correctly set end of frame

7 years agozstdmt : fix end condition (ZSTD_e_end)
Yann Collet [Tue, 23 Jan 2018 23:19:11 +0000 (15:19 -0800)] 
zstdmt : fix end condition (ZSTD_e_end)

When ZSTD_e_end directive is provided,
the question is not only "are internal buffers completely flushed",
it is also "is current frame completed".

In some rare cases,
it was possible for internal buffers to be completely flushed,
triggering a @return == 0,
but frame was not completed as it needed a last null-size block to mark the end,
resulting in an unfinished frame.

7 years agozstdmt: fixed minor race condition
Yann Collet [Tue, 23 Jan 2018 22:03:07 +0000 (14:03 -0800)] 
zstdmt: fixed minor race condition

no real consequence, but pollute tsan tests :

job->dstBuff is being modified inside worker,
while main thread might read it accidentally
because it copies whole job.
But since it doesn't used dstBuff, there is no real consequence.

Other potential solution : only copy useful data, instead of whole job

7 years agozstdmt : fixed ending frame with 0-size block
Yann Collet [Tue, 23 Jan 2018 21:12:40 +0000 (13:12 -0800)] 
zstdmt : fixed ending frame with 0-size block

7 years agoMerge pull request #998 from facebook/zcat
Yann Collet [Tue, 23 Jan 2018 20:01:25 +0000 (12:01 -0800)] 
Merge pull request #998 from facebook/zcat

add `zcat` symlink support, suggested by @wtarreau

7 years agozstreamtest : fixed test 32 : multi-thread compression
Yann Collet [Sat, 20 Jan 2018 06:11:11 +0000 (22:11 -0800)] 
zstreamtest : fixed test 32 : multi-thread compression

using ZSTD_compress_generic(,,ZSTD_e_end)
Since it already provides ZSTD_e_end as directive,
it should not be followed by ZSTDMT_endStream().

7 years agozstdmt : fixed last job size
Yann Collet [Sat, 20 Jan 2018 02:19:09 +0000 (18:19 -0800)] 
zstdmt : fixed last job size

7 years agozstdmt : finally vanquished an elusive and rare race condition
Yann Collet [Sat, 20 Jan 2018 01:35:08 +0000 (17:35 -0800)] 
zstdmt : finally vanquished an elusive and rare race condition

7 years agozstdmt : simplify job creation
Yann Collet [Fri, 19 Jan 2018 21:19:59 +0000 (13:19 -0800)] 
zstdmt : simplify job creation

job will not be created when not enough room within job Table

7 years agozstdmt: fixed corruption issue in ZSTDMT_endStream()
Yann Collet [Fri, 19 Jan 2018 20:41:56 +0000 (12:41 -0800)] 
zstdmt: fixed corruption issue in ZSTDMT_endStream()

when invoked directly.

7 years agoadd `zcat` symlink support, suggested by @wtarreau 998/head
Yann Collet [Fri, 19 Jan 2018 19:26:35 +0000 (11:26 -0800)] 
add `zcat` symlink support, suggested by @wtarreau

added some test
also updated relevant doc

+ fixed a mistake in `lz4` symlink support :
  lz4 utility doesn't remove source files by default (like zstd, but unlike gzip).
  The symlink must behave the same.

7 years agozstdmt uses POOL_tryAdd() to call a new worker
Yann Collet [Fri, 19 Jan 2018 18:01:40 +0000 (10:01 -0800)] 
zstdmt uses POOL_tryAdd() to call a new worker

so that it's no longer a blocking call.
This makes it possible to stream out data gradually,
while waiting for a worker to become available.

7 years agoMerge pull request #995 from facebook/progressiveMT
Yann Collet [Fri, 19 Jan 2018 01:59:49 +0000 (17:59 -0800)] 
Merge pull request #995 from facebook/progressiveMT

Progressive mt

7 years agoMerge pull request #994 from facebook/constCDict
Yann Collet [Fri, 19 Jan 2018 01:57:53 +0000 (17:57 -0800)] 
Merge pull request #994 from facebook/constCDict

changed initStatic?Dict() return type to const ZSTD_?Dict*

7 years agofixed frame checksum issue
Yann Collet [Fri, 19 Jan 2018 00:20:26 +0000 (16:20 -0800)] 
fixed frame checksum issue

and race conditions

7 years agoadded POOL_tryAdd()
Yann Collet [Thu, 18 Jan 2018 22:39:51 +0000 (14:39 -0800)] 
added POOL_tryAdd()

7 years agoMerge branch 'dev' into constCDict 994/head
Yann Collet [Thu, 18 Jan 2018 21:36:43 +0000 (13:36 -0800)] 
Merge branch 'dev' into constCDict

7 years agoMerge branch 'progressiveMT' into progressiveFlush
Yann Collet [Thu, 18 Jan 2018 21:35:24 +0000 (13:35 -0800)] 
Merge branch 'progressiveMT' into progressiveFlush

7 years agoMerge branch 'dev' into progressiveMT 995/head
Yann Collet [Thu, 18 Jan 2018 21:34:56 +0000 (13:34 -0800)] 
Merge branch 'dev' into progressiveMT

7 years agoMerge pull request #997 from terrelln/empty-dict
Yann Collet [Thu, 18 Jan 2018 21:34:31 +0000 (13:34 -0800)] 
Merge pull request #997 from terrelln/empty-dict

Set repcodes for empty ZSTD_CDict

7 years agoSet repcodes for empty ZSTD_CDict 997/head
Nick Terrell [Thu, 18 Jan 2018 21:28:30 +0000 (13:28 -0800)] 
Set repcodes for empty ZSTD_CDict

When the dictionary is <= 8 bytes, no data is loaded from the dictionary.
In this case the repcodes weren't set, because they were inserted after the
size check. Fix this problem in general by first setting the cdict state to
a clean state of an empty dictionary, then filling the state from there.

7 years agofileio: READY_FOR_UPDATE() is now a function-like macro
Yann Collet [Thu, 18 Jan 2018 19:27:13 +0000 (11:27 -0800)] 
fileio: READY_FOR_UPDATE() is now a function-like macro

as suggested by @terrelln

7 years agofixes for @terrelln comments
Yann Collet [Thu, 18 Jan 2018 19:15:23 +0000 (11:15 -0800)] 
fixes for @terrelln comments

7 years agozstdmt: added ability to flush current job before it's completed
Yann Collet [Thu, 18 Jan 2018 19:03:27 +0000 (11:03 -0800)] 
zstdmt: added ability to flush current job before it's completed

however, zstdmt may still wait on next available worker,
so it's not smooth yet.

7 years agofixed a few access contention
Yann Collet [Thu, 18 Jan 2018 01:18:19 +0000 (17:18 -0800)] 
fixed a few access contention

passes thread sanitizer test

7 years agoIntroduce ZSTD_getFrameProgression()
Yann Collet [Thu, 18 Jan 2018 00:39:02 +0000 (16:39 -0800)] 
Introduce ZSTD_getFrameProgression()

Produces 3 statistics for ongoing frame compression :
- ingested
- consumed (effectively compressed)
- produced

Ingested can be larger than consumed due to buffering effect.

For the time being, this patch mostly fixes the % ratio issue,
since it computes consumed / produced,
instead of ingested / produced.

That being said, update is not "smooth",
because on a slow enough setting,
fileio spends most of its time waiting for a worker to complete its job.

This could be improved thanks to more granular flushing
i.e. start flushing before ongoing job is fully completed.

7 years agoMerge pull request #991 from facebook/progressiveMT
Yann Collet [Wed, 17 Jan 2018 22:35:23 +0000 (14:35 -0800)] 
Merge pull request #991 from facebook/progressiveMT

Non-blocking compression

7 years agochanged initStatic?Dict() return type to const ZSTD_?Dict*
Yann Collet [Wed, 17 Jan 2018 22:08:48 +0000 (14:08 -0800)] 
changed initStatic?Dict() return type to const ZSTD_?Dict*

ZSTD_create?Dict() is required to produce a ?Dict* return type
because `free()` does not accept a `const type*` argument.
If it wasn't for this restriction, I would have preferred to create a `const ?Dict*` object
to emphasize the fact that, once created, a dictionary never changes
(hence can be shared concurrently until the end of its lifetime).

There is no such limitation with initStatic?Dict() :
as stated in the doc, there is no corresponding free() function,
since `workspace` is provided, hence allocated, externally,
it can only be free() externally.

Which means, ZSTD_initStatic?Dict() can return a `const ZSTD_?Dict*` pointer.

Tested with `make all`, to catch initStatic's users,
which, incidentally, also updated zstd.h documentation.

7 years agoMerge pull request #993 from krab/dev-cmake-windows-mt
Yann Collet [Wed, 17 Jan 2018 21:52:56 +0000 (13:52 -0800)] 
Merge pull request #993 from krab/dev-cmake-windows-mt

CMake: fixed multithreading build on Windows

7 years agoMerge branch 'dev' into progressiveMT 991/head
Yann Collet [Wed, 17 Jan 2018 21:51:03 +0000 (13:51 -0800)] 
Merge branch 'dev' into progressiveMT

fixed minor conflict on cdict

7 years agoMerge pull request #992 from terrelln/small-cdict
Yann Collet [Wed, 17 Jan 2018 21:47:42 +0000 (13:47 -0800)] 
Merge pull request #992 from terrelln/small-cdict

Reduce size of ZSTD_CDict

7 years agozstdmt : fixed very large window sizes
Yann Collet [Wed, 17 Jan 2018 20:39:58 +0000 (12:39 -0800)] 
zstdmt : fixed very large window sizes

would create too large buffers,
since default job size == window size * 4.

This would crash on 32-bit systems.

Also : jobSize being a 32-bit unsigned, it cannot be >= 4 GB,
so the formula was failing for large window sizes >= 1 GB.
Fixed now : max job Size is 2 GB, whatever the window size.

7 years agozstdmt: fixed an endless loop on allocation failure
Yann Collet [Wed, 17 Jan 2018 20:10:15 +0000 (12:10 -0800)] 
zstdmt: fixed an endless loop on allocation failure

this happened on 32-bits build when requiring a too large input buffer,
typically on wlog=29, creating jobs of 2 GB size.

also : zstd32 now compiles with multithread support enabled by default
(can be disabled with HAVE_THREAD=0)

7 years agoReduce size of ZSTD_CDict 992/head
Nick Terrell [Tue, 16 Jan 2018 23:23:39 +0000 (15:23 -0800)] 
Reduce size of ZSTD_CDict

Shaves 492,076 B off of the `ZSTD_CDict`.
The size of a `ZSTD_CDict` created from a 112,640 B dictionary is:

| Level | Before (B) | After (B) |
|-------|------------|-----------|
| 1     | 648,448    | 156,412   |
| 3     | 1,140,008  | 647,932   |

7 years agozstdmt: minor variable renaming, for clarity
Yann Collet [Wed, 17 Jan 2018 19:39:07 +0000 (11:39 -0800)] 
zstdmt: minor variable renaming, for clarity

7 years agoCMake: fixed multithreading build on Windows 993/head
Alexey Ivanov [Wed, 17 Jan 2018 07:27:52 +0000 (10:27 +0300)] 
CMake: fixed multithreading build on Windows

`ZSTD_MULTITHREAD_SUPPORT` option fixed for Windows.

Signed-off-by: Alexey Ivanov <alexey.ivanes@gmail.com>
7 years agofix fileio progression status update
Yann Collet [Wed, 17 Jan 2018 01:35:00 +0000 (17:35 -0800)] 
fix fileio progression status update

The compression % is no longer correct,
since it's no longer possible to make direct correlation
between nb bytes read and nb bytes written
due to large internal buffer inside CCtx
(exacerbated with --long).

The current "fix" is to no longer display the %.

A more complex solution will have to count exactly how much data has been consumed and compressed internally, within CCtx buffers.

7 years agocli: fix for no-MT mode
Yann Collet [Wed, 17 Jan 2018 01:28:11 +0000 (17:28 -0800)] 
cli: fix for no-MT mode

when cli is compiled without MT support,
invoking ZSTD_p_nonBlockingMode result in an error code.

This patch only sets ZSTD_p_nonBlockingMode when ZSTD_MULTITHREAD is set, meaning there is MT support.

The error code could also be intentionnally ignored (there is no side effect).

7 years agointroduced parameter ZSTD_p_nonBlockingMode
Yann Collet [Wed, 17 Jan 2018 00:15:47 +0000 (16:15 -0800)] 
introduced parameter ZSTD_p_nonBlockingMode

This new parameter makes it possible to call
streaming ZSTDMT with a single thread set
which is non blocking.

It makes it possible for the main thread to do other tasks in parallel
while the worker thread does compression.
Typically, for zstd cli, it means it can do I/O stuff.

Applied within fileio.c, this patch provides non-negligible gains during compression.

Tested on my laptop, with enwik9 (1000000000 bytes) : time zstd -f enwik9

With traditional single-thread blocking mode :
real    0m9.557s
user    0m8.861s
sys     0m0.538s

With new single-worker non blocking mode :
real    0m7.938s
user    0m8.049s
sys     0m0.514s

=> 20% faster

7 years agoZSTDMT : minor CCtx memory optimization
Yann Collet [Tue, 16 Jan 2018 23:34:41 +0000 (15:34 -0800)] 
ZSTDMT : minor CCtx memory optimization

can be useful when a compression job only has small amount of data to compress.

7 years agoZSTDMT can now work in non-blocking mode with 1 thread
Yann Collet [Tue, 16 Jan 2018 23:28:43 +0000 (15:28 -0800)] 
ZSTDMT can now work in non-blocking mode with 1 thread

it still fallbacks to single-thread blocking invocation
when input is small (<1job)
or when invoking ZSTDMT_compress(), which is blocking.

Also : fixed a bug in new block-granular compression routine.

7 years agoMerge branch 'dev' into progressiveMT
Yann Collet [Tue, 16 Jan 2018 20:54:33 +0000 (12:54 -0800)] 
Merge branch 'dev' into progressiveMT

7 years agoMerge pull request #956 from terrelln/mf-struct
Yann Collet [Tue, 16 Jan 2018 20:37:44 +0000 (12:37 -0800)] 
Merge pull request #956 from terrelln/mf-struct

Split ZSTD_CCtx into smaller sub-structures

7 years agoMerge pull request #987 from facebook/checkTag
Yann Collet [Tue, 16 Jan 2018 19:52:32 +0000 (11:52 -0800)] 
Merge pull request #987 from facebook/checkTag

Check tag

7 years agoensure MOREFLAGS are not lost in root->tests Makefile invocation
Yann Collet [Tue, 16 Jan 2018 19:50:16 +0000 (11:50 -0800)] 
ensure MOREFLAGS are not lost in root->tests Makefile invocation

7 years agotravis ci : added gcc-7 test
Yann Collet [Tue, 16 Jan 2018 19:40:42 +0000 (11:40 -0800)] 
travis ci : added gcc-7 test

also added `-Werror` to sanitizer tests

7 years agoReorganize block state 956/head
Nick Terrell [Fri, 12 Jan 2018 20:06:10 +0000 (12:06 -0800)] 
Reorganize block state

7 years agoSplit ZSTD_CCtx into smaller sub-structures
Nick Terrell [Wed, 13 Dec 2017 00:51:00 +0000 (16:51 -0800)] 
Split ZSTD_CCtx into smaller sub-structures

7 years agoMerge pull request #990 from krab/dev-cmake-libdir
Yann Collet [Tue, 16 Jan 2018 02:55:21 +0000 (18:55 -0800)] 
Merge pull request #990 from krab/dev-cmake-libdir

CMake: use GNUInstallDirs for library install dir

7 years agoCMake: use GNUInstallDirs for library install dir 990/head
Alexey Ivanov [Mon, 15 Jan 2018 19:48:46 +0000 (22:48 +0300)] 
CMake: use GNUInstallDirs for library install dir

Libraries now will be installed in the correct directory on x86_64 linux systems,
and can be changed with `-DCMAKE_INSTALL_LIBDIR=<dirname>` option.

7 years agoadded tag-triggered test 987/head
Yann Collet [Mon, 15 Jan 2018 01:06:21 +0000 (17:06 -0800)] 
added tag-triggered test

ensure tag and libzstd version are compatible

7 years agoadded tests/checkTag
Yann Collet [Mon, 15 Jan 2018 01:03:45 +0000 (17:03 -0800)] 
added tests/checkTag

compared provided tag with current libzstd version

7 years agomake -C tests legacy : minor flag alteration
Yann Collet [Sun, 14 Jan 2018 22:09:17 +0000 (14:09 -0800)] 
make -C tests legacy : minor flag alteration

ZSTD_LEGACY_SUPPORT is a macro constant,
so it should be part of CPPFLAGS, instead of CFLAGS

7 years agotests/Makefile : fixed target allnothread
Yann Collet [Sun, 14 Jan 2018 06:00:05 +0000 (22:00 -0800)] 
tests/Makefile : fixed target allnothread

ensures MT is disabled

7 years agoadded `make list` capability to `tests/Makefile`
Yann Collet [Sun, 14 Jan 2018 05:54:21 +0000 (21:54 -0800)] 
added `make list` capability to `tests/Makefile`

7 years agoMerge pull request #984 from terrelln/dict-load
Yann Collet [Sat, 13 Jan 2018 21:20:42 +0000 (13:20 -0800)] 
Merge pull request #984 from terrelln/dict-load

Load more dictionary positions into table if empty

7 years agozstdmt : can compress at block granularity
Yann Collet [Sat, 13 Jan 2018 21:18:57 +0000 (13:18 -0800)] 
zstdmt : can compress at block granularity

offering perspective of more accurate progression report.

7 years agoLoad more dictionary positions into table if empty 984/head
Nick Terrell [Fri, 12 Jan 2018 20:26:47 +0000 (12:26 -0800)] 
Load more dictionary positions into table if empty

If the hash table is empty load positions into the hash table
that we would otherwise skip.

| Level | Data Set     | Improvement |
|-------|--------------|-------------|
| 1     | github       | 0.44%       |
| 1     | hg-changelog | 0.13%       |
| 1     | hg-commands  | 1.28%       |
| 1     | hg-manifest  | 0.70%       |
| 3     | github       | 0.74%       |
| 3     | hg-changelog | 0.87%       |
| 3     | hg-commands  | 1.74%       |
| 3     | hg-manifest  | 0.23%       |

7 years agoMerge pull request #983 from terrelln/dict-wlog
Yann Collet [Fri, 12 Jan 2018 15:47:43 +0000 (07:47 -0800)] 
Merge pull request #983 from terrelln/dict-wlog

Increase windowLog from CDict based on the srcSize when known

7 years agoMerge pull request #970 from facebook/dubtlazy
Yann Collet [Fri, 12 Jan 2018 15:28:59 +0000 (07:28 -0800)] 
Merge pull request #970 from facebook/dubtlazy

Delayed update Binary Tree for Lazy strategy

7 years agoAdd test for cdict window log adjustment 983/head
Nick Terrell [Fri, 12 Jan 2018 00:45:16 +0000 (16:45 -0800)] 
Add test for cdict window log adjustment

7 years agoIncrease windowLog from CDict based on the srcSize when known
Nick Terrell [Thu, 11 Jan 2018 22:35:04 +0000 (14:35 -0800)] 
Increase windowLog from CDict based on the srcSize when known

7 years agoMerge branch 'dev' into dubtlazy 970/head
Yann Collet [Thu, 11 Jan 2018 21:25:08 +0000 (13:25 -0800)] 
Merge branch 'dev' into dubtlazy

and fixed conflicts

7 years agoMerge pull request #982 from facebook/fix304
Yann Collet [Thu, 11 Jan 2018 21:20:59 +0000 (13:20 -0800)] 
Merge pull request #982 from facebook/fix304

Fix for #304 and #977 : error during dictionary creation

7 years agochanged function name to ZSTD_DUBT_findBestMatch()
Yann Collet [Thu, 11 Jan 2018 20:38:31 +0000 (12:38 -0800)] 
changed function name to ZSTD_DUBT_findBestMatch()

7 years agoMerge pull request #981 from facebook/fix976
Yann Collet [Thu, 11 Jan 2018 19:40:07 +0000 (11:40 -0800)] 
Merge pull request #981 from facebook/fix976

fixed bug #976, reported by @indygreg

7 years agoadded warning message 982/head
Yann Collet [Thu, 11 Jan 2018 19:29:28 +0000 (11:29 -0800)] 
added warning message

when pathological dataset is detected
(note : cover_optimize needs -v to display the warning)

7 years agofixed #304
Yann Collet [Thu, 11 Jan 2018 19:16:32 +0000 (11:16 -0800)] 
fixed #304

Pathological samples may result in literal section being incompressible.
This case is now detected,
and literal distribution is replaced by one that can be written into the dictionary.

7 years agoadded a test case for dictBuilder failure
Yann Collet [Thu, 11 Jan 2018 17:42:38 +0000 (09:42 -0800)] 
added a test case for dictBuilder failure

cyclic data set makes the entropy stage fails
now, onto a fix for #304 ...

7 years agoMerge pull request #980 from conor42/dev
Yann Collet [Thu, 11 Jan 2018 16:33:35 +0000 (08:33 -0800)] 
Merge pull request #980 from conor42/dev

Fix break condition in decompression noise test

7 years agofixed minor warning on prototype definition 981/head
Yann Collet [Thu, 11 Jan 2018 12:49:19 +0000 (04:49 -0800)] 
fixed minor warning on prototype definition

7 years agofixed bug #976, reported by @indygreg
Yann Collet [Thu, 11 Jan 2018 04:33:45 +0000 (20:33 -0800)] 
fixed bug #976, reported by @indygreg

constants in zstd.h should not depend on MIN() macro which existence is not guaranteed.

Added a test to check the specific constants.
The test is a bit too specific.
But I have found no way to control a more generic "are all macro already defined" condition,
especially as this is a valid construction (the missing macro might be defined later, intentionnally).

7 years agoFix break condition in decompression noise test 980/head
conor42 [Thu, 11 Jan 2018 01:42:58 +0000 (11:42 +1000)] 
Fix break condition in decompression noise test

The bug prevents noise being added

7 years agoMerge pull request #979 from facebook/memdoc
Yann Collet [Thu, 11 Jan 2018 01:39:37 +0000 (17:39 -0800)] 
Merge pull request #979 from facebook/memdoc

Update API documentation related to memory management capabilities

7 years agoMerge pull request #974 from terrelln/dstfile
Yann Collet [Wed, 10 Jan 2018 18:02:48 +0000 (19:02 +0100)] 
Merge pull request #974 from terrelln/dstfile

[fileio] Improve safety of output file modifications