platform/upstream/lz4.git
6 years agoimproved LZ4HC_reverseCountPattern() :
Yann Collet [Tue, 7 Nov 2017 19:05:48 +0000 (11:05 -0800)]
improved LZ4HC_reverseCountPattern() :

works for any repetitive pattern of length 1, 2 or 4 (but not 3!)
works for any endianess

6 years agofixed LZ4HC_countPattern()
Yann Collet [Tue, 7 Nov 2017 18:53:29 +0000 (10:53 -0800)]
fixed LZ4HC_countPattern()

- works with byte values other than `0`
- works for any repetitive pattern of length 1, 2 or 4 (but not 3!)
- works for little and big endian systems
- preserve speed of previous implementation

6 years agofixed minor static analyzer warning
Yann Collet [Fri, 3 Nov 2017 19:33:55 +0000 (12:33 -0700)]
fixed minor static analyzer warning

dead assignment

6 years agominor comment edit
Yann Collet [Fri, 3 Nov 2017 18:49:56 +0000 (11:49 -0700)]
minor comment edit

6 years agounified HC levels
Yann Collet [Fri, 3 Nov 2017 18:28:28 +0000 (11:28 -0700)]
unified HC levels

LZ4_setCompressionLevel() can be users accross the whole range of HC levels
No more transition issue between Optimal and HC modes

6 years agomoved ctx->end handling from parsers
Yann Collet [Fri, 3 Nov 2017 17:48:55 +0000 (10:48 -0700)]
moved ctx->end handling from parsers

responsibility better handled one layer above (LZ4HC_compress_generic())

6 years agoremoved ctx->searchNum
Yann Collet [Fri, 3 Nov 2017 17:30:52 +0000 (10:30 -0700)]
removed ctx->searchNum

nbSearches now transmitted directly as function parameter
easier to track and debug

6 years agoLZ4_compress_HC_continue_destSize() now compatible with optimal parser
Yann Collet [Fri, 3 Nov 2017 09:01:20 +0000 (02:01 -0700)]
LZ4_compress_HC_continue_destSize() now compatible with optimal parser

levels 11+

6 years agoremoves matches[] table
Yann Collet [Fri, 3 Nov 2017 08:37:43 +0000 (01:37 -0700)]
removes matches[] table

saves stack space
clearer match finder interface (no more table to fill)

6 years agoremoved useless parameter from hash chain matchfinder
Yann Collet [Fri, 3 Nov 2017 08:20:30 +0000 (01:20 -0700)]
removed useless parameter from hash chain matchfinder

used to be present for compatibility with binary tree matchfinder

6 years agoremoved code and reference to binary tree match finder
Yann Collet [Fri, 3 Nov 2017 08:18:12 +0000 (01:18 -0700)]
removed code and reference to binary tree match finder

reduced size of LZ4HC state

6 years agoimproved level 11 speed
Yann Collet [Fri, 3 Nov 2017 07:59:05 +0000 (00:59 -0700)]
improved level 11 speed

6 years agooptimized skip strategy for level 12
Yann Collet [Fri, 3 Nov 2017 07:15:52 +0000 (00:15 -0700)]
optimized skip strategy for level 12

6 years agonew level 11 uses 512 attempts
Yann Collet [Fri, 3 Nov 2017 02:50:08 +0000 (19:50 -0700)]
new level 11 uses 512 attempts

6 years agomore generic skip formula
Yann Collet [Fri, 3 Nov 2017 01:54:18 +0000 (18:54 -0700)]
more generic skip formula

improving speed

6 years agosmall adaptations for intermediate level 11
Yann Collet [Thu, 2 Nov 2017 23:25:10 +0000 (16:25 -0700)]
small adaptations for intermediate level 11

6 years agopartial search, while preserving compression ratio
Yann Collet [Thu, 2 Nov 2017 22:37:18 +0000 (15:37 -0700)]
partial search, while preserving compression ratio

tag interesting places

