Commit Graph

568 Commits

Author SHA1 Message Date
Yann Collet
f1fa91d6fc insertAndFindBestMatch defers to insertAndGetWiderMatch 2017-10-08 23:40:21 -07:00
Yann Collet
87968517f9 fixed decoding block checksum in lz4frame 2017-10-04 15:24:08 -07:00
Yann Collet
f6b31bf0d0 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.
2017-09-30 10:35:55 -07:00
Yann Collet
ceb868f442 minor lz4frame code refactor
try to improve code readability.
minor optimization on condition to preserve history.
2017-09-23 15:06:24 -07:00
W. Felix Handte
77f7245ea7 Fix Segfault When Copying Dict
dctx must have been initialized before we can copy the dictionary in.
2017-09-22 13:20:49 -07:00
Yann Collet
a30cba08f4 fixed a bunch of -Wcomma warnings
reported by @rvandermeulen (#398)
2017-09-10 14:32:38 -07:00
Yann Collet
b500c5282e 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
2017-09-07 12:48:24 -07:00
Yann Collet
00418f7611 bench : made decompression speed evaluation same time as compression
minor : slightly modified an example do avoid disabling a gcc warning through #pragma
2017-09-07 12:12:36 -07:00
Yann Collet
ee5332438b minor Makefile fixes 2017-09-06 17:41:44 -07:00
Yann Collet
1ad9a36cfb updated lib/README
clarifications, improved wording
2017-09-06 11:22:45 -07:00
Yann Collet
3d260f3522 complementary information for #394 2017-08-30 16:09:10 -07:00
Yann Collet
e3c71584ff clarified documentation of streaming decompression functions
(synchronous bufferless mode)
answering questions by @jtbandes (#394)
2017-08-30 15:42:04 -07:00
Yann Collet
f212a10ae0 fixed FS-independent file order in /lib
identified by @bmwiedemann
2017-08-29 15:31:56 -07:00
Yann Collet
c4d6884cd8 build: source files sorted in a FS independent manner
to be more compatible with reproducible builds.
patch inspired by @bmwiedemann
2017-08-26 12:22:51 -07:00
Nick Terrell
252ce14fd2 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.
2017-08-24 14:06:34 -07:00
tcpan
f423d016cf FIX: added prefix to FORCE_INLINE to prevent redefinition error during compilation when used with other libraries that define FORCE_INLINE 2017-08-24 10:14:20 -04:00
Yann Collet
c10863b98e fix : asan error in dctx, due to increased maximum frame header size, reported by Craig Young 2017-08-17 10:55:30 -07:00
Yann Collet
a1f3a27e9b Merge branch 'dev' into installVars and fixed conflicts 2017-08-15 16:57:00 -07:00
Yann Collet
af9d72b7f6 Merge pull request #383 from lz4/blockChecksum
Block checksum
2017-08-15 16:50:04 -07:00
Yann Collet
8593ba8831 Merge pull request #380 from lz4/dictID
Frame Dictionary API
2017-08-15 14:12:04 -07:00
Yann Collet
aea7d521ae better respect GNU standard Makefile conventions
supports lowercase directory variables
add an "Installation" section in README.md
added an INSTALL file
2017-08-14 15:13:23 -07:00
Yann Collet
77f99d2922 restored block checksum capability at lz4frame API level 2017-08-11 17:46:52 -07:00
Yann Collet
757497ae3d implemented lz4frame decompression API 2017-08-10 16:53:57 -07:00
Yann Collet
4531637ecd support dictionary compression with independent blocks 2017-08-10 12:12:53 -07:00
Yann Collet
8d597d62d5 fixed gcc prototype warning 2017-08-10 10:28:52 -07:00
Yann Collet
d8aafe2c52 dictionary compression correctly uses compression level
Not obvious : copying the state was copying cdict's compression level
2017-08-10 00:48:19 -07:00
Yann Collet
ca2fb166ab fixed C++ conversion warnings 2017-08-09 18:22:26 -07:00
Yann Collet
bf8daa2fd5 fixed uninitialization error in lz4frame 2017-08-09 18:00:48 -07:00
Yann Collet
31f2cdf4d2 implemented dictionary compression in lz4frame
note : only compression API is implemented and tested
still to do : decompression API
2017-08-09 16:51:19 -07:00
Yann Collet
a82dadfbae added dictID inside LZ4F_frameInfo_t
Compressor can set dictID on LZ4F_compressBegin()
Decompressor can retrieve it using LZ4F_getFrameInfo()
2017-08-08 17:43:11 -07:00
Alex Deymo
76ef6d0ab0 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.
2017-08-07 10:34:33 +02:00
Ido Rosen
8aeaf6bb3a Fix typos preventing installation of static lib. 2017-08-01 00:48:58 -04:00
Yann Collet
6ad3a983db fix #369
The bug would make the bt search read one byte in an invalid memory region,
and make a branch decision based on its value.
Impact was small (missed compression opportunity).
It only happens in -BD mode, with extDict-prefix overlapping matches.

The bt match search is supposed to work also in extDict mode.
In which case, the match ptr can point into Dict.
When the match was overlapping Dict<->Prefix,
match[matchLength] would end up outside of Dict, in an invalid memory area.
The correction ensures that in such a case,
match[matchLength] ends up at intended location, inside prefix.
2017-06-26 11:29:05 -07:00
Chocobo1
a4ec7fa7b7 Fix gcc7 Wimplicit-fallthrough warnings
For the default Wimplicit-fallthrough=3 level,
the comment should start with "fall*"
2017-06-19 13:57:35 +08:00
Yann Collet
89b9f026c9 made level 10 a bit faster
at the expense of a little bit of compression ratio.

Now speed is intermediate on calgary corpus :
25 - 12 - 8 - 3
2017-06-13 17:25:29 -07:00
Yann Collet
bfc1806605 clarified lz4frame api comment (#350) 2017-06-13 12:35:00 -07:00
Yann Collet
139a387d17 updated NEWS 2017-06-12 10:54:59 -07:00
Yann Collet
e60cbb5cac added test for LZ4F_resetDecompressionContext() 2017-05-10 16:28:36 -07:00
Yann Collet
a902127613 bumped version number to 1.8.0
due to addition of prototype
LZ4F_resetDecompressionContext()
2017-05-10 13:27:18 -07:00
Yann Collet
b8575f2d2b updated Makefile
to automatically build manual files with
make all
2017-05-10 13:26:04 -07:00
Yann Collet
fe932c4527 expose LZ4F_resetDecompressionContext() 2017-05-10 12:25:05 -07:00
Yann Collet
1efa48831e minor readability changes 2017-05-02 12:01:13 -07:00
Yann Collet
a8dd86d93e changed macro HEAPMODE into LZ4_HEAPMODE
This macro is susceptible to be triggered from user side
typically through compiler flag (-DLZ4_HEAPMODE=1).
In which case, it makes sense to prefix the macro
since we want to reduce potential side-effect on namespace.
2017-05-01 22:32:21 -07:00
Alexey Tourbin
6cf1f7d758 lz4hc.c: clamp compression levels > 12
I noticed that, while 'lz4 -12' works fine, 'lz4 -13' does not compress
at all.

$ cat </etc/passwd |wc -c
2565
$ lz4 -12 </etc/passwd |wc -c
1456
$ lz4 -13 </etc/passwd |wc -c
2584

Perhaps the best way to fix this is to clamp the compression level
in the LZ4HC_compress_generic routine.
2017-04-29 16:33:15 +03:00
Alexey Tourbin
f3460fc148 liz4hc.h: fix a comment: LZ4HC_MAX_CLEVEL -> LZ4HC_CLEVEL_MAX 2017-04-29 16:06:45 +03:00
Nick Terrell
0b3e807043 [LZ4F] Allow users to disable LZ4F_DEPRECATE 2017-04-26 10:03:23 -07:00
Yann Collet
e2c9b19122 lz4frame : Added negative compression levels 2017-04-09 01:41:36 -07:00
Yann Collet
7eecd32c07 ensure lz4f_cctx internal buffer size remain valid in case of malloc error 2017-04-09 01:11:39 -07:00
Yann Collet
e169edac05 lz4frame : control lz4 context creation success 2017-04-08 18:27:31 -07:00
Yann Collet
e2827775ee make __packed memory access default for gcc
It's always as good or better then memcpy()
but depends on gcc-specific extension.

solves https://github.com/facebook/zstd/issues/620
2017-03-30 12:22:17 -07:00
Yann Collet
6226d52eab fixed minor Visual warning 2017-03-29 14:18:10 -07:00
Yann Collet
b88df6b1b0 Improved comments on LZ4F_getFrameInfo()
and added LZ4F_resetCompressionContext()
2017-03-29 12:51:08 -07:00
Yann Collet
f0a7651fce Safer LZ4_getFrameInfo()
LZ4_getFrameInfo() is now guaranteed to keep dctx state clean,
even in case of failure.
2017-03-28 17:10:01 -07:00
Yann Collet
4567d0def5 Merge pull request #340 from lz4/optlz4opt
lz4opt
2017-03-24 17:10:45 -07:00
Yann Collet
38362c1d65 Merge pull request #338 from ldv-alt/dev
Export deprecated symbols declared in lz4hc.h
2017-03-24 12:03:32 -07:00
Yann Collet
60b6d2907f improved level 10 speed for degenerated cases 2017-03-24 11:29:35 -07:00
Yann Collet
8f8fc52fcf Merge branch 'dev' into optlz4opt 2017-03-24 11:00:40 -07:00
Yann Collet
0863931a1c fixed API comment for LZ4F_createCompressionContext()
as reported by @nh2
2017-03-24 10:34:18 -07:00
Dmitry V. Levin
dab3590fce Export deprecated symbols declared in lz4hc.h
Commit 25b2435885 exported deprecated
symbols declared in lz4.h by marking all LZ4_DEPRECATED functions with
LZ4LIB_API attribute.  This change does the same with functions declared
in lz4hc.h file, thus extending the export to lz4hc.h.

As result, the following 17 deprecated functions are exported again:

LZ4_compressHC
LZ4_compressHC2
LZ4_compressHC2_continue
LZ4_compressHC2_limitedOutput
LZ4_compressHC2_limitedOutput_continue
LZ4_compressHC2_limitedOutput_withStateHC
LZ4_compressHC2_withStateHC
LZ4_compressHC_continue
LZ4_compressHC_limitedOutput
LZ4_compressHC_limitedOutput_continue
LZ4_compressHC_limitedOutput_withStateHC
LZ4_compressHC_withStateHC
LZ4_createHC
LZ4_freeHC
LZ4_resetStreamStateHC
LZ4_sizeofStreamStateHC
LZ4_slideInputBufferHC
2017-03-24 03:12:48 +00:00
Yann Collet
68044acfec Merge branch 'optlz4opt' of github.com:Cyan4973/lz4 into optlz4opt 2017-03-20 09:58:00 -07:00
Yann Collet
b8bc70022b minor refactor 2017-03-20 05:04:12 -07:00
Yann Collet
cea8f60df1 slight btopt speed improvement
removing a useless test
2017-03-20 02:33:02 -07:00
Yann Collet
f513020a6d slight btopt speed improvement
removing a useless test
2017-03-17 18:07:53 -07:00
Yann Collet
8bd32a17b1 made SET_PRICE macro more usable
previous version would use argument to also change target member.
Now, only values are transferred
2017-03-17 17:42:47 -07:00
Yann Collet
118b47f3d1 improved lz4opt speed (~4%) 2017-03-17 16:53:35 -07:00
Yann Collet
eff6166eb8 minor price function optimization 2017-03-17 15:51:21 -07:00
Yann Collet
0d073d4d28 added extern C for lz4.h static section
should make the file more compatible with C++ compiler, such as Visual or g++
2017-03-17 15:11:09 -07:00
Yann Collet
aae447fffd LZ4_compress_HC_continue_destSize() works as intended up to level 10
It's incompatible with btopt though,
so cLevel >= 11 feature much reduced performance (degraded mode)
2017-03-16 15:41:30 -07:00
Yann Collet
cd35f0d98c LZ4_compress_HC_destSize() uses LZ4HC_compress_generic() code path
Limits compression level to 10,
to remain compatible with Hash Chain.
2017-03-16 15:10:38 -07:00
Yann Collet
6b2a1b3606 updated lz4 version number 2017-03-16 02:24:46 -07:00
Yann Collet
430b7d32b3 created LZ4_HC_STATIC_LINKING_ONLY section
where are exposed new prototypes *_destSize()
2017-03-16 02:16:24 -07:00
Yann Collet
e945a27f9c fix #333 : expose obsolete decoding functions
with deprecation warning.
notified by Chen Yufei
2017-03-14 21:21:54 -07:00
Yann Collet
b9132bedcd Merge pull request #331 from ldv-alt/dev
Export only those symbols that are part of public API
2017-03-12 03:16:23 -07:00
Dmitry V. Levin
883ebdcee0 Export only those symbols that are part of public API
Specify -fvisibility=hidden parameter when linking the shared library
using -fPIC, assuming that gcc >= 4 is used.

This change results to unexporting of the following 42 functions:

LZ4F_getErrorCode
LZ4_XXH32
LZ4_XXH32_canonicalFromHash
LZ4_XXH32_copyState
LZ4_XXH32_createState
LZ4_XXH32_digest
LZ4_XXH32_freeState
LZ4_XXH32_hashFromCanonical
LZ4_XXH32_reset
LZ4_XXH32_update
LZ4_XXH64
LZ4_XXH64_canonicalFromHash
LZ4_XXH64_copyState
LZ4_XXH64_createState
LZ4_XXH64_digest
LZ4_XXH64_freeState
LZ4_XXH64_hashFromCanonical
LZ4_XXH64_reset
LZ4_XXH64_update
LZ4_XXH_versionNumber
LZ4_compressHC
LZ4_compressHC2
LZ4_compressHC2_continue
LZ4_compressHC2_limitedOutput
LZ4_compressHC2_limitedOutput_continue
LZ4_compressHC2_limitedOutput_withStateHC
LZ4_compressHC2_withStateHC
LZ4_compressHC_continue
LZ4_compressHC_limitedOutput
LZ4_compressHC_limitedOutput_continue
LZ4_compressHC_limitedOutput_withStateHC
LZ4_compressHC_withStateHC
LZ4_compress_fast_force
LZ4_compress_forceExtDict
LZ4_createHC
LZ4_decompress_safe_forceExtDict
LZ4_freeHC
LZ4_resetStreamStateHC
LZ4_sizeofStreamStateHC
LZ4_slideInputBufferHC
LZ4_uncompress
LZ4_uncompress_unknownOutputSize
2017-03-10 23:35:30 +00:00
Dmitry V. Levin
25b2435885 Export deprecated symbols
Deprecated symbols are still a part of ABI and have to be exported,
so mark them with LZ4LIB_API attribute.
2017-03-10 23:35:30 +00:00
Dmitry V. Levin
7aeecbff71 Explicitly set visibility of public API functions when gcc is used
Windows builds already limit exporting of functions to those marked
with LZ4LIB_API tag.  The same behaviour could be achieved on other
platforms when a relatively fresh gcc is used.

This change assigns public visibility to all symbols marked with
LZ4LIB_API tag.  When the library is built in -fvisibility=hidden
mode, only these marked symbols will be exported.
2017-03-10 23:35:30 +00:00
remittor
36842ebb19 lz4hc: Fix LZ4HC_compress_hashChain for backward compatibility 2017-03-09 12:19:24 +03:00
remittor
baa155088b lz4hc: Fix LZ4HC_compress_hashChain for full support destSize variant 2017-03-08 18:49:55 +03:00
remittor
f007153e3f lz4hc: Add LZ4_compressHC_destSize and LZ4_compress_HC_continue_destSize 2017-03-08 11:11:15 +03:00
remittor
45b592b7ec lz4hc: Cleanup function LZ4HC_encodeSequence 2017-03-08 00:30:54 +03:00
remittor
534f8fa5d6 lz4hc: Cleanup function LZ4HC_compress_hashChain 2017-03-07 17:11:48 +03:00
Eric Siegerman
eb51b2b8d9 Explicitly create $(DESTDIR)$(LIBDIR)/ at install time
This is needed on systems where it isn't the parent of
$(PKGCONFIGDIR), and so doesn't get created implicitly.
2017-02-14 22:12:26 -05:00
Yann Collet
04ec092696 updated comments on block sizes 2017-02-08 11:02:32 -08:00
Przemyslaw Skibinski
8e1fd97d16 lz4frame.h: added Introduction 2017-01-23 17:46:32 +01:00
Przemyslaw Skibinski
9071df0fa5 lz4frame.h: prepared to generate manual 2017-01-23 16:22:00 +01:00
Przemyslaw Skibinski
f9f48f8ed9 lz4.h: improved manual generation 2017-01-23 16:02:51 +01:00
Przemyslaw Skibinski
489d1618c9 added "This Makefile is validated for" 2017-01-19 16:28:08 +01:00
Yann Collet
9683a1ae87 LZ4_MEMORY_USAGE can be modified from compilation command line 2017-01-05 16:50:37 +01:00
Przemyslaw Skibinski
312d88249f removed nextToUpdateBT 2016-12-28 15:38:59 +01:00
Przemyslaw Skibinski
3d5bb38977 clean logging 2016-12-28 15:37:12 +01:00
Przemyslaw Skibinski
1c80b9af4e LZ4HC_getSearchNum 2016-12-28 15:18:19 +01:00
Przemyslaw Skibinski
98f9d6c726 improved logging 2016-12-28 14:04:38 +01:00
Przemyslaw Skibinski
12aae846b3 fixed table update in LZ4_loadDictHC 2016-12-28 13:19:11 +01:00
Przemyslaw Skibinski
c8b31263cc added FUZ_CLEVEL_DEFAULT 2016-12-28 13:08:38 +01:00
Przemyslaw Skibinski
d57ff6456d changed default PREFIX and MANDIR 2016-12-28 11:27:17 +01:00
Przemyslaw Skibinski
20381a2fce fixed -BD compression 2016-12-27 15:31:35 +01:00
Przemyslaw Skibinski
e6536faf33 lib\Makefile: fixed INSTALL_DATA 2016-12-27 11:17:35 +01:00
Przemyslaw Skibinski
efaa9b7bc7 Merge remote-tracking branch 'refs/remotes/lz4/dev' into dev
# Conflicts:
#	lib/Makefile
2016-12-27 10:43:07 +01:00
Przemyslaw Skibinski
b22e2bed5e BSD: improved "make install" 2016-12-23 10:05:41 +01:00
Przemyslaw Skibinski
ea51ad0cee Solaris: working "make install" 2016-12-23 00:02:01 +01:00
Yann Collet
19c0f21b00 updated Makefile : lz4 no longer recompiled when already up-to-date 2016-12-22 18:02:09 +01:00
Yann Collet
52cac9a973 updated a few macros names 2016-12-22 11:41:05 +01:00
Yann Collet
70526a11e0 fixed lib/clean 2016-12-21 15:33:53 +01:00
Yann Collet
7cf0bb97b2 LZ4F_compressBound(0) provides upper bound for LZ4F_flush() and LZ4F_compressEnd() [#290, suggested by @vtermanis] 2016-12-21 14:18:01 +01:00
Yann Collet
385cb4f539 minor update Makefile 2016-12-21 13:18:02 +01:00
Przemyslaw Skibinski
4f050b68d8 tree update dependent from compression level 2016-12-09 18:17:46 +01:00
Przemyslaw Skibinski
838ed341f9 fullUpdate as a parameter 2016-12-09 17:16:35 +01:00
Przemyslaw Skibinski
b3ecc3e3ec last match starts at least 12 bytes before end of block 2016-12-09 16:09:38 +01:00
Przemyslaw Skibinski
d694bf9111 faster opt compression 2016-12-09 15:20:32 +01:00
Przemyslaw Skibinski
a22e71d4a9 full binary tree update 2016-12-09 12:37:17 +01:00
Przemyslaw Skibinski
fb6c98c856 slightly improved lz4opt.h 2016-12-08 15:50:45 +01:00
Przemyslaw Skibinski
8c2f23c130 fixed LZ4_STREAMHCSIZE 2016-12-07 16:24:35 +01:00
Przemyslaw Skibinski
76228f064a LZ4HC_DICTIONARY_LOGSIZE 17 2016-12-07 16:19:10 +01:00
Przemyslaw Skibinski
8bfa42e61e improved ratio 2016-12-07 15:49:45 +01:00
Przemyslaw Skibinski
1289038240 15-bit LZ4HC_HASH_LOG 2016-12-07 14:31:46 +01:00
Przemyslaw Skibinski
410ba53dbc improved LZ4HC_BinTree_GetAllMatches 2016-12-07 13:07:39 +01:00
Przemyslaw Skibinski
1833be1cf0 fixed gcc warnings 2016-12-07 12:59:05 +01:00
Przemyslaw Skibinski
f2ebf37bfe slightly improved ratio 2016-12-07 12:49:38 +01:00
Przemyslaw Skibinski
77b051ed7b improve code formatting 2016-12-07 12:17:24 +01:00
Przemyslaw Skibinski
e3fee94742 LZ4HC_MAX_CLEVEL = 12 2016-12-07 12:16:33 +01:00
Przemyslaw Skibinski
757ef1d5fc removed LZ4HC_GetAllMatches 2016-12-07 11:44:17 +01:00
Przemyslaw Skibinski
cfe6a24b08 updated LZ4HC_get_price 2016-12-06 19:42:47 +01:00
Przemyslaw Skibinski
2113ead176 17-bit LZ4HC_MAXD 2016-12-06 19:11:53 +01:00
Przemyslaw Skibinski
c1ef7a177f introduced LZ4HC_compress_hashChain 2016-12-06 15:21:28 +01:00
Przemyslaw Skibinski
3f430daf7a added lz4opt.h 2016-12-06 15:20:59 +01:00
Przemyslaw Skibinski
5ae0e789fc Merge remote-tracking branch 'refs/remotes/lz4/dev' into dev 2016-12-06 13:44:42 +01:00
Yann Collet
5eb547a608 fix #283 : implement LZ4_versionString(). 2016-12-04 20:05:36 +01:00
Yann Collet
a9a8dbf7c1 fixed minor display error when using -r 2016-11-28 04:01:02 -08:00
Yann Collet
f4c74e6fac library release build compatible with environment variable 2016-11-22 11:52:43 -08:00
Yann Collet
7819d58787 new test case with fPIE 2016-11-22 11:18:07 -08:00
Przemyslaw Skibinski
65a542579b updated README.md 2016-11-22 11:14:11 +01:00
Yann Collet
8b233b228d added a few dates 2016-11-21 15:51:39 -08:00
Yann Collet
742f2b683e added doc in code comments 2016-11-21 14:13:00 -08:00
Takayuki MATSUOKA
b4db9d7e35 Add C++14 standard [[deprecated]] attribute
See also
For __cplusplus predefined macro, https://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html
For [[deprecated]] attribute, https://isocpp.org/wiki/faq/cpp14-language#deprecated-attribute
2016-11-19 22:08:48 +09:00
Yann Collet
19df3029e2 fixed #272 (compilation fails on gcc 4.4), reported by @totaam 2016-11-18 17:56:56 -08:00
Yann Collet
a91983daa0 highly improved speed on -mx32 mode
Now -mx32 is fastest mode on x64 CPU
2016-11-18 17:05:06 -08:00
Yann Collet
8e1ea59ad6 attempt to fix sanitize32 package dependency 2016-11-17 18:30:46 -08:00
Yann Collet
1abecbc33c fix 32-bits mode.
Large File support for Mac OS-X in 32-bits mode
Fixed potential undefined behavior
Changed makefile for 32-bits mode
2016-11-17 13:02:06 -08:00
Yann Collet
7fde7438d3 Merge branch 'dev' of github.com:Cyan4973/lz4 into dev 2016-11-16 11:37:05 -08:00
Przemyslaw Skibinski
2dee7bdaf6 include NEWS in lz4_x64.zip and lz4_x86.zip 2016-11-16 11:06:28 +01:00
Przemyslaw Skibinski
632ab3b8d4 updated programs\README.md 2016-11-16 10:53:06 +01:00
Przemyslaw Skibinski
8b48d5e446 updated example\README.md 2016-11-16 09:53:07 +01:00
Przemyslaw Skibinski
11f6217cc2 created dll\example directory 2016-11-16 09:32:26 +01:00
Przemyslaw Skibinski
7b6a9d8638 Merge remote-tracking branch 'refs/remotes/lz4/dev' into dev 2016-11-16 09:01:45 +01:00
Przemyslaw Skibinski
2e10aab20f MinGW doesn't require the import library at all 2016-11-16 08:59:18 +01:00
Yann Collet
7cecc7b089 fixed a limit case scenario 2016-11-15 17:51:29 -08:00
Yann Collet
d2be69b144 fixed minor coverity warnings 2016-11-15 14:46:57 -08:00
Yann Collet
b44790cf98 Merge pull request #270 from inikep/dev
autobuild executables
2016-11-15 11:24:26 -08:00
Przemyslaw Skibinski
e583dd0566 ImageHasSafeExceptionHandlers=false 2016-11-15 16:01:38 +01:00
Przemyslaw Skibinski
eb160e1a2c appveyor.yml: added liblz4_x86.zip 2016-11-15 14:09:36 +01:00
Przemyslaw Skibinski
45b8623afa updated lib\dll\README.md 2016-11-15 13:49:20 +01:00
Przemyslaw Skibinski
5625cc21ea appveyor.yml: generate DLL package 2016-11-15 13:29:33 +01:00
Przemyslaw Skibinski
c093e256d4 added files used by DLL package 2016-11-15 12:57:56 +01:00
Przemyslaw Skibinski
be471c69da added fullbench-dll.sln that works with gcc/MinGW 2016-11-15 12:57:03 +01:00
Przemyslaw Skibinski
f71340ce1d DLL dependencies moved to lib/dll/ 2016-11-15 11:06:16 +01:00
Yann Collet
923cf4447f bump version number 2016-11-14 18:09:31 -08:00
Yann Collet
4c5c711b7a fixed minor conversion warning 2016-11-14 14:53:15 -08:00
Yann Collet
f094f53144 silence a minor msan warning 2016-11-14 14:38:46 -08:00
Yann Collet
0fe5c187a5 fixed minor msan warning 2016-11-14 11:34:10 -08:00
Yann Collet
fa158b4118 fixed nameless union warnings 2016-11-14 10:02:01 -08:00
Yann Collet
84af32d491 Merge branch 'dev' of github.com:Cyan4973/lz4 into dev 2016-11-14 08:52:23 -08:00
Yann Collet
5a5ebeec15 clang and g++ tests restricted to native only on Travis CI Ubuntu v12 environment 2016-11-14 08:51:28 -08:00
Yann Collet
569897dddd Merge pull request #269 from inikep/dev
Dev
2016-11-14 08:27:06 -08:00
Yann Collet
1b24cc1155 fixed conversion warnings 2016-11-14 07:10:31 -08:00
Przemyslaw Skibinski
9ad7508db0 Merge remote-tracking branch 'refs/remotes/lz4/dev' into dev 2016-11-14 11:29:11 +01:00
Yann Collet
84b97f90b8 fuzzer code refactoring
fix g++ conversion warning
2016-11-12 17:14:57 -08:00
Yann Collet
94542d8458 made lz4hc explicitly dependent on lz4 2016-11-12 15:50:29 -08:00
Yann Collet
bb97e8a6fd fixed __GNUC__ macro 2016-11-12 13:30:02 -08:00
Yann Collet
3580d96980 enabled deprecation warnings on remaining obsolete functions 2016-11-12 08:48:42 -08:00
Yann Collet
874f3e095b update code comments 2016-11-12 07:29:54 -08:00
Yann Collet
e528a82f01 Merge pull request #267 from terrelln/strict-aliasing
Expose internal types to remove strict aliasing
2016-11-11 16:54:51 -08:00
Yann Collet
3d456bdf2a fixed conversion warnings 2016-11-11 15:40:58 -08:00
Yann Collet
bf6dda69e6 updated frametest 2016-11-11 15:11:56 -08:00
Nick Terrell
85aeb0e4bb Expose internal types to remove strict aliasing 2016-11-11 13:00:02 -08:00
Przemyslaw Skibinski
ec6fb477b2 added visual\README.md 2016-11-11 08:57:46 +01:00
Yann Collet
4f9db1383a updated xxhash lib 2016-11-10 18:34:49 -08:00
Nick Terrell
5b37837e6e Fix license and remove references to zstd 2016-11-10 17:27:56 -08:00
Yann Collet
1f246a9899 Fixed #178 fullbench on small input 2016-11-10 15:31:59 -08:00
Przemyslaw Skibinski
52251d9709 Using MinGW+MSYS to create DLL 2016-11-10 18:30:59 +01:00
Przemyslaw Skibinski
72a4a84df7 udated README.md 2016-11-10 17:49:42 +01:00
Przemyslaw Skibinski
2ecce6f151 lz4.h: added Introduction section 2016-11-10 17:22:59 +01:00
Przemyslaw Skibinski
063b4d92e1 fixed make install 2016-11-09 16:23:08 +01:00
Przemyslaw Skibinski
773ae50b47 DLL exports only functions defined in liblz4.def 2016-11-09 16:07:28 +01:00
Przemyslaw Skibinski
ca80a7c8f7 create DLL with MinGW/MSYS 2016-11-09 15:19:29 +01:00
Przemyslaw Skibinski
67fd5dffd9 updated appveyor.yml 2016-11-09 14:05:44 +01:00
Przemyslaw Skibinski
7df658ec1b removed LZ4_DLL_EXPORT=1 (2) 2016-11-09 12:52:27 +01:00
Przemyslaw Skibinski
fe5148417f introduced LZ4_COMPILED_AS_DLL 2016-11-09 11:45:55 +01:00
Przemyslaw Skibinski
0a22bf7d6e err0r(LZ4F_errorCodes code) uses ptrdiff_t 2016-11-08 11:47:03 +01:00
Przemyslaw Skibinski
d06ab4f415 test powerpc64 2016-11-08 11:16:16 +01:00
Yann Collet
c7ab95faa5 slightly improved HC compression ratio 2016-11-07 19:32:24 -08:00
Yann Collet
e9089bcbe4 small compression ratio and speed improvement on small files 2016-11-07 17:31:38 -08:00
Yann Collet
f6a7c6b578 Merge branch 'dev' of github.com:Cyan4973/lz4 into dev 2016-11-07 10:31:43 -08:00
Przemyslaw Skibinski
d61bb74f20 updated declaration of LZ4F_freeDecompressionContext 2016-11-07 14:14:42 +01:00
Przemyslaw Skibinski
58ead8dd27 fixed appveyor.yml 2016-11-07 13:00:08 +01:00
Nick Terrell
920bf21714 Fix LZ4_decompress_fast_continue() bug
It specified the external dictionary location incorrectly.
Add tests that expose this bug with both normal compilation and ASAN.
2016-11-04 20:01:23 -07:00
Yann Collet
207f478bab minor refactor 2016-11-04 19:04:32 -07:00
Yann Collet
96565816bd restricted deprecation warning to fairly recent gcc versions (>=6.0) 2016-11-04 17:11:06 -07:00
Yann Collet
eaad740ac7 lz4frame obsolete enum should trigger deprecation warnings (on supported compilers) 2016-11-04 16:58:34 -07:00
Yann Collet
079d5dd54b removed support for old error code enums from lz4frame_static.h, to free up namespace.
note : lz4frame_static.h does not guaranteed API stability.
note 2 : the macro to enable old error code enums is still present. Just needs to comment one line to re-enable them.
2016-11-04 16:29:43 -07:00
Nick Terrell
f30c56c083 Quiet gcc-4.6.3 narrowing warning 2016-11-04 12:34:28 -07:00
Yann Collet
f878c08b76 better correctness on big-endian 64-bits platforms 2016-11-04 07:24:21 -07:00
Yann Collet
26dec498cf small compression speed improvement on 64-bits systems 2016-11-04 07:18:03 -07:00
Yann Collet
4c6610709e minor code refactoring 2016-11-03 20:32:51 -07:00
Yann Collet
eda8c4eb1c fix #198 : no longer requires to restart streaming decompression from where it stopped.
It permits relocating remaining data into another memory space.
Still, the same content must be presented.
2016-11-03 18:46:07 -07:00
Yann Collet
4791cda04a fixed strict warnings 2016-11-03 17:31:41 -07:00
Yann Collet
258a5e7fa4 updated comments 2016-11-03 17:14:25 -07:00
Przemyslaw Skibinski
84cedb4632 updated links to LZ4 repository 2016-11-03 15:12:57 +01:00
Przemyslaw Skibinski
88cef262ec documentation moved to doc/ 2016-11-03 13:25:20 +01:00
Yann Collet
67500142c1 Clarified license (#115, #244) 2016-11-01 19:14:04 -07:00
Yann Collet
7e112cfa5c fixes static compilation under Windows (#246) 2016-10-21 09:49:30 -07:00
Yann Collet
52cdb4a5f4 Merge pull request #241 from vapier/dev
add a flag to disable static libs
2016-09-23 15:59:39 +02:00
Mike Frysinger
43b631223b add a flag to disable static libs 2016-09-22 23:59:02 -04:00
Kouhei Sutou
59771f41cd Use different prefix for each file to avoid conflict 2016-09-23 10:38:44 +09:00
Kouhei Sutou
012c66536c Add LZ4LIB_API
It's based on Zstandard's ZSTDLIB_API.

See also: https://github.com/Cyan4973/lz4/issues/216#issuecomment-226245432

Deprecated functions aren't LZ4LIB_API targets. Because we don't need to
export deprecated functions from now.

There are same LZ4LIB_API definitions in each header files instead of
including a common header file because LZ4_DEPRECATED is defined so.
2016-09-23 00:39:45 +09:00
Yann Collet
3b9439ccd0 updated uninstall 2016-09-17 11:59:13 +02:00
Yann Collet
8eae1320c2 Merge pull request #236 from inikep/dev
fix bug #232 at https://github.com/Cyan4973/lz4/issues/232
2016-09-06 16:49:34 +02:00
Yann Collet
33993542af removed test artefacts 2016-09-06 16:46:52 +02:00
inikep
3eb143fffa fix bug #232 at https://github.com/Cyan4973/lz4/issues/232 2016-09-06 10:36:16 +02:00
Yann Collet
28f98647e3 lz4 version source from lz4.h 2016-09-02 22:04:16 -07:00
Yann Collet
64f556e610 lz4cli version number from lz4.h 2016-09-02 19:32:06 -07:00
Yann Collet
5871585b6a coding style change 2016-09-02 19:06:01 -07:00
inikep
2cf32ef0f1 -b# and -e# options from zstd 2016-09-02 22:59:18 +02:00
Georg Sauthoff
681d5010d5 use gnu c99 to get both c99 and POSIX
when compiling with gcc

fixes fileno() implicitly defined on Linx and compile error on Solaris 10
2016-08-27 15:24:50 +02:00
Yann Collet
5bd3eaa481 minor comments 2016-08-21 00:08:38 +02:00
Yann Collet
9578ff539d minor refactor 2016-08-20 23:59:45 +02:00
Yann Collet
a7672dc4f9 minor decompression speed gains 2016-08-20 23:52:20 +02:00
Yann Collet
63d22e7a19 minor comments clarifications 2016-08-20 23:22:29 +02:00
Yann Collet
74e6afc5dc minor comments clarification 2016-08-11 18:55:42 +02:00
Yann Collet
2ac9ecec68 Fixed #157 : LZ4F_getFrameInfo() fails on valid null-content frame 2016-08-11 14:55:39 +02:00
Ben Wiederhake
d3e2d80266 Use https wherever possible 2016-07-08 00:46:02 +02:00
Ben Wiederhake
6540030033 Use correct 'repository' hostname 2016-07-08 00:45:18 +02:00
Yann Collet
91cce757f5 Updated xxhash library to v0.6.1 2016-06-29 21:48:27 +02:00
Yann Collet
5540f4f93e stronger compilation flags 2016-06-29 20:25:10 +02:00
Yann Collet
19e585cc46 modified : some more deprecated functions from lz4hc.h generate warnings 2016-06-29 18:18:34 +02:00
Yann Collet
6b1600f41e changed : default benchmark LZ4_decompress_safe() 2016-06-29 17:48:28 +02:00
Yann Collet
6923f3e230 Minor refactoring (code style) 2016-06-29 17:12:24 +02:00
Yann Collet
410ec81543 Fixed : alignment warning 2016-06-29 17:02:09 +02:00
Yann Collet
bc342ab94c minor refactoring 2016-06-29 16:01:24 +02:00
Yann Collet
c8a573d32c very minor decompression speed gain 2016-06-29 15:04:19 +02:00
Yann Collet
e27e7316dd minor code refactoring 2016-06-29 14:54:07 +02:00
Yann Collet
8938e10742 minor compression speed improvement 2016-06-29 14:07:54 +02:00
Yann Collet
c77c0c1086 minor refactoring 2016-06-29 13:21:23 +02:00
Yann Collet
3c03326004 minor refactoring (coding style) 2016-06-29 12:54:23 +02:00
Martin Waschbüsch
7bfbccb972 Add FreeBSD to install targets
Add FreeBSD to install targets
2016-05-17 07:47:03 +02:00
Irwan Djajadi
bc70a4b72e fixed non-C99 compilers 2016-04-19 15:06:15 -05:00
Irwan Djajadi
10e3eecc56 fixed non-C99 compiler 2016-04-19 15:01:35 -05:00
Irwan Djajadi
973baa2c19 Merge branch 'heapmode_alloc_failure_fix' into dev 2016-04-19 08:22:56 -05:00
Irwan Djajadi
3e5bb67537 alloc failure fix 2016-04-18 15:51:32 -05:00
John Zhuge
cf6652f9b9 lz4cli: print library version 2016-04-01 07:07:25 -07:00
Julius Werner
dc868cd5b1 Allow for safe in-place decoding
Add a check to allow safe "in-place" decoding (meaning that the
beginning of the source buffer partially overlaps the end of the
destination buffer). This is usually possible as long as the output
stops at least 15 bytes before the end of the input buffer (7 to account
for the extra spill from LZ4_wildCopy, 4 for a possible block checksum,
and 4 for the terminating block header), but in some pathological edge
cases it could be possible for the output stream to overwrite a byte in
the input stream before it gets decoded. With this patch the decoder
will reliably detect those cases and return a decoding error.

Signed-off-by: Julius Werner <jwerner@chromium.org>
2016-02-12 22:52:51 -08:00