Commit Graph

51 Commits

Author SHA1 Message Date
Yann Collet
da5373197e Fixed : issue 52 (reported by Ludwig Strigeus) 2014-06-22 11:25:04 +01:00
Yann Collet
6e1179a1e3 bugfix : streaming tiny messages from within very small ringbuffer (Takayuki's streaming example 2) 2014-06-19 22:54:16 +01:00
Yann Collet
d517d609d9 Fixed : streaming compression using small (<64KB) dictionary buffers 2014-06-17 21:41:59 +01:00
Yann Collet
2f0a717a35 LZ4 Streaming : check overlapping input/dictionary 2014-06-14 16:56:24 +01:00
Yann Collet
135f11b54e Obsolete "external allocation" functions
(convergence towards LZ4_compress_continue() )
2014-06-09 16:46:03 +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
b636779b0e unified structure model 2014-06-02 07:07:19 +01:00
Yann Collet
8c38ddd7e6 Introduce : LZ4_compress_limitedOutput_usingDict() 2014-05-20 23:26:03 +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
200d87c684 Added : *_withDict to fullbench 2014-05-03 19:56:08 +01:00
Yann Collet
03b9c5fcae Introduce "External Dictionary" de/compression API 2014-04-28 21:45:35 +01:00
Yann Collet
374d6ac35c Fixed issue 127 & 128 2014-04-15 15:03:17 +02: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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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