Commit Graph

120 Commits

Author SHA1 Message Date
yann.collet.73@gmail.com
cbfd031d30 Added : LZ4 Streaming Format specification (v1.3)
Added : LZ4c command-line utility, supporting the new streaming format
Added : xxhash library
Removed : lz4demo is now replaced by lz4.c
Removed : a few level 4 warnings (issue 64)
Updated : makefiles

git-svn-id: https://lz4.googlecode.com/svn/trunk@92 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-04-13 09:31:22 +00:00
yann.collet.73@gmail.com
647baabcef Updated : cmake/CMakeLists.txt, by Nobuhiro Iwamatsu
Updated : cmake/pack/CMakeLists.txt, by Dmitry Cherepanov
lz4demo : CLI accept aggregated commands
lz4demo : detect overwrite output
lz4demo : new commands options (-hc, -y)

git-svn-id: https://lz4.googlecode.com/svn/trunk@91 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-03-30 21:11:40 +00:00
yann.collet.73@gmail.com
633c51904e - New cmake file, by Nobuhiro Iwamatsu, which can also produce shared and static libraries.
- Improved decoding speed, even more for 64-bits, and "safe" version
- Slight speed increase for LZ4-HC
- Pushed a useless parameter down the list in lz4.c

git-svn-id: https://lz4.googlecode.com/svn/trunk@90 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-03-02 23:34:21 +00:00
yann.collet.73@gmail.com
26b82f35d8 Improved endianess detection
git-svn-id: https://lz4.googlecode.com/svn/trunk@86 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-12-21 16:49:17 +00:00
yann.collet.73@gmail.com
024f83c1e5 Improved decoding speed, thanks to several contributions from Ludvig Strigeus (issues 49, 50 & 54)
Removed unnecessary assignment within LZ4_uncompress_unknownSize() (reported by Shivram)

git-svn-id: https://lz4.googlecode.com/svn/trunk@85 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-12-11 01:38:32 +00:00
yann.collet.73@gmail.com
ffb27d4eca LZ4 HC : extended detection window. Thanks to Adrien Grand.
Fuzzer : more tests cases
lz4demo : detect write errors. Thanks to Dima Tisnek
bench.c : compatibility with Solaris 64. Thanks to Thorbjørn Willoch
LZ4_compressBound() : now both in inline function and macro format. Thanks to Jacob Gorm Hansen

git-svn-id: https://lz4.googlecode.com/svn/trunk@84 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-11-30 13:23:36 +00:00
yann.collet.73@gmail.com
43a03b41b2 Corrected a bug into LZ4_uncompress_unknownOutputSize() introduced in r82
git-svn-id: https://lz4.googlecode.com/svn/trunk@83 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-11-05 16:55:52 +00:00
yann.collet.73@gmail.com
5cc3efc2a5 Corrected issue 38 : bench.c compilation for Sun Solaris 32 bits
Corrected issue 40 : Detect early ending of compressed stream. Thanks Adrian Grand.
Corrected issue 41 : minor comment editing on lz4.h

git-svn-id: https://lz4.googlecode.com/svn/trunk@82 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-11-03 21:04:19 +00:00
yann.collet.73@gmail.com
7185dc04a6 Corrected Issue 34 (restrict)
minor macro renaming (fuzzer.c)

git-svn-id: https://lz4.googlecode.com/svn/trunk@80 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-10-26 12:35:31 +00:00
yann.collet.73@gmail.com
b1e707f772 - Corrected issue 31 : LZ4 correctly accepts compressing data when the output buffer has exactly the required size (it was a bit over-cautious in previous version).
- Added : a fuzzer tool
Thanks to Andrew Mahone, for contribution on both points


git-svn-id: https://lz4.googlecode.com/svn/trunk@79 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-10-24 12:59:19 +00:00
yann.collet.73@gmail.com
66be4025df Correct issue 36 on LZ4_uncompress_unknownOutputSize(). Thanks to Clayton Stangeland and Maciej Adamczyk for notifying.
Converted tabs to space

