Commit Graph

108 Commits

Author SHA1 Message Date
Yann Collet
8ee9e6d04e Improved decompression speed 2014-06-12 23:29:06 +01:00
Yann Collet
0c62103105 restored LZ4 HC streaming mode 2014-06-11 21:40:16 +01:00
Yann Collet
3b92842904 improved compression ratio for long streams in 32 bits mode 2014-06-10 21:45:25 +01:00
Yann Collet
661e4ddb78 lz4io : reduced memory usage in streaming mode 2014-06-10 06:10:08 +01:00
Yann Collet
f0e6bf45ca Improved compression speed in 64KB block mode 2014-06-09 18:08:23 +01:00
Yann Collet
135f11b54e Obsolete "external allocation" functions
(convergence towards LZ4_compress_continue() )
2014-06-09 16:46:03 +01:00
Yann Collet
426e7437e1 removed old stream structure 2014-06-09 02:49:20 +01:00
Yann Collet
598bde9a69 converge towards LZ4_compress_continue() 2014-06-09 02:42:39 +01:00
Yann Collet
a79180f51d New : valgrind memtest 2014-06-09 01:01:04 +01:00
Yann Collet
c4f5b9de2a Fixed (continued) : address space overflow in 32-bits mode 2014-06-05 01:59:19 +01:00
Yann Collet
140e6e72dd Corrected : address space overflow in 32-bits mode 2014-06-04 22:34:48 +01:00
Yann Collet
ec717699c7 restored continuous streaming mode 2014-06-02 08:13:16 +01:00
Yann Collet
b636779b0e unified structure model 2014-06-02 07:07:19 +01:00
Yann Collet
302e7e2f2b coalesced streaming compression code
+ speed optimization
2014-05-27 02:41:29 +01:00
Yann Collet
971f612122 speed optimization 2014-05-23 21:01:55 +01:00
Yann Collet
4b43c2bd98 Continuous streaming mode (automatic) 2014-05-21 19:46:36 +01:00
Yann Collet
8c38ddd7e6 Introduce : LZ4_compress_limitedOutput_usingDict() 2014-05-20 23:26:03 +01:00
Yann Collet
7f92b09174 Fixed : compilation errors using Visual 2012 2014-05-20 01:53:48 +01:00
Yann Collet
4db6b03fce First version of Block Streaming API : LZ4_compress_usingDict() 2014-05-20 00:40:29 +01:00
Yann Collet
7bcb3b2e9f changed naming convention to *_usingDict() 2014-05-04 13:26:05 +01:00
Yann Collet
03b9c5fcae Introduce "External Dictionary" de/compression API 2014-04-28 21:45:35 +01:00
yann.collet.73@gmail.com
a9d8640c1f Makefile : library correctly compiled with -O3 switch (issue 114)
Makefile : library compilation compatible with clang
Makefile : library is versioned and linked (issue 119)
lz4.h : no more static inline prototypes (issue 116)
man : improved header/footer (issue 111)
Makefile : Use system default $(CC) & $(MAKE) variables (issue 112)
xxhash : updated to r34

git-svn-id: https://lz4.googlecode.com/svn/trunk@114 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2014-03-12 14:51:59 +00:00
yann.collet.73@gmail.com
69dc85b8ab Large decompression speed improvement for GCC 32-bits. Thanks to Valery Croizier !
LZ4HC : Compression Level is now a programmable parameter (CLI from 4 to 9)
Separated IO routines from command line (lz4io.c)
Version number into lz4.h (suggested by Francesc Alted)


git-svn-id: https://lz4.googlecode.com/svn/trunk@113 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2014-02-04 14:11:10 +00:00
yann.collet.73@gmail.com
fb38ddaacb lz4 & lz4hc : added capability to allocate state & stream state with custom allocator (issue 99)
fuzzer & fullbench : updated to test new functions
man : documented -l command (Legacy format, for Linux kernel compression) (issue 102)
cmake : improved version by Mika Attila, building programs and libraries (issue 100)
xxHash : updated to r33
Makefile : clean also delete local package .tar.gz


