platform/upstream/lz4.git
6 years agominor man fix on clevels
Yann Collet [Mon, 19 Mar 2018 23:18:10 +0000 (16:18 -0700)]
minor man fix on clevels

6 years agofix #482: change CFLAGS to CXXFLAGS
Yann Collet [Fri, 9 Mar 2018 19:54:32 +0000 (11:54 -0800)]
fix #482: change CFLAGS to CXXFLAGS

as they are associated with $(CXX)

6 years agofix #481: ensure liblz4.a dependency for `make all`
Yann Collet [Fri, 9 Mar 2018 17:57:29 +0000 (09:57 -0800)]
fix #481: ensure liblz4.a dependency for `make all`

`make all` will trigger several sub-directory makefiles.
several of them need `liblz4.a`.
When built with `-j#`, there are several concurrent liblz4.a built

Make liblz4.a a dependency, which is built once,
before moving to sub-directory Makefiles

6 years agoupdated LZ4F_compressBound() documentation
Yann Collet [Wed, 28 Feb 2018 07:23:27 +0000 (23:23 -0800)]
updated LZ4F_compressBound() documentation

to clarify it includes potentially buffered data.

6 years agoMerge pull request #479 from lz4/check
Yann Collet [Tue, 27 Feb 2018 00:40:32 +0000 (16:40 -0800)]
Merge pull request #479 from lz4/check

added target make check

6 years agoadded target make check
Yann Collet [Mon, 26 Feb 2018 22:09:46 +0000 (14:09 -0800)]
added target make check

according to GNU Makefile conventions,
the Makefile should feature a make check target
to self-test the generated program:
https://www.gnu.org/prep/standards/html_node/Standard-Targets.html .

this is much less thorough and less taxing than `make test`,
and can be run on any target in a reasonable timeframe (several seconds).

6 years agoMerge pull request #478 from lz4/mergeOpt
Yann Collet [Mon, 26 Feb 2018 22:06:31 +0000 (14:06 -0800)]
Merge pull request #478 from lz4/mergeOpt

merge lz4opt.h into lz4hc.c

6 years agobumped version number to v1.8.2
Yann Collet [Mon, 26 Feb 2018 21:50:04 +0000 (13:50 -0800)]
bumped version number to v1.8.2

updated NEWS was current progresses

6 years agoupdate code comment on LZ4 streaming interface
Yann Collet [Mon, 26 Feb 2018 21:31:18 +0000 (13:31 -0800)]
update code comment on LZ4 streaming interface

notably regarding LZ4_saveDict() speed advantage,
answering #477.

6 years agoMerge pull request #476 from lz4/mflimit
Yann Collet [Mon, 26 Feb 2018 20:29:54 +0000 (12:29 -0800)]
Merge pull request #476 from lz4/mflimit

edge case fix : compress up to end-mflimit (12 bytes)

6 years agomerge lz4opt.h into lz4hc.c
Yann Collet [Sun, 25 Feb 2018 08:32:09 +0000 (00:32 -0800)]
merge lz4opt.h into lz4hc.c

Having a dedicated file for optimal parser
made sense during its creation,
it allowed Przemyslaw to work more freely on lz4opt, with less dependency on lz4hc,
moreover, the optimal parser was more complex, with its own search functions.