git-svn-id: https://lz4.googlecode.com/svn/trunk@78 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-10-16 21:50:15 +00:00
yann.collet.73@gmail.com
9577c977a9 Correction : LZ4_compress_limitedOutput() write too far error
git-svn-id: https://lz4.googlecode.com/svn/trunk@77 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-08-22 15:59:39 +00:00
yann.collet.73@gmail.com
6078c33f8c Fixed Visual 2005 issues (warning/linking)
git-svn-id: https://lz4.googlecode.com/svn/trunk@75 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-08-13 07:30:58 +00:00
yann.collet.73@gmail.com
4e11dc62ba LZ4.c : changed inline to "static inline" to comply with limitations from GCC/LLVM combination under OS-X.
git-svn-id: https://lz4.googlecode.com/svn/trunk@74 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-08-08 13:02:45 +00:00
yann.collet.73@gmail.com
19a078b132 Improved speed under Visual
git-svn-id: https://lz4.googlecode.com/svn/trunk@73 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-08-03 14:33:12 +00:00
yann.collet.73@gmail.com
89921dd39e Fixed : small compression speed hit on GCC v4.5 introduced by r71
git-svn-id: https://lz4.googlecode.com/svn/trunk@72 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-08-01 23:51:55 +00:00
yann.collet.73@gmail.com
84004b9015 Added : function LZ4_compress_limitedOutput()
Removed : functions with explicit *ctx management (LZ4_compressCtx & LZ4_compress64kCtx). Functions are still present in the .c
Changed : LZ4_compressBound() now a macro

git-svn-id: https://lz4.googlecode.com/svn/trunk@71 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-07-28 13:32:30 +00:00
yann.collet.73@gmail.com
cfbace25d7 lz4.c : changed a tuning parameter name to MEMORY_USAGE, to better reflect its impact
Makefile : default produces native binary, all produce native & 32-bits binaries


git-svn-id: https://lz4.googlecode.com/svn/trunk@70 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-07-24 17:12:23 +00:00
yann.collet.73@gmail.com
8dfb9d6159 Added : LZ4 HC : Now integrated into main trunk.
LZ4_HC license moved to BSD

git-svn-id: https://lz4.googlecode.com/svn/trunk@66 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-05-13 17:59:10 +00:00
yann.collet.73@gmail.com
d8184bf7ef minor : Force Software-bit-count for WinCE environment under Visual. Thanks Bayang for Reporting.
git-svn-id: https://lz4.googlecode.com/svn/trunk@64 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-05-09 23:49:41 +00:00
yann.collet.73@gmail.com
ae9eead4ae Corrected : linking stage of Visual 2005 in Debug mode (issue 16)
Minor changes in comments

git-svn-id: https://lz4.googlecode.com/svn/trunk@63 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-05-07 23:10:02 +00:00
yann.collet.73@gmail.com
6cedd1f252 Added : cmake configuration file, from Dmitry Cherepanov
git-svn-id: https://lz4.googlecode.com/svn/trunk@62 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-04-08 15:18:12 +00:00
yann.collet.73@gmail.com
ee1c281947 Corrected : minor : changed a macro name to avoid duplicate within NetBSD. Thanks Gray for reporting (Issue 15)
git-svn-id: https://lz4.googlecode.com/svn/trunk@61 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-04-03 19:34:15 +00:00
yann.collet.73@gmail.com
fd281f8e5d Added : lz4demo : software swap32 backend for compilers which do not support hardware ones. Thanks Dmitry Cherepanov for contribution
git-svn-id: https://lz4.googlecode.com/svn/trunk@60 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-03-16 19:50:58 +00:00
yann.collet.73@gmail.com
ad59ba1cfa minor code refactoring, mostly around __builtin_expect
git-svn-id: https://lz4.googlecode.com/svn/trunk@59 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-03-09 21:46:59 +00:00
yann.collet.73@gmail.com
89767cc280 Small speed improvement (compression & decompression), Thanks Maciej Adamczyk for suggestion
Fixed : LZ4_uncompress_unknownOutputSize(), now protected against a malicious attack type, where a crafted input deliberately attempts to make it read outside of input buffer. Thanks Steinar H. Gunderson for report.