6 years agosearching match leading strictly farther does not work
Yann Collet [Thu, 2 Nov 2017 22:05:45 +0000 (15:05 -0700)]
searching match leading strictly farther does not work

sometimes, it's better to re-use same match but start it later,
in order to get shorter matchlength code

6 years agofixed last lost bytes in maximal mode
Yann Collet [Thu, 2 Nov 2017 21:53:06 +0000 (14:53 -0700)]
fixed last lost bytes in maximal mode

even gained 2 bytes on calgary.tar...
added conditional traces `g_debuglog_enable`

6 years agochanged strategy : opt[] path is complete after each match
Yann Collet [Thu, 2 Nov 2017 20:44:57 +0000 (13:44 -0700)]
changed strategy : opt[] path is complete after each match

previous strategy would leave a few "bad choices"
on the ground they would be fixed later,
but that requires passing through each position to make the fix
and cannot give the end position of the last useful match.

6 years agoMerge branch 'dev' into btopt
Yann Collet [Wed, 1 Nov 2017 00:55:01 +0000 (17:55 -0700)]
Merge branch 'dev' into btopt

6 years agoMerge pull request #408 from terrelln/time
Yann Collet [Tue, 31 Oct 2017 20:49:29 +0000 (13:49 -0700)]
Merge pull request #408 from terrelln/time

[bench] Use higher resolution timer on POSIX

6 years agofixed minor overflow mistake in optimal parser
Yann Collet [Tue, 31 Oct 2017 00:47:54 +0000 (17:47 -0700)]
fixed minor overflow mistake in optimal parser

saving 20 bytes on calgary.tar

6 years agofixed minor initialization warning
Yann Collet [Mon, 30 Oct 2017 23:10:25 +0000 (16:10 -0700)]
fixed minor initialization warning

6 years agoMerge pull request #412 from mikir/symbolsVisibility
Yann Collet [Mon, 30 Oct 2017 22:57:43 +0000 (15:57 -0700)]
Merge pull request #412 from mikir/symbolsVisibility

Separated visibility from LZ4LIB_API macro.

6 years agoSeparated visibility from LZ4LIB_API macro.
mikir [Mon, 30 Oct 2017 12:44:24 +0000 (13:44 +0100)]
Separated visibility from LZ4LIB_API macro.

6 years agoadded hash chain with conditional length
Yann Collet [Wed, 25 Oct 2017 05:07:08 +0000 (07:07 +0200)]
added hash chain with conditional length

not a success yet

6 years agolz4opt: added hash chain search
Yann Collet [Sat, 21 Oct 2017 00:04:29 +0000 (17:04 -0700)]
lz4opt: added hash chain search

6 years agoswitched many types to int
Yann Collet [Fri, 20 Oct 2017 22:30:50 +0000 (15:30 -0700)]
switched many types to int

6 years agoremoved SET_PRICE macro
Yann Collet [Fri, 20 Oct 2017 20:44:49 +0000 (13:44 -0700)]
removed SET_PRICE macro

6 years agoremoved one macro usage
Yann Collet [Fri, 20 Oct 2017 20:32:45 +0000 (13:32 -0700)]
removed one macro usage

6 years agominor refactor
Yann Collet [Fri, 20 Oct 2017 19:05:00 +0000 (12:05 -0700)]
minor refactor

reduce variable scope
remove one macro usage

6 years agolz4opt: refactor sequence reverse traversal
Yann Collet [Fri, 20 Oct 2017 18:32:15 +0000 (11:32 -0700)]
lz4opt: refactor sequence reverse traversal

6 years agorefactor variable matchnum
Yann Collet [Fri, 20 Oct 2017 18:24:56 +0000 (11:24 -0700)]
refactor variable matchnum

separate initial and iterative search
renamed nb_matches

6 years agosimplified initial cost conditions
Yann Collet [Fri, 20 Oct 2017 18:00:10 +0000 (11:00 -0700)]
simplified initial cost conditions

llen integrated in opt[]

