Commit Graph

99 Commits

Author SHA1 Message Date
yann.collet.73@gmail.com
13e966d968 lz4c : made display and arguments more compatible with gzip, for easier integration with tar (patch by Yaakov Selkowitz)
Correction : large files support on 32-bits unix (reported by Karthik Rajeswaran)
lz4c : reduce the amount of displayed information in default mode; introduce a verbose mode
lz4c : changed help message
Updated xxHash to r31
Made bench.c compatible with tcc
Corrected : a few minor warnings found by CppCheck, as suggested by Brian White
lz4.c : Pushed BIG_ENDIAN_NATIVE_BUT_INCOMPATIBLE farther in the code, since it is reported as providing little benefit
Corrected : minor 64K input condition, detected by Mat Hostetter

git-svn-id: https://lz4.googlecode.com/svn/trunk@99 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-07-27 11:19:31 +00:00
yann.collet.73@gmail.com
002a93473d Corrected issue 70, 'pack' instruction on IBM AIX
Added : fullbench : can select compression tests or decompression tests
Removed extern inline, for compatibility with GNU89, as reported by Maciej Adamczyk
lz4.c : made forceinline more explicit
Decompression : corrected corner case behaviors (inputSize == 0 and outputSize == 0), thanks Adrien for detailed suggestions
Makefile : Removed -march=native parameter, due to incompatibility with some GCC versions 

git-svn-id: https://lz4.googlecode.com/svn/trunk@98 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-07-01 07:50:40 +00:00
yann.collet.73@gmail.com
16c0942822 lz4.c no longer depends on lz4_decoder.h (removed)
Decompression speed improved under GCC
Improved speed of LZ4_decompress_safe_partial()
Added new utility : fullbench 
Modified x64 detection macro, as suggested by David Karner
Improved Fuzzer tool
Updated xxHash to r30

git-svn-id: https://lz4.googlecode.com/svn/trunk@97 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-06-10 17:29:13 +00:00
yann.collet.73@gmail.com
cd3bcd0043 New experimental mode : compress blocks using data from previous blocks (option -BD) (limitation : -hc mode only)
Changed deprecated function names to "static", in order to avoid duplicate definition. Thanks Maciej Adamczyk for reporting.
Changed a few command line options
Prettify help text


git-svn-id: https://lz4.googlecode.com/svn/trunk@96 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-05-27 13:37:48 +00:00
yann.collet.73@gmail.com
e185b252f0 lz4c : automatic output name when decoding a *.lz4 file, as requested by Peter Humphreys
Cleaner C99 detection, thanks to Elad
Modified Basic Types, as recommended by Wayne Scott
Simplified compression function
Corrected : warning on missing #undef in lz4hc, thanks Arseny Kapoulkine
Modified length loops as suggested by Wouter Vermaelen
Modified pragma pack directive for older versions of GCC, as reported by Peter Costello
Updated xxHash to r29
Indent lz4hc.c with spaces 

git-svn-id: https://lz4.googlecode.com/svn/trunk@95 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-05-17 18:41:32 +00:00
yann.collet.73@gmail.com
40ae7043df - New naming : LZ4_decompress_safe() and LZ4_decompress_fast()
- New function : LZ4_decompress_safe_partial(), to decompress just enough data within a compressed block, saving CPU cycles
- New source files : lz4_decoder.h, lz4_encoder.h, lz4hc_encoder.h
- Improved speed of LZ4_decompress_fast()
- Improved speed for compression of small blocks < 64KB
- Improved speed for HC compression

git-svn-id: https://lz4.googlecode.com/svn/trunk@94 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-04-26 14:37:46 +00:00
yann.collet.73@gmail.com
a2e93db805 Added : function LZ4_compressHC_limitedOutput()
Updated : LZ4 Streaming Format.odt, to version 1.4
New : LZ4c now supports Stream Checksum (default) and Skippable chunks
Updated : Fuzzer, testing LZ4_compressHC_limitedOutput()

git-svn-id: https://lz4.googlecode.com/svn/trunk@93 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-04-18 08:53:13 +00:00
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
e898c9a79a Corrected issue 59 in lz4hc.c, reported by Masafumi Kiribayashi
Corrected issue 60 in lz4.h, reported by Takayuki Matsuoka
Added : a cmake/pack installer, by Dmitry Cherepanov

git-svn-id: https://lz4.googlecode.com/svn/trunk@89 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-02-19 20:52:50 +00:00
yann.collet.73@gmail.com
c1d7e4f675 LZ4HC : compression speed improved under Visual
Bench mode : option to pause at the end

git-svn-id: https://lz4.googlecode.com/svn/trunk@88 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-01-08 07:23:07 +00:00
yann.collet.73@gmail.com
77417fc4c2 LZ4_HC is now compatible with CPU requiring aligned memory accesses
git-svn-id: https://lz4.googlecode.com/svn/trunk@87 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-12-22 17:56:05 +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
206f5f48cf Corrected issue 39 : bench.c for NetBSD. Thanks to Thomas Klausner.
git-svn-id: https://lz4.googlecode.com/svn/trunk@81 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-10-27 18:26:58 +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
f4e48fe61d changed some macro names in lz4hc to avoid duplicate definition on NetBSD
git-svn-id: https://lz4.googlecode.com/svn/trunk@76 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-08-14 16:27:47 +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
d9ef5117f6 Changed Makefile default setting to generate only native binary.
The 32-bits version can still be generated (on 64-bits systems) using :
make lz4demo32


git-svn-id: https://lz4.googlecode.com/svn/trunk@69 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-07-18 19:46:57 +00:00
yann.collet.73@gmail.com
b33dcade4e git-svn-id: https://lz4.googlecode.com/svn/trunk@68 650e7d94-2a16-8b24-b05c-7c0b3f6821cd 2012-06-16 00:04:09 +00:00
yann.collet.73@gmail.com
ebc041cb51 Update CMake file to handle lz4hc. Thanks to Mark Wotton for notification and correction
git-svn-id: https://lz4.googlecode.com/svn/trunk@67 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-06-08 09:36:33 +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
3bc3a6afc3 Added : LZ4Demo : can handle appended compressed streams.
git-svn-id: https://lz4.googlecode.com/svn/trunk@65 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2012-05-12 19:14:43 +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