git-svn-id: https://lz4.googlecode.com/svn/trunk@58 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-03-01 15:19:08 +00:00
yann.collet.73@gmail.com
3430ee1bc0 Added : format description file
Added : new tuning parameter : LZ4_COMPRESSMIN. Thanks to Maciej Adamczyk for suggestion.
changed : macro for bswap16, in order to help GCC intrinsic detection. Thank to Erik Andersen for suggestion.

git-svn-id: https://lz4.googlecode.com/svn/trunk@57 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-02-25 19:13:16 +00:00
yann.collet.73@gmail.com
ecbce64ac9 Corrected : default to Software Bit Count for GCC earlier than 3.4. Thanks to Gray.
Corrected : ARM compilation under Visual Studio : now generates cautious code, like GCC, to ensure compatibility with strict-align CPUs. Thanks to Joe WoodBury.
Minor : bench.c : Hash verification changed to MurmurHash3A
Minor : bench.c : selectable block size

git-svn-id: https://lz4.googlecode.com/svn/trunk@56 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-02-20 20:53:49 +00:00
yann.collet.73@gmail.com
4045a42bb1 Added : LZ4_compressBound() function
corrected : bench.c now correctly detects file size on a wider ranger of compilers; thanks to Erik Andersen
minor : removed warnings on undefined (-Wundef on gcc), thanks David Sterba for suggestion


git-svn-id: https://lz4.googlecode.com/svn/trunk@55 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-02-16 18:39:50 +00:00
yann.collet.73@gmail.com
7b6ba0421d Minor comments refactoring, for better clarity
git-svn-id: https://lz4.googlecode.com/svn/trunk@54 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-02-06 21:21:48 +00:00
yann.collet.73@gmail.com
9485884eb9 minor interface modification : source pointers are now (const char*)
git-svn-id: https://lz4.googlecode.com/svn/trunk@53 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-02-01 20:16:10 +00:00
yann.collet.73@gmail.com
2327aa404e Better detection of Big-Endian and PowerPC CPU
LZ4Demo : correction : produces compatible streams on both big-endian and little-endian systems

git-svn-id: https://lz4.googlecode.com/svn/trunk@52 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-02-01 04:19:38 +00:00
yann.collet.73@gmail.com
572cab747f Corrected a bug in the decoder in 64-bit mode
git-svn-id: https://lz4.googlecode.com/svn/trunk@51 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-01-16 22:26:03 +00:00
yann.collet.73@gmail.com
93577f8ce6 Improved compression speed for 64-bit CPUs
git-svn-id: https://lz4.googlecode.com/svn/trunk@50 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-01-14 17:17:12 +00:00
yann.collet.73@gmail.com
868c459f23 Improved compression speed for 64-bit CPU
git-svn-id: https://lz4.googlecode.com/svn/trunk@49 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-01-13 19:44:18 +00:00
yann.collet.73@gmail.com
99b3294fc2 Improved compression speed for big-endian CPU
git-svn-id: https://lz4.googlecode.com/svn/trunk@48 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-01-10 20:03:01 +00:00
yann.collet.73@gmail.com
4fa4221c6e Decompression speed improved in 64-bit mode
Decoding functions are now also immune to out-of-buffer read errors (note : they were already protected against malicious out-of-buffer write attacks)

git-svn-id: https://lz4.googlecode.com/svn/trunk@47 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-01-09 23:21:05 +00:00
yann.collet.73@gmail.com
aac2572351 Improved compression and decompression speed on 64-bits CPU
git-svn-id: https://lz4.googlecode.com/svn/trunk@45 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-01-07 20:26:15 +00:00
yann.collet.73@gmail.com
f20be40d3e Improved compression speed. Thanks to David Sterba for suggestion.
Compression ratio improvements in "small packet" mode (<64KB).