6 years agoadded assert
Yann Collet [Thu, 19 Oct 2017 23:47:25 +0000 (16:47 -0700)]
added assert

6 years agorenamed last_pos into last_match_pos
Yann Collet [Thu, 19 Oct 2017 23:43:36 +0000 (16:43 -0700)]
renamed last_pos into last_match_pos

6 years agosimplified early exit when single solution
Yann Collet [Thu, 19 Oct 2017 23:39:40 +0000 (16:39 -0700)]
simplified early exit when single solution

6 years ago[bench] Use higher resolution timer on POSIX
Nick Terrell [Tue, 17 Oct 2017 19:42:27 +0000 (12:42 -0700)]
[bench] Use higher resolution timer on POSIX

The timer used was only accurate up to 0.01 seconds. This timer is accurate up to 1 ns.
It is a monotonic timer that measures the real time difference, not on CPU time.

Copied the benchmark code from https://github.com/facebook/zstd/commit/6ab4d5e9041aba962a810ffee191f95897c6208e

6 years agolz4cli : minor rewrite of lz4c legacy commands
Yann Collet [Sun, 15 Oct 2017 06:50:07 +0000 (23:50 -0700)]
lz4cli : minor rewrite of lz4c legacy commands

for clarity

6 years agoMerge branch 'dev' of github.com:Cyan4973/lz4 into dev
Yann Collet [Sun, 15 Oct 2017 01:49:06 +0000 (18:49 -0700)]
Merge branch 'dev' of github.com:Cyan4973/lz4 into dev

6 years agolz4cli : removed extension artefacts
Yann Collet [Sun, 15 Oct 2017 01:48:00 +0000 (18:48 -0700)]
lz4cli : removed extension artefacts

It used to be useful for an old Windows variant which is no longer maintained.

6 years agoMerge pull request #407 from odaira/useO2ppc64le
Yann Collet [Fri, 13 Oct 2017 23:21:46 +0000 (16:21 -0700)]
Merge pull request #407 from odaira/useO2ppc64le

Use O2 for the decompression functions on ppc64le with gcc

6 years agoUse the optimization level of O2 for the decompression functions on ppc64le with...
Rei Odaira [Fri, 13 Oct 2017 19:53:37 +0000 (14:53 -0500)]
Use the optimization level of O2 for the decompression functions on ppc64le with gcc, to avoid harmful unrolling and SIMDization with O3

6 years agoMerge pull request #403 from felixhandte/lz4-cli-dict-support-tests
Yann Collet [Tue, 10 Oct 2017 23:18:16 +0000 (16:18 -0700)]
Merge pull request #403 from felixhandte/lz4-cli-dict-support-tests

Support Dictionaries on the Command Line

6 years agoRead the Dictionary into a Circular Buffer
W. Felix Handte [Tue, 3 Oct 2017 16:50:28 +0000 (12:50 -0400)]
Read the Dictionary into a Circular Buffer

6 years agoAdd some tests verifying command line dictionary functionality
W. Felix Handte [Fri, 22 Sep 2017 21:50:11 +0000 (14:50 -0700)]
Add some tests verifying command line dictionary functionality

6 years agoAdd Dictionary Support to the Command Line Tool
W. Felix Handte [Fri, 22 Sep 2017 18:55:42 +0000 (11:55 -0700)]
Add Dictionary Support to the Command Line Tool

6 years agofused getLongerMatch and getWiderMatch
Yann Collet [Mon, 9 Oct 2017 08:50:28 +0000 (01:50 -0700)]
fused getLongerMatch and getWiderMatch

6 years agore-inserted last byte test in widerMatch
Yann Collet [Mon, 9 Oct 2017 08:44:05 +0000 (01:44 -0700)]
re-inserted last byte test in widerMatch

6 years agoearly out is not better
Yann Collet [Mon, 9 Oct 2017 07:36:47 +0000 (00:36 -0700)]
early out is not better

6 years agooptional fuse
Yann Collet [Mon, 9 Oct 2017 07:31:12 +0000 (00:31 -0700)]
optional fuse