git-svn-id: https://lz4.googlecode.com/svn/trunk@110 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-12-30 17:16:52 +00:00
yann.collet.73@gmail.com
8ac549f10a lz4.c : corrected issue 98 within LZ4_compress_limitedOutput()
Makefile : can specify version number

git-svn-id: https://lz4.googlecode.com/svn/trunk@109 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-12-03 15:50:46 +00:00
yann.collet.73@gmail.com
7a863abfc2 lz4.c : corrected compression efficiency issue 97 in 64-bits chained mode (-BD) for streams > 4 GB (thanks Roman Strashkin for reporting)
git-svn-id: https://lz4.googlecode.com/svn/trunk@108 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-11-02 12:11:04 +00:00
yann.collet.73@gmail.com
a78db582d3 Makefile : support DESTDIR for staged installs. Thanks Jorge Aparicio.
Makefile : make install installs both lz4 and lz4c (Jorge Aparicio)
Makefile : removed -Wno-implicit-declaration compilation switch
lz4cli.c : include <stduni.h> for isatty() (Luca Barbato)
lz4.h : introduced LZ4_MAX_INPUT_SIZE constant (Shay Green)
lz4.h : LZ4_compressBound() : unified macro and inline definitions (Shay Green)
lz4.h : LZ4_decompressSafe_partial() : clarify comments (Shay Green)
lz4.c : LZ4_compress() verify input size condition (Shay Green)
bench.c : corrected a bug in free memory size evaluation
cmake : install into bin/ directory (Richard Yao)
cmake : check for just C compiler (Elan Ruusamae)


git-svn-id: https://lz4.googlecode.com/svn/trunk@107 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-10-21 08:03:40 +00:00
yann.collet.73@gmail.com
c63f81c105 Makefile : New install script and man page, contributed by Prasad Pandit
lz4cli.c : Minor modifications, for easier extensibility
COPYING : added license file
LZ4_Streaming_Format.odt : modified file name to remove white space characters
exe : .exe suffix now properly added only for Windows target

git-svn-id: https://lz4.googlecode.com/svn/trunk@105 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-09-25 09:00:37 +00:00
yann.collet.73@gmail.com
3e65c1e0c6 New command line utility, lz4 (notice the missing final 'c'), with gzip-style arguments (issue 83)
lz4c still there, supports additional gzip arguments, but also keep compatibility with legacy commands
lz4 (& lz4c) display version number
Fix : Sun Studio : compatible #pragma directive (issue 81)
Fix : compatible with Objective-C (iOS) (issue 79)
Fix : minor warnings using Visual Studio x64 (issue 80)
Changed : source file lz4c.c renamed lz4cli.c

git-svn-id: https://lz4.googlecode.com/svn/trunk@103 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-09-09 09:06:21 +00:00
yann.collet.73@gmail.com
02c5579ff0 LZ4 compression supports block dependency (argument -BD within lz4c command line)
fullbench : added bench of LZ4_compress_continue(), LZ4_compress_limitedOutput_continue(), LZ4_compressHC_continue() and LZ4_compressHC_limitedOutput_continue()


git-svn-id: https://lz4.googlecode.com/svn/trunk@102 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-08-16 10:46:08 +00:00
yann.collet.73@gmail.com
27efcd4d45 Removed dependency to "lz4_encoder.h" and "lz4hc_encoder.h"
Improved speed of LZ4_decompress_fast() with GCC
Improved speed of LZ4_decompress_safe() for 32-bits
Made the fast LZ4 compression compatible with low-memory systems (buffer address < 64K). Thanks Francois Gretief for report and suggestion.
Makefile : added fuzzer32
Makefile : added fullbench32
fullbench : added ability to select one specific function to benchmark
lz4.c : copy macros follow memcpy() arguments convention
Small coding style modifications, hinted by cppCheck. 

git-svn-id: https://lz4.googlecode.com/svn/trunk@101 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
2013-08-12 08:35:52 +00:00
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
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