git-svn-id: https://lz4.googlecode.com/svn/trunk@44 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-01-04 13:08:10 +00:00
yann.collet.73@gmail.com
8ee579983a Endianess correction
git-svn-id: https://lz4.googlecode.com/svn/trunk@43 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-12-16 23:41:46 +00:00
yann.collet.73@gmail.com
39630716d7 Endianess correction
git-svn-id: https://lz4.googlecode.com/svn/trunk@42 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-12-09 13:59:59 +00:00
yann.collet.73@gmail.com
bf12ca9a1e Slightly improved compression speed
git-svn-id: https://lz4.googlecode.com/svn/trunk@41 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-11-21 23:56:21 +00:00
yann.collet.73@gmail.com
70ba2c463f Better compliance with C99 and non-C99 compilators
git-svn-id: https://lz4.googlecode.com/svn/trunk@40 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-11-19 21:38:27 +00:00
yann.collet.73@gmail.com
62c39e2445 Modified makefile to specify C99 support to compiler (GCC)
Slightly improved compression speed in small packet mode

git-svn-id: https://lz4.googlecode.com/svn/trunk@39 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-11-17 23:07:28 +00:00
yann.collet.73@gmail.com
439f270a4e Slightly improved decoding speed under GCC compilation
git-svn-id: https://lz4.googlecode.com/svn/trunk@38 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-11-15 22:06:33 +00:00
yann.collet.73@gmail.com
667f8ea1c8 Corrected a bug in LZ4_uncompress_unknownOutputSize(), which reported incorrect decodedSize when maxOutputSize=decodedSize. Thanks to Clayton Stangeland for report and solution.
git-svn-id: https://lz4.googlecode.com/svn/trunk@37 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-10-26 20:15:33 +00:00
yann.collet.73@gmail.com
5f0ef5bb63 code refactoring
git-svn-id: https://lz4.googlecode.com/svn/trunk@36 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-10-06 11:24:04 +00:00
yann.collet.73@gmail.com
da9037238c - Improved compression ratio
- Added special mode for small packet (<=64KB) which improves both compression and speed : LZ4_compress64kCtx()

git-svn-id: https://lz4.googlecode.com/svn/trunk@35 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-09-29 20:28:37 +00:00
yann.collet.73@gmail.com
ea53527d10 New : ARM Validated code, thanks to Vlad Grachov.
LZ4Demo : compress/decompress output time

git-svn-id: https://lz4.googlecode.com/svn/trunk@33 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-09-27 11:59:58 +00:00
yann.collet.73@gmail.com
7a40bd983f Modified a few comments
git-svn-id: https://lz4.googlecode.com/svn/trunk@32 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-09-26 21:15:24 +00:00
yann.collet.73@gmail.com
d899a39185 updated LZ4_uncompress_unknownOutputSize()
git-svn-id: https://lz4.googlecode.com/svn/trunk@31 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-09-26 21:04:03 +00:00
yann.collet.73@gmail.com
420248cff4 CLI : added test mode
CLI : corrected writing to NULL within Linux
Minor : several comments were updated

git-svn-id: https://lz4.googlecode.com/svn/trunk@29 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-09-25 21:34:35 +00:00
yann.collet.73@gmail.com
dab6b9d3dc CLI : Added : capability to compress/decompress to NULL (useful for testings)
Corrected small bug into LZ4_uncompress(). Update is recommended.

git-svn-id: https://lz4.googlecode.com/svn/trunk@28 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-09-25 20:11:05 +00:00
yann.collet.73@gmail.com
e1ae3a0b95 Small compression speed improvement
Decoding speed improvement

git-svn-id: https://lz4.googlecode.com/svn/trunk@27 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-09-23 22:27:08 +00:00
yann.collet.73@gmail.com
3071281340 Corrected issue 3 in compression function. Update is recommended.
git-svn-id: https://lz4.googlecode.com/svn/trunk@26 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-09-22 13:11:17 +00:00
yann.collet.73@gmail.com
90bd4616ca minor code refactoring
removed harmless warning under gcc for linux

