1v1.9.3 2perf: highly improved speed in kernel space, by @terrelln 3perf: faster speed with Visual Studio, thanks to @wolfpld and @remittor 4perf: improved dictionary compression speed, by @felixhandte 5perf: fixed LZ4_compress_HC_destSize() ratio, detected by @hsiangkao 6perf: reduced stack usage in high compression mode, by @Yanpas 7api : LZ4_decompress_safe_partial() supports unknown compressed size, requested by @jfkthame 8api : improved LZ4F_compressBound() with automatic flushing, by Christopher Harvie 9api : can (de)compress to/from NULL without UBs 10api : fix alignment test on 32-bit systems (state initialization) 11api : fix LZ4_saveDictHC() in corner case scenario, detected by @IgorKorkin 12cli : `-l` legacy format is now compatible with `-m` multiple files, by Filipe Calasans 13cli : benchmark mode supports dictionary, by @rkoradi 14cli : fix --fast with large argument, detected by @picoHz 15build: link to user-defined memory functions with LZ4_USER_MEMORY_FUNCTIONS, suggested by Yuriy Levchenko 16build: contrib/cmake_unofficial/ moved to build/cmake/ 17build: visual/* moved to build/ 18build: updated meson script, by @neheb 19build: tinycc support, by Anton Kochkov 20install: Haiku support, by Jerome Duval 21doc : updated LZ4 frame format, clarify EndMark 22 23v1.9.2 24fix : out-of-bound read in exceptional circumstances when using decompress_partial(), by @terrelln 25fix : slim opportunity for out-of-bound write with compress_fast() with a large enough input and when providing an output smaller than recommended (< LZ4_compressBound(inputSize)), by @terrelln 26fix : rare data corruption bug with LZ4_compress_destSize(), by @terrelln 27fix : data corruption bug when Streaming with an Attached Dict in HC Mode, by @felixhandte 28perf: enable LZ4_FAST_DEC_LOOP on aarch64/GCC by default, by @prekageo 29perf: improved lz4frame streaming API speed, by @dreambottle 30perf: speed up lz4hc on slow patterns when using external dictionary, by @terrelln 31api: better in-place decompression and compression support 32cli : --list supports multi-frames files, by @gstedman 33cli: --version outputs to stdout 34cli : add option --best as an alias of -12 , by @Low-power 35misc: Integration into oss-fuzz by @cmeister2, expanded list of scenarios by @terrelln 36 37v1.9.1 38fix : decompression functions were reading a few bytes beyond input size (introduced in v1.9.0, reported by @ppodolsky and @danlark1) 39api : fix : lz4frame initializers compatibility with c++, reported by @degski 40cli : added command --list, based on a patch by @gabrielstedman 41build: improved Windows build, by @JPeterMugaas 42build: AIX, by Norman Green 43 44v1.9.0 45perf: large decompression speed improvement on x86/x64 (up to +20%) by @djwatson 46api : changed : _destSize() compression variants are promoted to stable API 47api : new : LZ4_initStream(HC), replacing LZ4_resetStream(HC) 48api : changed : LZ4_resetStream(HC) as recommended reset function, for better performance on small data 49cli : support custom block sizes, by @blezsan 50build: source code can be amalgamated, by Bing Xu 51build: added meson build, by @lzutao 52build: new build macros : LZ4_DISTANCE_MAX, LZ4_FAST_DEC_LOOP 53install: MidnightBSD, by @laffer1 54install: msys2 on Windows 10, by @vtorri 55 56v1.8.3 57perf: minor decompression speed improvement (~+2%) with gcc 58fix : corruption in v1.8.2 at level 9 for files > 64KB under rare conditions (#560) 59cli : new command --fast, by @jennifermliu 60cli : fixed elapsed time, and added cpu load indicator (on -vv) (#555) 61api : LZ4_decompress_safe_partial() now decodes exactly the nb of bytes requested (feature request #566) 62build : added Haiku target, by @fbrosson, and MidnightBSD, by @laffer1 63doc : updated documentation regarding dictionary compression 64 65v1.8.2 66perf: *much* faster dictionary compression on small files, by @felixhandte 67perf: improved decompression speed and binary size, by Alexey Tourbin (@svpv) 68perf: slightly faster HC compression and decompression speed 69perf: very small compression ratio improvement 70fix : compression compatible with low memory addresses (< 0xFFFF) 71fix : decompression segfault when provided with NULL input, by @terrelln 72cli : new command --favor-decSpeed 73cli : benchmark mode more accurate for small inputs 74fullbench : can bench _destSize() variants, by @felixhandte 75doc : clarified block format parsing restrictions, by Alexey Tourbin (@svpv) 76 77v1.8.1 78perf : faster and stronger ultra modes (levels 10+) 79perf : slightly faster compression and decompression speed 80perf : fix bad degenerative case, reported by @c-morgenstern 81fix : decompression failed when using a combination of extDict + low memory address (#397), reported and fixed by Julian Scheid (@jscheid) 82cli : support for dictionary compression (`-D`), by Felix Handte @felixhandte 83cli : fix : `lz4 -d --rm` preserves timestamp (#441) 84cli : fix : do not modify /dev/null permission as root, by @aliceatlas 85api : `_destSize()` variant supported for all compression levels 86build : `make` and `make test` compatible with `-jX`, reported by @mwgamera 87build : can control LZ4LIB_VISIBILITY macro, by @mikir 88install: fix man page directory (#387), reported by Stuart Cardall (@itoffshore) 89 90v1.8.0 91cli : fix : do not modify /dev/null permissions, reported by @Maokaman1 92cli : added GNU separator -- specifying that all following arguments are files 93API : added LZ4_compress_HC_destSize(), by Oleg (@remittor) 94API : added LZ4F_resetDecompressionContext() 95API : lz4frame : negative compression levels trigger fast acceleration, request by Lawrence Chan 96API : lz4frame : can control block checksum and dictionary ID 97API : fix : expose obsolete decoding functions, reported by Chen Yufei 98API : experimental : lz4frame_static : new dictionary compression API 99build : fix : static lib installation, by Ido Rosen 100build : dragonFlyBSD, OpenBSD, NetBSD supported 101build : LZ4_MEMORY_USAGE can be modified at compile time, through external define 102doc : Updated LZ4 Frame format to v1.6.0, restoring Dictionary-ID field 103doc : lz4 api manual, by Przemyslaw Skibinski 104 105v1.7.5 106lz4hc : new high compression mode : levels 10-12 compress more and slower, by Przemyslaw Skibinski 107lz4cat : fix : works with relative path (#284) and stdin (#285) (reported by @beiDei8z) 108cli : fix minor notification when using -r recursive mode 109API : lz4frame : LZ4F_frameBound(0) gives upper bound of *flush() and *End() operations (#290, #280) 110doc : markdown version of man page, by Takayuki Matsuoka (#279) 111build : Makefile : fix make -jX lib+exe concurrency (#277) 112build : cmake : improvements by Michał Górny (#296) 113 114v1.7.4.2 115fix : Makefile : release build compatible with PIE and customized compilation directives provided through environment variables (#274, reported by Antoine Martin) 116 117v1.7.4 118Improved : much better speed in -mx32 mode 119cli : fix : Large file support in 32-bits mode on Mac OS-X 120fix : compilation on gcc 4.4 (#272), reported by Antoine Martin 121 122v1.7.3 123Changed : moved to versioning; package, cli and library have same version number 124Improved: Small decompression speed boost 125Improved: Small compression speed improvement on 64-bits systems 126Improved: Small compression ratio and speed improvement on small files 127Improved: Significant speed boost on ARMv6 and ARMv7 128Fix : better ratio on 64-bits big-endian targets 129Improved cmake build script, by Evan Nemerson 130New liblz4-dll project, by Przemyslaw Skibinki 131Makefile: Generates object files (*.o) for faster (re)compilation on low power systems 132cli : new : --rm and --help commands 133cli : new : preserved file attributes, by Przemyslaw Skibinki 134cli : fix : crash on some invalid inputs 135cli : fix : -t correctly validates lz4-compressed files, by Nick Terrell 136cli : fix : detects and reports fread() errors, thanks to Hiroshi Fujishima report #243 137cli : bench : new : -r recursive mode 138lz4cat : can cat multiple files in a single command line (#184) 139Added : doc/lz4_manual.html, by Przemyslaw Skibinski 140Added : dictionary compression and frame decompression examples, by Nick Terrell 141Added : Debianization, by Evgeniy Polyakov 142 143r131 144New : Dos/DJGPP target, thanks to Louis Santillan (#114) 145Added : Example using lz4frame library, by Zbigniew Jędrzejewski-Szmek (#118) 146Changed: xxhash symbols are modified (namespace emulation) within liblz4 147 148r130: 149Fixed : incompatibility sparse mode vs console, reported by Yongwoon Cho (#105) 150Fixed : LZ4IO exits too early when frame crc not present, reported by Yongwoon Cho (#106) 151Fixed : incompatibility sparse mode vs append mode, reported by Takayuki Matsuoka (#110) 152Performance fix : big compression speed boost for clang (+30%) 153New : cross-version test, by Takayuki Matsuoka 154 155r129: 156Added : LZ4_compress_fast(), LZ4_compress_fast_continue() 157Added : LZ4_compress_destSize() 158Changed: New lz4 and lz4hc compression API. Previous function prototypes still supported. 159Changed: Sparse file support enabled by default 160New : LZ4 CLI improved performance compressing/decompressing multiple files (#86, kind contribution from Kyle J. Harper & Takayuki Matsuoka) 161Fixed : GCC 4.9+ optimization bug - Reported by Markus Trippelsdorf, Greg Slazinski & Evan Nemerson 162Changed: Enums converted to LZ4F_ namespace convention - by Takayuki Matsuoka 163Added : AppVeyor CI environment, for Visual tests - Suggested by Takayuki Matsuoka 164Modified:Obsolete functions generate warnings - Suggested by Evan Nemerson, contributed by Takayuki Matsuoka 165Fixed : Bug #75 (unfinished stream), reported by Yongwoon Cho 166Updated: Documentation converted to MarkDown format 167 168r128: 169New : lz4cli sparse file support (Requested by Neil Wilson, and contributed by Takayuki Matsuoka) 170New : command -m, to compress multiple files in a single command (suggested by Kyle J. Harper) 171Fixed : Restored lz4hc compression ratio (slightly lower since r124) 172New : lz4 cli supports long commands (suggested by Takayuki Matsuoka) 173New : lz4frame & lz4cli frame content size support 174New : lz4frame supports skippable frames, as requested by Sergey Cherepanov 175Changed: Default "make install" directory is /usr/local, as notified by Ron Johnson 176New : lz4 cli supports "pass-through" mode, requested by Neil Wilson 177New : datagen can generate sparse files 178New : scan-build tests, thanks to kind help by Takayuki Matsuoka 179New : g++ compatibility tests 180New : arm cross-compilation test, thanks to kind help by Takayuki Matsuoka 181Fixed : Fuzzer + frametest compatibility with NetBSD (issue #48, reported by Thomas Klausner) 182Added : Visual project directory 183Updated: Man page & Specification 184 185r127: 186N/A : added a file on SVN 187 188r126: 189New : lz4frame API is now integrated into liblz4 190Fixed : GCC 4.9 bug on highest performance settings, reported by Greg Slazinski 191Fixed : bug within LZ4 HC streaming mode, reported by James Boyle 192Fixed : older compiler don't like nameless unions, reported by Cheyi Lin 193Changed : lz4 is C90 compatible 194Changed : added -pedantic option, fixed a few mminor warnings 195 196r125: 197Changed : endian and alignment code 198Changed : directory structure : new "lib" directory 199Updated : lz4io, now uses lz4frame 200Improved: slightly improved decoding speed 201Fixed : LZ4_compress_limitedOutput(); Special thanks to Christopher Speller ! 202Fixed : some alignment warnings under clang 203Fixed : deprecated function LZ4_slideInputBufferHC() 204 205r124: 206New : LZ4 HC streaming mode 207Fixed : LZ4F_compressBound() using null preferencesPtr 208Updated : xxHash to r38 209Updated library number, to 1.4.0 210 211r123: 212Added : experimental lz4frame API, thanks to Takayuki Matsuoka and Christopher Jackson for testings 213Fix : s390x support, thanks to Nobuhiro Iwamatsu 214Fix : test mode (-t) no longer requires confirmation, thanks to Thary Nguyen 215 216r122: 217Fix : AIX & AIX64 support (SamG) 218Fix : mips 64-bits support (lew van) 219Added : Examples directory, using code examples from Takayuki Matsuoka 220Updated : Framing specification, to v1.4.1 221Updated : xxHash, to r36 222 223r121: 224Added : Makefile : install for kFreeBSD and Hurd (Nobuhiro Iwamatsu) 225Fix : Makefile : install for OS-X and BSD, thanks to Takayuki Matsuoka 226 227r120: 228Modified : Streaming API, using strong types 229Added : LZ4_versionNumber(), thanks to Takayuki Matsuoka 230Fix : OS-X : library install name, thanks to Clemens Lang 231Updated : Makefile : synchronize library version number with lz4.h, thanks to Takayuki Matsuoka 232Updated : Makefile : stricter compilation flags 233Added : pkg-config, thanks to Zbigniew Jędrzejewski-Szmek (issue 135) 234Makefile : lz4-test only test native binaries, as suggested by Michał Górny (issue 136) 235Updated : xxHash to r35 236 237r119: 238Fix : Issue 134 : extended malicious address space overflow in 32-bits mode for some specific configurations 239 240r118: 241New : LZ4 Streaming API (Fast version), special thanks to Takayuki Matsuoka 242New : datagen : parametrable synthetic data generator for tests 243Improved : fuzzer, support more test cases, more parameters, ability to jump to specific test 244fix : support ppc64le platform (issue 131) 245fix : Issue 52 (malicious address space overflow in 32-bits mode when using large custom format) 246fix : Makefile : minor issue 130 : header files permissions 247 248r117: 249Added : man pages for lz4c and lz4cat 250Added : automated tests on Travis, thanks to Takayuki Matsuoka ! 251fix : block-dependency command line (issue 127) 252fix : lz4fullbench (issue 128) 253 254r116: 255hotfix (issue 124 & 125) 256 257r115: 258Added : lz4cat utility, installed on POSX systems (issue 118) 259OS-X compatible compilation of dynamic library (issue 115) 260 261r114: 262Makefile : library correctly compiled with -O3 switch (issue 114) 263Makefile : library compilation compatible with clang 264Makefile : library is versioned and linked (issue 119) 265lz4.h : no more static inline prototypes (issue 116) 266man : improved header/footer (issue 111) 267Makefile : Use system default $(CC) & $(MAKE) variables (issue 112) 268xxhash : updated to r34 269 270r113: 271Large decompression speed improvement for GCC 32-bits. Thanks to Valery Croizier ! 272LZ4HC : Compression Level is now a programmable parameter (CLI from 4 to 9) 273Separated IO routines from command line (lz4io.c) 274Version number into lz4.h (suggested by Francesc Alted) 275 276r112: 277quickfix 278 279r111 : 280Makefile : added capability to install libraries 281Modified Directory tree, to better separate libraries from programs. 282 283r110 : 284lz4 & lz4hc : added capability to allocate state & stream state with custom allocator (issue 99) 285fuzzer & fullbench : updated to test new functions 286man : documented -l command (Legacy format, for Linux kernel compression) (issue 102) 287cmake : improved version by Mika Attila, building programs and libraries (issue 100) 288xxHash : updated to r33 289Makefile : clean also delete local package .tar.gz 290 291r109 : 292lz4.c : corrected issue 98 (LZ4_compress_limitedOutput()) 293Makefile : can specify version number from makefile 294 295r108 : 296lz4.c : corrected compression efficiency issue 97 in 64-bits chained mode (-BD) for streams > 4 GB (thanks Roman Strashkin for reporting) 297 298r107 : 299Makefile : support DESTDIR for staged installs. Thanks Jorge Aparicio. 300Makefile : make install installs both lz4 and lz4c (Jorge Aparicio) 301Makefile : removed -Wno-implicit-declaration compilation switch 302lz4cli.c : include <stduni.h> for isatty() (Luca Barbato) 303lz4.h : introduced LZ4_MAX_INPUT_SIZE constant (Shay Green) 304lz4.h : LZ4_compressBound() : unified macro and inline definitions (Shay Green) 305lz4.h : LZ4_decompressSafe_partial() : clarify comments (Shay Green) 306lz4.c : LZ4_compress() verify input size condition (Shay Green) 307bench.c : corrected a bug in free memory size evaluation 308cmake : install into bin/ directory (Richard Yao) 309cmake : check for just C compiler (Elan Ruusamae) 310 311r106 : 312Makefile : make dist modify text files in the package to respect Unix EoL convention 313lz4cli.c : corrected small display bug in HC mode 314 315r105 : 316Makefile : New install script and man page, contributed by Prasad Pandit 317lz4cli.c : Minor modifications, for easier extensibility 318COPYING : added license file 319LZ4_Streaming_Format.odt : modified file name to remove white space characters 320Makefile : .exe suffix now properly added only for Windows target 321