Since the optimal was rewritten last year, it's now a lot lighter.
It makes more sense now to integrate it directly inside lz4hc.c,
making it easier to edit (editors are a bit "lost" inside a `*.h` dependent on its #include position),
it also reduces the number of files in the project,
which fits pretty well with lz4 objectives.
(adding lz4hc requires "just" lz4hc.h and lz4hc.c).

6 years agoedge case : compress up to end-mflimit (12 bytes)
Yann Collet [Sat, 24 Feb 2018 19:47:53 +0000 (11:47 -0800)]
edge case : compress up to end-mflimit (12 bytes)

The LZ4 block format specification
states that the last match must start
at a minimum distance of 12 bytes from the end of the block.

However, out of an abundance of caution,
the reference implementation would actually stop searching matches
at 13 bytes from the end of the block.

This patch fixes this small detail.
The new version is now able to properly compress a limit case
such as `aaaaaaaabaaa\n`
as reported by Gao Xiang (@hsiangkao).

Obviously, it doesn't change a lot of things.
This is just one additional match candidate per block, with a maximum match length of 7 (since last 5 bytes must remain literals).

With default policy, blocks are 4 MB long, so it doesn't happen too often
Compressing silesia.tar at default level 1 saves 5 bytes (100930101 -> 100930096).
At max level 12, it saves a grand 16 bytes (77389871 -> 77389855).

The impact is a bit more visible when blocks are smaller, hence more numerous.
For example, compressing silesia with blocks of 64 KB (using -12 -B4D) saves 543 bytes (77304583 -> 77304040).
So the smaller the packet size, the more visible the impact.

And it happens we have a ton of scenarios with little blocks using LZ4 compression ...

And a useless "hooray" sidenote :
the patch improves the LZ4 compression record of silesia (using -12 -B7D --no-frame-crc) by 16 bytes (77270672 -> 77270656)
and the record on enwik9 by 44 bytes (371680396 -> 371680352) (previously claimed by [smallz4](http://create.stephan-brumme.com/smallz4/) ).

6 years agoMerge pull request #475 from lz4/betterBench
Yann Collet [Wed, 21 Feb 2018 13:48:58 +0000 (05:48 -0800)]
Merge pull request #475 from lz4/betterBench

Better bench measurements for small inputs

6 years agoMerge pull request #471 from lz4/fasterHC
Yann Collet [Wed, 21 Feb 2018 05:04:07 +0000 (21:04 -0800)]
Merge pull request #471 from lz4/fasterHC

Faster HC

6 years agouse TIMELOOP_NANOSEC,
Yann Collet [Tue, 20 Feb 2018 23:26:59 +0000 (15:26 -0800)]
use TIMELOOP_NANOSEC,

as suggested by @terrelln

6 years agoadded one assert()
Yann Collet [Tue, 20 Feb 2018 23:25:45 +0000 (15:25 -0800)]
added one assert()

suggested by @terrelln

6 years agofixed minor conversion warning
Yann Collet [Tue, 20 Feb 2018 22:13:13 +0000 (14:13 -0800)]
fixed minor conversion warning

6 years agoensure bench speed measurement is more accurate for small inputs
Yann Collet [Tue, 20 Feb 2018 21:05:22 +0000 (13:05 -0800)]
ensure bench speed measurement is more accurate for small inputs

Previous method would produce too many time() invocations,
becoming a significant fraction of workload measured.

The new strategy is to use time() only once per batch,
and dynamically resize batch size so that each round lasts approximately 1 second.

This only matters for small inputs.
Measurement for large files (such as silesia.tar) are much less impacted
(though decoding speed is so fast that even medium-size files will notice an improvement).

6 years agoupdate bench.c to use less time invocations
Yann Collet [Tue, 20 Feb 2018 19:37:19 +0000 (11:37 -0800)]
update bench.c to use less time invocations

translating into more accurate speed measurements for small sources

6 years agoupdate API doc regarding double-buffer strategy
Yann Collet [Sun, 18 Feb 2018 19:00:33 +0000 (11:00 -0800)]
update API doc regarding double-buffer strategy

answering question #473

6 years agoMerge pull request #472 from hobomind/dev
Yann Collet [Wed, 14 Feb 2018 21:00:50 +0000 (13:00 -0800)]
Merge pull request #472 from hobomind/dev

fix: missed semicolon at programs/lz4io.c:954

6 years agofix: missed semicolon at programs/lz4io.c:954
hobomind [Wed, 14 Feb 2018 15:47:56 +0000 (18:47 +0300)]
fix: missed semicolon at programs/lz4io.c:954

6 years agoMerge pull request #470 from lz4/fasterDec
Yann Collet [Tue, 13 Feb 2018 00:56:45 +0000 (16:56 -0800)]
Merge pull request #470 from lz4/fasterDec

Faster decoding speed

6 years agoslight hc speed benefit (~+1%)
Yann Collet [Mon, 12 Feb 2018 05:03:39 +0000 (21:03 -0800)]
slight hc speed benefit (~+1%)

by optimizing countback

6 years agoremoved LZ4_copy8
Yann Collet [Mon, 12 Feb 2018 06:20:09 +0000 (22:20 -0800)]
removed LZ4_copy8

better use memcpy() directly

6 years agoslightly improved hc compression speed (+~1-2%)
Yann Collet [Sun, 11 Feb 2018 10:45:36 +0000 (02:45 -0800)]
slightly improved hc compression speed (+~1-2%)

by removing bad candidates faster.

6 years agoslightly improved decompression speed (~+1-2%)
Yann Collet [Sun, 11 Feb 2018 09:42:12 +0000 (01:42 -0800)]
slightly improved decompression speed (~+1-2%)

by making shortcut slightly more common

6 years agoMerge pull request #469 from mathstuf/intel-windows-packing-selection
Yann Collet [Thu, 8 Feb 2018 16:45:25 +0000 (08:45 -0800)]
Merge pull request #469 from mathstuf/intel-windows-packing-selection

intel: do not use __attribute__((packed)) on Windows

6 years agointel: do not use __attribute__((packed)) on Windows
Ben Boeckel [Thu, 8 Feb 2018 14:15:07 +0000 (09:15 -0500)]
intel: do not use __attribute__((packed)) on Windows

On Windows, the Intel compiler is closer to MSVC rather than GCC and
does not support the GCC attribute syntax.

Fixes #468

6 years agofixed code comment as detected in #466
Yann Collet [Wed, 7 Feb 2018 10:21:25 +0000 (02:21 -0800)]
fixed code comment as detected in #466

Also clarified a few API code comments
and updated associated html documentation

6 years agoMerge pull request #461 from terrelln/docs
Yann Collet [Fri, 2 Feb 2018 00:14:54 +0000 (16:14 -0800)]
Merge pull request #461 from terrelln/docs

Clarify the requirements of the LZ4 streaming API

6 years agoClarify the requirements of the LZ4 streaming API
Nick Terrell [Fri, 2 Feb 2018 00:08:59 +0000 (16:08 -0800)]
Clarify the requirements of the LZ4 streaming API

6 years agoMerge pull request #458 from lz4/ff161
Yann Collet [Thu, 1 Feb 2018 18:55:02 +0000 (10:55 -0800)]
Merge pull request #458 from lz4/ff161

Minor change to LZ4 Frame format specification

6 years agoMerge pull request #460 from lz4/frameCompress
Yann Collet [Thu, 1 Feb 2018 16:53:23 +0000 (08:53 -0800)]
Merge pull request #460 from lz4/frameCompress

refactored frameCompress.c example

6 years agomodified decompression part of frameCompress.c
Yann Collet [Thu, 1 Feb 2018 10:48:20 +0000 (02:48 -0800)]
modified decompression part of frameCompress.c

using same logic as prior modifications for compression part.

6 years agorefactored ressource allocation to avoid goto
Yann Collet [Thu, 1 Feb 2018 09:36:38 +0000 (01:36 -0800)]
refactored ressource allocation to avoid goto

6 years agoexamples/Makefile : changed dependency order
Yann Collet [Thu, 1 Feb 2018 07:17:52 +0000 (23:17 -0800)]
examples/Makefile : changed dependency order

static library *.a must come after source files *.c on linux

6 years agoMerge branch 'dev' into frameCompress
Yann Collet [Thu, 1 Feb 2018 01:18:57 +0000 (17:18 -0800)]
Merge branch 'dev' into frameCompress

6 years agotravisci : ensure "clean" betweeb 2 tests
Yann Collet [Thu, 1 Feb 2018 01:16:48 +0000 (17:16 -0800)]
travisci : ensure "clean" betweeb 2 tests

6 years agomodified gpptest recipe
Yann Collet [Thu, 1 Feb 2018 01:15:02 +0000 (17:15 -0800)]
modified gpptest recipe

6 years agoMerge pull request #459 from Tyilo/clang-stdc++14
Yann Collet [Thu, 1 Feb 2018 00:42:13 +0000 (16:42 -0800)]
Merge pull request #459 from Tyilo/clang-stdc++14

Ensure LZ4_DEPRECATED("...") is before LZ4LIB_API

6 years agorefactored frameCompress.c example code
Yann Collet [Thu, 1 Feb 2018 00:39:37 +0000 (16:39 -0800)]
refactored frameCompress.c example code

compression function returns a struct.
Also : nested structure ressources->computation
to make it easier to manage multiple exit points.

6 years agofixed read size, as noticed by @terrelln
Yann Collet [Thu, 1 Feb 2018 00:13:02 +0000 (16:13 -0800)]
fixed read size, as noticed by @terrelln

6 years agoensure proper dependencies are built for /examples
Yann Collet [Thu, 1 Feb 2018 00:11:45 +0000 (16:11 -0800)]
ensure proper dependencies are built for /examples

also : use liblz4.a static lib to share compilation time

6 years agorefactored frameCompress example
Yann Collet [Wed, 31 Jan 2018 22:33:16 +0000 (14:33 -0800)]
refactored frameCompress example

to better reflect LZ4F API usage.

6 years agoAlways prefer c++14 attributes if available
Asger Hautop Drewsen [Wed, 31 Jan 2018 19:23:20 +0000 (20:23 +0100)]
Always prefer c++14 attributes if available

6 years agofix typos as suggested by @psteinb
Yann Collet [Wed, 31 Jan 2018 17:54:30 +0000 (09:54 -0800)]
fix typos as suggested by @psteinb

6 years agoEnsure LZ4_DEPRECATED("...") is before LZ4LIB_API
Asger Hautop Drewsen [Wed, 31 Jan 2018 12:33:07 +0000 (13:33 +0100)]
Ensure LZ4_DEPRECATED("...") is before LZ4LIB_API

When using clang++ with std c++14 or c++17 you would get the error "an attribute list cannot appear here" when including "lz4.h" as the visibility attribute is before the c++ attribute.
This ensures that the [[deprecated]] c++ attribute is before everything
else in the function declarations.

6 years agoproposed a minor change to LZ4 Frame format specification
Yann Collet [Wed, 31 Jan 2018 01:53:00 +0000 (17:53 -0800)]
proposed a minor change to LZ4 Frame format specification

add new terms "LZ4 Frame Header" and "LZ4 Frame Footer"

6 years agoMerge pull request #455 from terrelln/hc-default
Yann Collet [Mon, 22 Jan 2018 21:25:49 +0000 (13:25 -0800)]
Merge pull request #455 from terrelln/hc-default

[lz4hc] level == 0 means default, not level 1

6 years ago[lz4hc] level == 0 means default, not level 1
Nick Terrell [Mon, 22 Jan 2018 20:50:06 +0000 (12:50 -0800)]
[lz4hc] level == 0 means default, not level 1

6 years agoMerge pull request #453 from lz4/clockfix
Yann Collet [Wed, 17 Jan 2018 20:45:09 +0000 (12:45 -0800)]
Merge pull request #453 from lz4/clockfix

fix #450 : use more restrictive conditions for clock_gettime()

6 years agoMerge pull request #454 from sunpoet/dev
Yann Collet [Wed, 17 Jan 2018 19:29:27 +0000 (11:29 -0800)]
Merge pull request #454 from sunpoet/dev

Change file format back to ASCII (from UTF-8)

6 years agoChange file format back to ASCII (from UTF-8)
Po-Chuan Hsieh [Wed, 17 Jan 2018 19:13:05 +0000 (03:13 +0800)]
Change file format back to ASCII (from UTF-8)

- Replace U+00A0 by space
- Fix build failure of archivers/py-borgbackup in FreeBSD

Reference: https://bugs.FreeBSD.org/225235

6 years agouse more restrictive conditions for clock_gettime()
Yann Collet [Tue, 16 Jan 2018 18:21:37 +0000 (10:21 -0800)]
use more restrictive conditions for clock_gettime()

6 years agoadded checkTag
Yann Collet [Mon, 15 Jan 2018 00:57:25 +0000 (16:57 -0800)]
added checkTag

checkTag verifies that provided tag and library version match.
It's started automatically in circleCI when a new tag is created.

6 years agorestored .travis
Yann Collet [Sun, 14 Jan 2018 08:21:43 +0000 (00:21 -0800)]
restored .travis

6 years agolz4frame : removed some intermediate stage from LZ4F_decompress()
Yann Collet [Sun, 14 Jan 2018 08:15:07 +0000 (00:15 -0800)]
lz4frame : removed some intermediate stage from LZ4F_decompress()

ensure some strange jump cases are not possible
(they were already not possible, but static analyzer couldn't understand it).

6 years agoMerge branch 'dev' into coverity_scan
Yann Collet [Sun, 14 Jan 2018 06:58:09 +0000 (22:58 -0800)]
Merge branch 'dev' into coverity_scan

6 years agominor : try to tell static analyzer that we don't care if fseek() fails
Yann Collet [Sun, 14 Jan 2018 06:52:17 +0000 (22:52 -0800)]
minor : try to tell static analyzer that we don't care if fseek() fails

as already explained in comments.

6 years agoensure a ptr is non-null
Yann Collet [Sun, 14 Jan 2018 06:47:46 +0000 (22:47 -0800)]
ensure a ptr is non-null

with an assert()
to help static analyzer understanding this condition.

6 years agomodified formulation for LZ4F_compressBound()
Yann Collet [Sun, 14 Jan 2018 06:39:39 +0000 (22:39 -0800)]
modified formulation for LZ4F_compressBound()

previous version used an intentional overflow,
which is defined since it uses unsigned type,
but static analyzer complain about it.

6 years agoprograms/datagen : attempt to please static analyzer
Yann Collet [Sun, 14 Jan 2018 06:24:32 +0000 (22:24 -0800)]
programs/datagen : attempt to please static analyzer

with an assert()
to reduce false positive

6 years agolz4io: fixed minor ressource leak
Yann Collet [Sun, 14 Jan 2018 06:18:04 +0000 (22:18 -0800)]
lz4io: fixed minor ressource leak

6 years agorevert project name
Yann Collet [Sun, 14 Jan 2018 05:40:04 +0000 (21:40 -0800)]
revert project name

6 years agominor name update
Yann Collet [Sun, 14 Jan 2018 05:14:36 +0000 (21:14 -0800)]
minor name update

6 years agoMerge branch 'master' into coverity_scan
Yann Collet [Sun, 14 Jan 2018 05:09:02 +0000 (21:09 -0800)]
Merge branch 'master' into coverity_scan

6 years agoMerge pull request #449 from lz4/dev
Yann Collet [Sun, 14 Jan 2018 04:56:14 +0000 (20:56 -0800)]
Merge pull request #449 from lz4/dev

v1.8.1.2

6 years agoupdate man page
Yann Collet [Sun, 14 Jan 2018 03:06:33 +0000 (19:06 -0800)]
update man page

6 years agonicer console message for `make clean`
Yann Collet [Sun, 14 Jan 2018 02:51:33 +0000 (18:51 -0800)]
nicer console message for `make clean`

6 years agoupdated manuals to v1.8.1
Yann Collet [Sun, 14 Jan 2018 02:46:13 +0000 (18:46 -0800)]
updated manuals to v1.8.1

6 years agoMerge pull request #448 from sunpoet/dev
Yann Collet [Sun, 14 Jan 2018 00:33:56 +0000 (16:33 -0800)]
Merge pull request #448 from sunpoet/dev

Fix lz4 version

6 years agoFix lz4 version
Po-Chuan Hsieh [Sat, 13 Jan 2018 22:38:03 +0000 (06:38 +0800)]
Fix lz4 version

6 years agoupdated LZ4F_decompress() documentation
Yann Collet [Sat, 13 Jan 2018 21:16:31 +0000 (13:16 -0800)]
updated LZ4F_decompress() documentation

6 years agoMerge pull request #446 from lz4/dev
Yann Collet [Sat, 13 Jan 2018 00:23:16 +0000 (16:23 -0800)]
Merge pull request #446 from lz4/dev

LZ4 v1.8.1

6 years agoupdated NEWS for v1.8.1
Yann Collet [Fri, 12 Jan 2018 22:36:10 +0000 (14:36 -0800)]
updated NEWS for v1.8.1

6 years agoMerge pull request #442 from terrelln/441
Yann Collet [Wed, 10 Jan 2018 18:09:13 +0000 (19:09 +0100)]
Merge pull request #442 from terrelln/441

[lz4io] Fix decompression file stat with --rm

6 years agoMerge pull request #443 from terrelln/440
Yann Collet [Wed, 10 Jan 2018 18:06:21 +0000 (19:06 +0100)]
Merge pull request #443 from terrelln/440

[lz4f] Skip memcpy() on empty dictionary

6 years agoMerge pull request #444 from felixhandte/publish-static-functions
Yann Collet [Wed, 10 Jan 2018 17:48:11 +0000 (18:48 +0100)]
Merge pull request #444 from felixhandte/publish-static-functions

Add Option to Make lz4frame_static.h Functions Visible in Shared Objects

6 years agoAdd Option to Make lz4frame_static.h Functions Visible in Shared Objects
W. Felix Handte [Mon, 8 Jan 2018 19:46:22 +0000 (14:46 -0500)]
Add Option to Make lz4frame_static.h Functions Visible in Shared Objects

In some contexts, *cough*like at facebook*cough*, dynamic linking is used in
contexts which aren't truly dynamic. That is, the guarantee is maintained that
a program will only ever execute against the library version it was compiled
to interact with.

For those situations, introduce a compile-time flag that overrides hiding
these unstable APIs in shared objects.

6 years agoMerge pull request #434 from lz4/pattern
Yann Collet [Sat, 6 Jan 2018 05:58:41 +0000 (06:58 +0100)]
Merge pull request #434 from lz4/pattern

conditional pattern analysis

6 years agoMerge pull request #435 from lz4/destSize
Yann Collet [Sat, 6 Jan 2018 05:57:56 +0000 (06:57 +0100)]
Merge pull request #435 from lz4/destSize

lz4opt is now compatible with _destSize variant

6 years ago[lz4f] Skip memcpy() on empty dictionary
Nick Terrell [Fri, 5 Jan 2018 22:30:49 +0000 (14:30 -0800)]
[lz4f] Skip memcpy() on empty dictionary

6 years ago[lz4io] Refuse to set file stat for non-regular files
Nick Terrell [Fri, 5 Jan 2018 19:32:04 +0000 (11:32 -0800)]
[lz4io] Refuse to set file stat for non-regular files

6 years ago[lz4io] Fix decompression file stat with --rm
Nick Terrell [Fri, 5 Jan 2018 19:27:24 +0000 (11:27 -0800)]
[lz4io] Fix decompression file stat with --rm

6 years agoMerge pull request #439 from eli-b/doc-nohup-behavior
Yann Collet [Mon, 1 Jan 2018 23:19:59 +0000 (00:19 +0100)]
Merge pull request #439 from eli-b/doc-nohup-behavior

Docs: describe behavior under nohup

6 years agoMerge pull request #438 from eli-b/grammar-fix
Yann Collet [Mon, 1 Jan 2018 23:17:57 +0000 (00:17 +0100)]
Merge pull request #438 from eli-b/grammar-fix

Grammar: "to silent" -> "to silence"

6 years agoDocs: describe behavior under nohup
Eli Boyarski [Mon, 1 Jan 2018 13:34:16 +0000 (15:34 +0200)]
Docs: describe behavior under nohup

6 years agoGrammar: "to silent" -> "to silence"
Eli Boyarski [Mon, 1 Jan 2018 12:15:31 +0000 (14:15 +0200)]
Grammar: "to silent" -> "to silence"

6 years agoobject files in /tests
Yann Collet [Wed, 27 Dec 2017 12:02:40 +0000 (13:02 +0100)]
object files in /tests

object files created from /tests are compiled with specific flags (`-g -DLZ4_DEBUG=1`)
which are not welcomed in release binary.
`lib/*.o` files created from /tests are now stored in /tests, to avoid unintentional mix.

6 years agolz4opt supports _destSize
Yann Collet [Fri, 22 Dec 2017 11:47:59 +0000 (12:47 +0100)]
lz4opt supports _destSize

no longer limited to level 9

6 years ago/tests programs compiled with LZ4_DEBUG=1
Yann Collet [Fri, 22 Dec 2017 10:54:43 +0000 (11:54 +0100)]
/tests programs compiled with LZ4_DEBUG=1

to enable assert() within /lib

6 years agoconditional pattern analysis
Yann Collet [Fri, 22 Dec 2017 07:07:25 +0000 (08:07 +0100)]
conditional pattern analysis

Pattern analysis (currently limited to long ranges of identical bytes)
is actually detrimental to performance
when `nbSearches` is low.

Reason is : `nbSearches` provides a built-in protection for these cases.
The problem with patterns is that they dramatically increase the number of candidates to visit.
But with a low nbSearches, the match finder just aborts early.

In such cases, pattern analysis adds some complexity without reducing total nb of candidates.
It actually increases compression ratio a little bit, by filtering only "good" candidates,
but at a measurable speed cost, so it's not a good trade-off.

This patch makes pattern analysis optional.
It's enabled for levels 8+ only.

6 years agoMerge pull request #431 from lz4/newopt
Yann Collet [Thu, 21 Dec 2017 08:46:25 +0000 (09:46 +0100)]
Merge pull request #431 from lz4/newopt

new level 10

6 years agonew level 10
Yann Collet [Wed, 20 Dec 2017 13:14:01 +0000 (14:14 +0100)]
new level 10

lz4opt is only competitive vs lz4hc level 10.
Below that level, it doesn't match the speed / compression effectiveness of regular hc parser.

This patch propose to extend lz4opt to levels 10-12.
The new level 10 tend to compress a bit better and a bit faster than previous one (mileage vary depending on file)

The only downside is that `limitedDestSize` mode is now limited to max level 9 (vs 10),
since it's only compatible with regular HC parser.
(Note : I suspect it's possible to convert lz4opt to support it too, but haven't spent time into it).

6 years agoMerge pull request #427 from lz4/registerLess
Yann Collet [Fri, 15 Dec 2017 22:46:00 +0000 (14:46 -0800)]
Merge pull request #427 from lz4/registerLess

remove `register` keyword

6 years agoMerge pull request #424 from MaxRis/msbuild-properties-#423
Yann Collet [Mon, 11 Dec 2017 18:07:03 +0000 (10:07 -0800)]
Merge pull request #424 from MaxRis/msbuild-properties-#423

Msbuild properties #423

6 years agoEnableWholeProgramOptimization and UseStaticCRT msbuild custom properties
Max Risuhin [Mon, 11 Dec 2017 12:57:19 +0000 (14:57 +0200)]
EnableWholeProgramOptimization and UseStaticCRT msbuild custom properties

6 years agoremove `register` keyword
Yann Collet [Tue, 5 Dec 2017 01:10:23 +0000 (17:10 -0800)]
remove `register` keyword

deprecated in newer C++ versions,
and dubious utility

6 years agoMerge pull request #426 from aliceatlas/cli_chmod_fix
Yann Collet [Mon, 4 Dec 2017 22:38:00 +0000 (14:38 -0800)]
Merge pull request #426 from aliceatlas/cli_chmod_fix

Fix cli sometimes calling UTIL_setFileStat on /dev/null