git-svn-id: https://lz4.googlecode.com/svn/trunk@25 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-09-21 11:45:00 +00:00
yann.collet.73@gmail.com
d9bf974023 Small compression speed improvement
git-svn-id: https://lz4.googlecode.com/svn/trunk@24 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-09-20 10:01:23 +00:00
yann.collet.73@gmail.com
babbc0f494 removed an harmless warning under gcc for linux
git-svn-id: https://lz4.googlecode.com/svn/trunk@23 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-09-18 10:50:12 +00:00
yann.collet.73@gmail.com
e8d1e99112 small compression speed improvement
git-svn-id: https://lz4.googlecode.com/svn/trunk@22 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-09-15 21:37:09 +00:00
yann.collet.73@gmail.com
d5a574c351 Corrected : a bug in compression function which could make it read beyond input buffer in some circumstances (issue 2).
Many thanks for the detailed bug report.


git-svn-id: https://lz4.googlecode.com/svn/trunk@20 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-09-15 19:14:57 +00:00
yann.collet.73@gmail.com
15d69c39eb small compression speed improvement
git-svn-id: https://lz4.googlecode.com/svn/trunk@19 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-09-13 22:55:49 +00:00
yann.collet.73@gmail.com
86a59c7a82 small compression speed improvement
git-svn-id: https://lz4.googlecode.com/svn/trunk@18 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-09-13 18:19:42 +00:00
yann.collet.73@gmail.com
32f4bab6fc Small compression speed improvement
git-svn-id: https://lz4.googlecode.com/svn/trunk@16 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-09-13 12:01:11 +00:00
yann.collet.73@gmail.com
558c03a1af Corrected a (rare) bug in compression function
git-svn-id: https://lz4.googlecode.com/svn/trunk@14 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-09-03 12:43:13 +00:00
yann.collet.73@gmail.com
3a6d9640fb LZ4Demo now supports Pipe mode (inspired by Huan Truong mod)
git-svn-id: https://lz4.googlecode.com/svn/trunk@13 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-08-30 22:35:09 +00:00
yann.collet.73@gmail.com
8860e61b4f Removed LZ4_decode() function code.
If you need to provide "isize" instead of "osize" to the decoder, please use LZ4_uncompress_unknownOutputSize(), which is safer.

git-svn-id: https://lz4.googlecode.com/svn/trunk@12 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-08-21 11:42:08 +00:00
yann.collet.73@gmail.com
a201020317 Improved compression and decompression speed under GCC compiler
git-svn-id: https://lz4.googlecode.com/svn/trunk@11 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-06-07 17:57:25 +00:00
yann.collet.73@gmail.com
075bf1349b Greatly improved compression and decompression speed, at the expense of some compression ratio.
Most of the change is due to a modification in the performance parameter (HASH_LOG) now set to 12, to match Intel L1 cache processors.
You can change it back to 17 to get back previous compression ratio.
AMD users are invited to try HASH_LOG = 13, since AMD L1 cache is twice larger.

git-svn-id: https://lz4.googlecode.com/svn/trunk@10 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-06-05 21:23:42 +00:00
yann.collet.73@gmail.com
6b798d5e40 New function : LZ4_uncompress : secure version which is safe against buffer overflow attacks
New function : LZ4_uncompress_unknownOutputSize : secure but slower version which also guess the size of data to be decoded
The demo file compression program (main.c) is updated to use these new functions
LZ4_decode is still supported but in deprecated status, due to its vulnerability to malicious buffer overflow scenario


git-svn-id: https://lz4.googlecode.com/svn/trunk@9 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-06-04 17:15:43 +00:00
yann.collet.73@gmail.com
ca8d6c21e5 Improved : safe type, for linux x64 (amd64) compatibility (Thanks to Erik Andersen)
Checked : OS X compatibility (Thanks Abhinav)
Corrected : Explicit unsigned constant for non C90-compliant C compilers (Thanks to Erik Andersen)
Changed : lowercase filename for case-sensitive file systems (like linux) (Thanks Abhinav & Erik)
Added : Makefile, for gcc (Thanks Abhinav & Erik)

git-svn-id: https://lz4.googlecode.com/svn/trunk@7 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2011-05-25 22:25:57 +00:00