6 years agoimproved search of rep-1 patterns
Yann Collet [Mon, 9 Oct 2017 06:55:42 +0000 (23:55 -0700)]
improved search of rep-1 patterns

6 years agoinsertAndFindBestMatch defers to insertAndGetWiderMatch
Yann Collet [Mon, 9 Oct 2017 06:40:21 +0000 (23:40 -0700)]
insertAndFindBestMatch defers to insertAndGetWiderMatch

6 years agofixed decoding block checksum in lz4frame
Yann Collet [Wed, 4 Oct 2017 22:24:08 +0000 (15:24 -0700)]
fixed decoding block checksum in lz4frame

6 years agofix #404
Yann Collet [Sat, 30 Sep 2017 17:35:55 +0000 (10:35 -0700)]
fix #404

static analyzer `cppcheck` complains about a shift-by-32 on a 32 bits value,
which is an undefined behavior.
However, the flagged code path is never triggered in 32-bits mode,
(actually, it's not even generated if DCE kicks in),
the shift-by-32 is necessarily performed on a 64-bits value.

While it doesn't change anything regarding lz4 code generation, for both 32 and 64 bits mode,
(can be checked by md5sum on the generated binary),
the shift has been rewritten in a way which should please this static analyzer,
since it now pretends to shift by 16 on 32-bits cpu (note : it doesn't matter since the code will not even be generated in this case).

Note : this is a blind fix, the new code has not been tested with cppcheck, because cppcheck only works on Windows.
Other static analyzer, such as scan-build, do not trigger this false positive.

6 years agominor lz4frame code refactor
Yann Collet [Sat, 23 Sep 2017 22:06:24 +0000 (15:06 -0700)]
minor lz4frame code refactor

try to improve code readability.
minor optimization on condition to preserve history.

6 years agoMerge pull request #402 from felixhandte/fix-dict-segfault
Yann Collet [Sat, 23 Sep 2017 21:02:22 +0000 (14:02 -0700)]
Merge pull request #402 from felixhandte/fix-dict-segfault

Fix dict segfault

6 years agoFix Segfault When Copying Dict
W. Felix Handte [Fri, 22 Sep 2017 18:52:29 +0000 (11:52 -0700)]
Fix Segfault When Copying Dict

dctx must have been initialized before we can copy the dictionary in.

6 years agominor improvements to examples
Yann Collet [Mon, 11 Sep 2017 17:25:47 +0000 (10:25 -0700)]
minor improvements to examples

cosmetic : better display
added optional variable MOREFLAGS

6 years agomade clang warnings fail (-Werror)
Yann Collet [Sun, 10 Sep 2017 21:35:16 +0000 (14:35 -0700)]
made clang warnings fail (-Werror)

in order to catch them in CI tests

6 years agofixed a bunch of -Wcomma warnings
Yann Collet [Sun, 10 Sep 2017 21:32:38 +0000 (14:32 -0700)]
fixed a bunch of -Wcomma warnings

reported by @rvandermeulen (#398)

6 years agoadded -Wcomma to travisCI clang test
Yann Collet [Sun, 10 Sep 2017 21:23:18 +0000 (14:23 -0700)]
added -Wcomma to travisCI clang test

6 years agofix #397 : decompression failed when using a combination of extDict + low memory...
Yann Collet [Thu, 7 Sep 2017 19:48:24 +0000 (12:48 -0700)]
fix #397 : decompression failed when using a combination of extDict + low memory address

Reported and fixed by @jscheid

Note : we are missing a test case to include it in the CI

6 years agobench : made decompression speed evaluation same time as compression
Yann Collet [Thu, 7 Sep 2017 19:12:36 +0000 (12:12 -0700)]
bench : made decompression speed evaluation same time as compression

minor : slightly modified an example do avoid disabling a gcc warning through #pragma

6 years agominor Makefile fixes
Yann Collet [Thu, 7 Sep 2017 00:41:44 +0000 (17:41 -0700)]
minor Makefile fixes

6 years agoupdated lib/README
Yann Collet [Wed, 6 Sep 2017 18:22:45 +0000 (11:22 -0700)]
updated lib/README

clarifications, improved wording

6 years agocomplementary information for #394
Yann Collet [Wed, 30 Aug 2017 23:09:10 +0000 (16:09 -0700)]
complementary information for #394

6 years agoclarified documentation of streaming decompression functions
Yann Collet [Wed, 30 Aug 2017 22:42:04 +0000 (15:42 -0700)]
clarified documentation of streaming decompression functions

(synchronous bufferless mode)
answering questions by @jtbandes (#394)

6 years agominor typo fix
Yann Collet [Wed, 30 Aug 2017 22:02:04 +0000 (15:02 -0700)]
minor typo fix

6 years agofixed FS-independent file order in /lib
Yann Collet [Tue, 29 Aug 2017 22:31:56 +0000 (15:31 -0700)]
fixed FS-independent file order in /lib

identified by @bmwiedemann

6 years agobuild: source files sorted in a FS independent manner
Yann Collet [Sat, 26 Aug 2017 19:22:51 +0000 (12:22 -0700)]
build: source files sorted in a FS independent manner

to be more compatible with reproducible builds.
patch inspired by @bmwiedemann

6 years agoupdated NEWS with fixes
Yann Collet [Fri, 25 Aug 2017 21:13:29 +0000 (14:13 -0700)]
updated NEWS with fixes

6 years agoMerge pull request #386 from lz4/parallelMake
Yann Collet [Fri, 25 Aug 2017 18:23:30 +0000 (11:23 -0700)]
Merge pull request #386 from lz4/parallelMake

`make test` compatible with parallel execution (`-j#`)

6 years agoremoved fasttest from circleCI
Yann Collet [Fri, 25 Aug 2017 16:50:56 +0000 (09:50 -0700)]
removed fasttest from circleCI

6 years agoremoved test-fasttest
Yann Collet [Fri, 25 Aug 2017 01:30:00 +0000 (18:30 -0700)]
removed test-fasttest

6 years agoMerge pull request #393 from terrelln/deprecate2
Yann Collet [Fri, 25 Aug 2017 01:05:07 +0000 (18:05 -0700)]
Merge pull request #393 from terrelln/deprecate2

Don't use C++11 deprecation attribute with clang

6 years agofixed make recurrence from /tests
Yann Collet [Fri, 25 Aug 2017 00:58:13 +0000 (17:58 -0700)]
fixed make recurrence from /tests

6 years agoremoved fasttest
Yann Collet [Fri, 25 Aug 2017 00:03:03 +0000 (17:03 -0700)]
removed fasttest

6 years agominor : added header license
Yann Collet [Thu, 24 Aug 2017 23:59:47 +0000 (16:59 -0700)]
minor : added header license

6 years agoMerge branch 'dev' into parallelMake
Yann Collet [Thu, 24 Aug 2017 23:46:19 +0000 (16:46 -0700)]
Merge branch 'dev' into parallelMake

6 years agoDon't use C++11 deprecation attribute with clang
Nick Terrell [Thu, 24 Aug 2017 21:06:34 +0000 (14:06 -0700)]
Don't use C++11 deprecation attribute with clang

Clang doesn't accept a C++11 attribute following `LZ4LIB_API`.
Use the GNU attribute instead.

6 years agoMerge pull request #392 from m-hennecke/fix-arm-openbsd
Yann Collet [Thu, 24 Aug 2017 21:00:27 +0000 (14:00 -0700)]
Merge pull request #392 from m-hennecke/fix-arm-openbsd

Fix: Add return statement to main function

6 years agoMerge pull request #391 from tcpan/dev
Yann Collet [Thu, 24 Aug 2017 18:52:17 +0000 (11:52 -0700)]
Merge pull request #391 from tcpan/dev

FIX: added prefix to FORCE_INLINE to prevent redefinition error durin…

6 years agoMerge pull request #390 from lz4/installVars
Yann Collet [Thu, 24 Aug 2017 18:45:17 +0000 (11:45 -0700)]
Merge pull request #390 from lz4/installVars

fixed man directory installation (#387)

6 years agoFIX: added prefix to FORCE_INLINE to prevent redefinition error during compilation...
tcpan [Thu, 24 Aug 2017 14:14:20 +0000 (10:14 -0400)]
FIX: added prefix to FORCE_INLINE to prevent redefinition error during compilation when used with other libraries that define FORCE_INLINE

6 years agoFix: Add return statement to main function
Markus Hennecke [Thu, 24 Aug 2017 12:31:45 +0000 (14:31 +0200)]
Fix: Add return statement to main function

6 years agofixed man directory installation (#337)
Yann Collet [Thu, 24 Aug 2017 00:53:45 +0000 (17:53 -0700)]
fixed man directory installation (#337)

also : lz4c is now a symlink to lz4

6 years agomake test is compatible with parallel execution (-j#)
Yann Collet [Mon, 21 Aug 2017 22:26:03 +0000 (15:26 -0700)]
make test is compatible with parallel execution (-j#)

each test section runs with its own set of files

6 years agofix : asan error in dctx, due to increased maximum frame header size, reported by...
Yann Collet [Thu, 17 Aug 2017 17:55:30 +0000 (10:55 -0700)]
fix : asan error in dctx, due to increased maximum frame header size, reported by Craig Young

6 years agoMerge pull request #382 from lz4/installVars
Yann Collet [Wed, 16 Aug 2017 07:43:32 +0000 (00:43 -0700)]
Merge pull request #382 from lz4/installVars

better respect GNU standard Makefile conventions

6 years agoupdated lz4frame manual
Yann Collet [Tue, 15 Aug 2017 23:58:12 +0000 (16:58 -0700)]
updated lz4frame manual

6 years agoMerge branch 'dev' into installVars and fixed conflicts
Yann Collet [Tue, 15 Aug 2017 23:57:00 +0000 (16:57 -0700)]
Merge branch 'dev' into installVars and fixed conflicts

6 years agoMerge pull request #383 from lz4/blockChecksum
Yann Collet [Tue, 15 Aug 2017 23:50:04 +0000 (16:50 -0700)]
Merge pull request #383 from lz4/blockChecksum

Block checksum

6 years agoMerge pull request #380 from lz4/dictID
Yann Collet [Tue, 15 Aug 2017 21:12:04 +0000 (14:12 -0700)]
Merge pull request #380 from lz4/dictID

Frame Dictionary API

6 years agolz4c legacy commands are now enabled at runtime based on link/binary name "lz4c"
Yann Collet [Mon, 14 Aug 2017 23:56:05 +0000 (16:56 -0700)]
lz4c legacy commands are now enabled at runtime based on link/binary name "lz4c"

instead of selected at compilation time depending on a macro.
This design makes it possible to have a single binary which supports both modes.

An advantageous side effect is that when doing `make; make install`
no additional binary is created during `make install`
(it used to create `lz4c`, because `make` would only build `lz4`)

6 years agofix minor markdown display issues
Yann Collet [Mon, 14 Aug 2017 22:18:47 +0000 (15:18 -0700)]
fix minor markdown display issues

6 years agobetter respect GNU standard Makefile conventions
Yann Collet [Mon, 14 Aug 2017 22:13:23 +0000 (15:13 -0700)]
better respect GNU standard Makefile conventions

supports lowercase directory variables
add an "Installation" section in README.md
added an INSTALL file

6 years agocli : restored command -BX to enable block checksum (#322)
Yann Collet [Sat, 12 Aug 2017 00:58:46 +0000 (17:58 -0700)]
cli : restored command -BX to enable block checksum (#322)

6 years agorestored block checksum capability at lz4frame API level
Yann Collet [Sat, 12 Aug 2017 00:46:52 +0000 (17:46 -0700)]
restored block checksum capability at lz4frame API level