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.
Yann Collet [Wed, 1 Nov 2017 00:55:01 +0000 (17:55 -0700)]
Merge branch 'dev' into btopt
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
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
Yann Collet [Mon, 30 Oct 2017 23:10:25 +0000 (16:10 -0700)]
fixed minor initialization warning
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.
mikir [Mon, 30 Oct 2017 12:44:24 +0000 (13:44 +0100)]
Separated visibility from LZ4LIB_API macro.
Yann Collet [Wed, 25 Oct 2017 05:07:08 +0000 (07:07 +0200)]
added hash chain with conditional length
not a success yet
Yann Collet [Sat, 21 Oct 2017 00:04:29 +0000 (17:04 -0700)]
lz4opt: added hash chain search
Yann Collet [Fri, 20 Oct 2017 22:30:50 +0000 (15:30 -0700)]
switched many types to int
Yann Collet [Fri, 20 Oct 2017 20:44:49 +0000 (13:44 -0700)]
removed SET_PRICE macro
Yann Collet [Fri, 20 Oct 2017 20:32:45 +0000 (13:32 -0700)]
removed one macro usage
Yann Collet [Fri, 20 Oct 2017 19:05:00 +0000 (12:05 -0700)]
minor refactor
reduce variable scope
remove one macro usage
Yann Collet [Fri, 20 Oct 2017 18:32:15 +0000 (11:32 -0700)]
lz4opt: refactor sequence reverse traversal
Yann Collet [Fri, 20 Oct 2017 18:24:56 +0000 (11:24 -0700)]
refactor variable matchnum
separate initial and iterative search
renamed nb_matches
Yann Collet [Fri, 20 Oct 2017 18:00:10 +0000 (11:00 -0700)]
simplified initial cost conditions
llen integrated in opt[]
Yann Collet [Thu, 19 Oct 2017 23:47:25 +0000 (16:47 -0700)]
added assert
Yann Collet [Thu, 19 Oct 2017 23:43:36 +0000 (16:43 -0700)]
renamed last_pos into last_match_pos
Yann Collet [Thu, 19 Oct 2017 23:39:40 +0000 (16:39 -0700)]
simplified early exit when single solution
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
Yann Collet [Sun, 15 Oct 2017 06:50:07 +0000 (23:50 -0700)]
lz4cli : minor rewrite of lz4c legacy commands
for clarity
Yann Collet [Sun, 15 Oct 2017 01:49:06 +0000 (18:49 -0700)]
Merge branch 'dev' of github.com:Cyan4973/lz4 into dev
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.
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
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
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
W. Felix Handte [Tue, 3 Oct 2017 16:50:28 +0000 (12:50 -0400)]
Read the Dictionary into a Circular Buffer
W. Felix Handte [Fri, 22 Sep 2017 21:50:11 +0000 (14:50 -0700)]
Add some tests verifying command line dictionary functionality
W. Felix Handte [Fri, 22 Sep 2017 18:55:42 +0000 (11:55 -0700)]
Add Dictionary Support to the Command Line Tool
Yann Collet [Mon, 9 Oct 2017 08:50:28 +0000 (01:50 -0700)]
fused getLongerMatch and getWiderMatch
Yann Collet [Mon, 9 Oct 2017 08:44:05 +0000 (01:44 -0700)]
re-inserted last byte test in widerMatch
Yann Collet [Mon, 9 Oct 2017 07:36:47 +0000 (00:36 -0700)]
early out is not better
Yann Collet [Mon, 9 Oct 2017 07:31:12 +0000 (00:31 -0700)]
optional fuse
Yann Collet [Mon, 9 Oct 2017 06:55:42 +0000 (23:55 -0700)]
improved search of rep-1 patterns
Yann Collet [Mon, 9 Oct 2017 06:40:21 +0000 (23:40 -0700)]
insertAndFindBestMatch defers to insertAndGetWiderMatch
Yann Collet [Wed, 4 Oct 2017 22:24:08 +0000 (15:24 -0700)]
fixed decoding block checksum in lz4frame
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.
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.
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
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.
Yann Collet [Mon, 11 Sep 2017 17:25:47 +0000 (10:25 -0700)]
minor improvements to examples
cosmetic : better display
added optional variable MOREFLAGS
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
Yann Collet [Sun, 10 Sep 2017 21:32:38 +0000 (14:32 -0700)]
fixed a bunch of -Wcomma warnings
reported by @rvandermeulen (#398)
Yann Collet [Sun, 10 Sep 2017 21:23:18 +0000 (14:23 -0700)]
added -Wcomma to travisCI clang test
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
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
Yann Collet [Thu, 7 Sep 2017 00:41:44 +0000 (17:41 -0700)]
minor Makefile fixes
Yann Collet [Wed, 6 Sep 2017 18:22:45 +0000 (11:22 -0700)]
updated lib/README
clarifications, improved wording
Yann Collet [Wed, 30 Aug 2017 23:09:10 +0000 (16:09 -0700)]
complementary information for #394
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)
Yann Collet [Wed, 30 Aug 2017 22:02:04 +0000 (15:02 -0700)]
minor typo fix
Yann Collet [Tue, 29 Aug 2017 22:31:56 +0000 (15:31 -0700)]
fixed FS-independent file order in /lib
identified by @bmwiedemann
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
Yann Collet [Fri, 25 Aug 2017 21:13:29 +0000 (14:13 -0700)]
updated NEWS with fixes
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#`)
Yann Collet [Fri, 25 Aug 2017 16:50:56 +0000 (09:50 -0700)]
removed fasttest from circleCI
Yann Collet [Fri, 25 Aug 2017 01:30:00 +0000 (18:30 -0700)]
removed test-fasttest
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
Yann Collet [Fri, 25 Aug 2017 00:58:13 +0000 (17:58 -0700)]
fixed make recurrence from /tests
Yann Collet [Fri, 25 Aug 2017 00:03:03 +0000 (17:03 -0700)]
removed fasttest
Yann Collet [Thu, 24 Aug 2017 23:59:47 +0000 (16:59 -0700)]
minor : added header license
Yann Collet [Thu, 24 Aug 2017 23:46:19 +0000 (16:46 -0700)]
Merge branch 'dev' into parallelMake
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.
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
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…
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)
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
Markus Hennecke [Thu, 24 Aug 2017 12:31:45 +0000 (14:31 +0200)]
Fix: Add return statement to main function
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
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
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
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
Yann Collet [Tue, 15 Aug 2017 23:58:12 +0000 (16:58 -0700)]
updated lz4frame manual
Yann Collet [Tue, 15 Aug 2017 23:57:00 +0000 (16:57 -0700)]
Merge branch 'dev' into installVars and fixed conflicts
Yann Collet [Tue, 15 Aug 2017 23:50:04 +0000 (16:50 -0700)]
Merge pull request #383 from lz4/blockChecksum
Block checksum
Yann Collet [Tue, 15 Aug 2017 21:12:04 +0000 (14:12 -0700)]
Merge pull request #380 from lz4/dictID
Frame Dictionary API
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`)
Yann Collet [Mon, 14 Aug 2017 22:18:47 +0000 (15:18 -0700)]
fix minor markdown display issues
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
Yann Collet [Sat, 12 Aug 2017 00:58:46 +0000 (17:58 -0700)]
cli : restored command -BX to enable block checksum (#322)
Yann Collet [Sat, 12 Aug 2017 00:46:52 +0000 (17:46 -0700)]
restored block checksum capability at lz4frame API level
Yann Collet [Fri, 11 Aug 2017 17:49:25 +0000 (10:49 -0700)]
Merge pull request #378 from deymo/dev
Allow to predefine FORCE_INLINE macro.
Yann Collet [Thu, 10 Aug 2017 23:53:57 +0000 (16:53 -0700)]
implemented lz4frame decompression API
Yann Collet [Thu, 10 Aug 2017 19:12:53 +0000 (12:12 -0700)]
support dictionary compression with independent blocks
Yann Collet [Thu, 10 Aug 2017 17:28:52 +0000 (10:28 -0700)]
fixed gcc prototype warning
Yann Collet [Thu, 10 Aug 2017 07:48:19 +0000 (00:48 -0700)]
dictionary compression correctly uses compression level
Not obvious : copying the state was copying cdict's compression level
Yann Collet [Thu, 10 Aug 2017 01:22:26 +0000 (18:22 -0700)]
fixed C++ conversion warnings
Yann Collet [Thu, 10 Aug 2017 01:00:48 +0000 (18:00 -0700)]
fixed uninitialization error in lz4frame
Yann Collet [Wed, 9 Aug 2017 23:51:19 +0000 (16:51 -0700)]
implemented dictionary compression in lz4frame
note : only compression API is implemented and tested
still to do : decompression API
Yann Collet [Wed, 9 Aug 2017 19:29:38 +0000 (12:29 -0700)]
fixed frameCompress example
Yann Collet [Wed, 9 Aug 2017 00:43:11 +0000 (17:43 -0700)]
added dictID inside LZ4F_frameInfo_t
Compressor can set dictID on LZ4F_compressBegin()
Decompressor can retrieve it using LZ4F_getFrameInfo()
Yann Collet [Tue, 8 Aug 2017 18:59:57 +0000 (11:59 -0700)]
updated Frame specification
Restored DictID field in Frame header
Bumped specification version to v1.6.0
Alex Deymo [Fri, 28 Jul 2017 14:33:43 +0000 (16:33 +0200)]
Allow to predefine FORCE_INLINE macro.
FORCE_INLINE macro is defined based on the compiler used. When using
gcc, it will include "__attribute__((always_inline))" forcing gcc to
always inline all the functions marked as FORCE_INLINE. However, this
can cause a performance degradation of about 15%.
This patch allows to set the FORCE_INLINE macro from the compiler
command line to either "static" or "static inline" giving allowing it
to inline functions as needed when performing optimizations.
Yann Collet [Mon, 7 Aug 2017 04:06:14 +0000 (21:06 -0700)]
Merge branch 'dev' of github.com:Cyan4973/lz4 into dev
Yann Collet [Mon, 7 Aug 2017 04:05:57 +0000 (21:05 -0700)]
Merge pull request #376 from ido/patch-1
Fix typos preventing installation of static lib.
Yann Collet [Mon, 7 Aug 2017 04:04:54 +0000 (21:04 -0700)]
Merge branch 'dev' of github.com:Cyan4973/lz4 into dev
Yann Collet [Mon, 7 Aug 2017 04:04:46 +0000 (21:04 -0700)]
updated man page
Ido Rosen [Tue, 1 Aug 2017 04:48:58 +0000 (00:48 -0400)]
Fix typos preventing installation of static lib.
Yann Collet [Sun, 9 Jul 2017 06:01:22 +0000 (23:01 -0700)]
Merge pull request #374 from ferdnyc/patch-2
Generate updated man page from Markdown source
FeRD (Frank Dana) [Sat, 8 Jul 2017 15:56:55 +0000 (11:56 -0400)]
Generate updated man page from Markdown source