1*01826a49SYabin CuiV1.5.6 (Mar 2024) 2*01826a49SYabin Cuiapi: Promote `ZSTD_c_targetCBlockSize` to Stable API by @felixhandte 3*01826a49SYabin Cuiapi: new `ZSTD_d_maxBlockSize` experimental parameter, to reduce streaming decompression memory, by @terrelln 4*01826a49SYabin Cuiperf: improve performance of param `ZSTD_c_targetCBlockSize`, by @Cyan4973 5*01826a49SYabin Cuiperf: improved compression of arrays of integers at high compression, by @Cyan4973 6*01826a49SYabin Cuilib: reduce binary size with selective built-time exclusion, by @felixhandte 7*01826a49SYabin Cuilib: improved huffman speed on small data and linux kernel, by @terrelln 8*01826a49SYabin Cuilib: accept dictionaries with partial literal tables, by @terrelln 9*01826a49SYabin Cuilib: fix CCtx size estimation with external sequence producer, by @embg 10*01826a49SYabin Cuilib: fix corner case decoder behaviors, by @Cyan4973 and @aimuz 11*01826a49SYabin Cuilib: fix zdict prototype mismatch in static_only mode, by @ldv-alt 12*01826a49SYabin Cuilib: fix several bugs in magicless-format decoding, by @embg 13*01826a49SYabin Cuicli: add common compressed file types to `--exclude-compressed`` by @daniellerozenblit 14*01826a49SYabin Cuicli: fix mixing `-c` and `-o` commands with `--rm`, by @Cyan4973 15*01826a49SYabin Cuicli: fix erroneous exclusion of hidden files with `--output-dir-mirror` by @felixhandte 16*01826a49SYabin Cuicli: improved time accuracy on BSD, by @felixhandte 17*01826a49SYabin Cuicli: better errors on argument parsing, by @KapJI 18*01826a49SYabin Cuitests: better compatibility with older versions of `grep`, by @Cyan4973 19*01826a49SYabin Cuitests: lorem ipsum generator as default backup content, by @Cyan4973 20*01826a49SYabin Cuibuild: cmake improvements by @terrelln, @sighingnow, @gjasny, @JohanMabille, @Saverio976, @gruenich, @teo-tsirpanis 21*01826a49SYabin Cuibuild: bazel support, by @jondo2010 22*01826a49SYabin Cuibuild: fix cross-compiling for AArch64 with lld by @jcelerier 23*01826a49SYabin Cuibuild: fix Apple platform compatibility, by @nidhijaju 24*01826a49SYabin Cuibuild: fix Visual 2012 and lower compatibility, by @Cyan4973 25*01826a49SYabin Cuibuild: improve win32 support, by @DimitriPapadopoulos 26*01826a49SYabin Cuibuild: better C90 compliance for zlibWrapper, by @emaste 27*01826a49SYabin Cuiport: make: fat binaries on macos, by @mredig 28*01826a49SYabin Cuiport: ARM64EC compatibility for Windows, by @dunhor 29*01826a49SYabin Cuiport: QNX support by @klausholstjacobsen 30*01826a49SYabin Cuiport: MSYS2 and Cygwin makefile installation and test support, by @QBos07 31*01826a49SYabin Cuiport: risc-v support validation in CI, by @Cyan4973 32*01826a49SYabin Cuiport: sparc64 support validation in CI, by @Cyan4973 33*01826a49SYabin Cuiport: AIX compatibility, by @likema 34*01826a49SYabin Cuiport: HP-UX compatibility, by @likema 35*01826a49SYabin Cuidoc: Improved specification accuracy, by @elasota 36*01826a49SYabin Cuibug: Fix and deprecate ZSTD_generateSequences (#3981) 37*01826a49SYabin Cui 38*01826a49SYabin Cuiv1.5.5 (Apr 2023) 39*01826a49SYabin Cuifix: fix rare corruption bug affecting the high compression mode, reported by @danlark1 (#3517, @terrelln) 40*01826a49SYabin Cuiperf: improve mid-level compression speed (#3529, #3533, #3543, @yoniko and #3552, @terrelln) 41*01826a49SYabin Cuilib: deprecated bufferless block-level API (#3534) by @terrelln 42*01826a49SYabin Cuicli: mmap large dictionaries to save memory, by @daniellerozenblit 43*01826a49SYabin Cuicli: improve speed of --patch-from mode (~+50%) (#3545) by @daniellerozenblit 44*01826a49SYabin Cuicli: improve i/o speed (~+10%) when processing lots of small files (#3479) by @felixhandte 45*01826a49SYabin Cuicli: zstd no longer crashes when requested to write into write-protected directory (#3541) by @felixhandte 46*01826a49SYabin Cuicli: fix decompression into block device using -o, reported by @georgmu (#3583) 47*01826a49SYabin Cuibuild: fix zstd CLI compiled with lzma support but not zlib support (#3494) by @Hello71 48*01826a49SYabin Cuibuild: fix cmake does no longer require 3.18 as minimum version (#3510) by @kou 49*01826a49SYabin Cuibuild: fix MSVC+ClangCL linking issue (#3569) by @tru 50*01826a49SYabin Cuibuild: fix zstd-dll, version of zstd CLI that links to the dynamic library (#3496) by @yoniko 51*01826a49SYabin Cuibuild: fix MSVC warnings (#3495) by @embg 52*01826a49SYabin Cuidoc: updated zstd specification to clarify corner cases, by @Cyan4973 53*01826a49SYabin Cuidoc: document how to create fat binaries for macos (#3568) by @rickmark 54*01826a49SYabin Cuimisc: improve seekable format ingestion speed (~+100%) for very small chunk sizes (#3544) by @Cyan4973 55*01826a49SYabin Cuimisc: tests/fullbench can benchmark multiple files (#3516) by @dloidolt 56*01826a49SYabin Cui 57*01826a49SYabin Cuiv1.5.4 (Feb 2023) 58*01826a49SYabin Cuiperf: +20% faster huffman decompression for targets that can't compile x64 assembly (#3449, @terrelln) 59*01826a49SYabin Cuiperf: up to +10% faster streaming compression at levels 1-2 (#3114, @embg) 60*01826a49SYabin Cuiperf: +4-13% for levels 5-12 by optimizing function generation (#3295, @terrelln) 61*01826a49SYabin Cuipref: +3-11% compression speed for `arm` target (#3199, #3164, #3145, #3141, #3138, @JunHe77 and #3139, #3160, @danlark1) 62*01826a49SYabin Cuiperf: +5-30% faster dictionary compression at levels 1-4 (#3086, #3114, #3152, @embg) 63*01826a49SYabin Cuiperf: +10-20% cold dict compression speed by prefetching CDict tables (#3177, @embg) 64*01826a49SYabin Cuiperf: +1% faster compression by removing a branch in ZSTD_fast_noDict (#3129, @felixhandte) 65*01826a49SYabin Cuiperf: Small compression ratio improvements in high compression mode (#2983, #3391, @Cyan4973 and #3285, #3302, @daniellerozenblit) 66*01826a49SYabin Cuiperf: small speed improvement by better detecting `STATIC_BMI2` for `clang` (#3080, @TocarIP) 67*01826a49SYabin Cuiperf: Improved streaming performance when `ZSTD_c_stableInBuffer` is set (#2974, @Cyan4973) 68*01826a49SYabin Cuicli: Asynchronous I/O for improved cli speed (#2975, #2985, #3021, #3022, @yoniko) 69*01826a49SYabin Cuicli: Change `zstdless` behavior to align with `zless` (#2909, @binhdvo) 70*01826a49SYabin Cuicli: Keep original file if `-c` or `--stdout` is given (#3052, @dirkmueller) 71*01826a49SYabin Cuicli: Keep original files when result is concatenated into a single output with `-o` (#3450, @Cyan4973) 72*01826a49SYabin Cuicli: Preserve Permissions and Ownership of regular files (#3432, @felixhandte) 73*01826a49SYabin Cuicli: Print zlib/lz4/lzma library versions with `-vv` (#3030, @terrelln) 74*01826a49SYabin Cuicli: Print checksum value for single frame files with `-lv` (#3332, @Cyan4973) 75*01826a49SYabin Cuicli: Print `dictID` when present with `-lv` (#3184, @htnhan) 76*01826a49SYabin Cuicli: when `stderr` is *not* the console, disable status updates, but preserve final summary (#3458, @Cyan4973) 77*01826a49SYabin Cuicli: support `--best` and `--no-name` in `gzip` compatibility mode (#3059, @dirkmueller) 78*01826a49SYabin Cuicli: support for `posix` high resolution timer `clock_gettime()`, for improved benchmark accuracy (#3423, @Cyan4973) 79*01826a49SYabin Cuicli: improved help/usage (`-h`, `-H`) formatting (#3094, @dirkmueller and #3385, @jonpalmisc) 80*01826a49SYabin Cuicli: Fix better handling of bogus numeric values (#3268, @ctkhanhly) 81*01826a49SYabin Cuicli: Fix input consists of multiple files _and_ `stdin` (#3222, @yoniko) 82*01826a49SYabin Cuicli: Fix tiny files passthrough (#3215, @cgbur) 83*01826a49SYabin Cuicli: Fix for `-r` on empty directory (#3027, @brailovich) 84*01826a49SYabin Cuicli: Fix empty string as argument for `--output-dir-*` (#3220, @embg) 85*01826a49SYabin Cuicli: Fix decompression memory usage reported by `-vv --long` (#3042, @u1f35c, and #3232, @zengyijing) 86*01826a49SYabin Cuicli: Fix infinite loop when empty input is passed to trainer (#3081, @terrelln) 87*01826a49SYabin Cuicli: Fix `--adapt` doesn't work when `--no-progress` is also set (#3354, @terrelln) 88*01826a49SYabin Cuiapi: Support for Block-Level Sequence Producer (#3333, @embg) 89*01826a49SYabin Cuiapi: Support for in-place decompression (#3432, @terrelln) 90*01826a49SYabin Cuiapi: New `ZSTD_CCtx_setCParams()` function, set all parameters defined in a `ZSTD_compressionParameters` structure (#3403, @Cyan4973) 91*01826a49SYabin Cuiapi: Streaming decompression detects incorrect header ID sooner (#3175, @Cyan4973) 92*01826a49SYabin Cuiapi: Window size resizing optimization for edge case (#3345, @daniellerozenblit) 93*01826a49SYabin Cuiapi: More accurate error codes for busy-loop scenarios (#3413, #3455, @Cyan4973) 94*01826a49SYabin Cuiapi: Fix limit overflow in `compressBound` and `decompressBound` (#3362, #3373, Cyan4973) reported by @nigeltao 95*01826a49SYabin Cuiapi: Deprecate several advanced experimental functions: streaming (#3408, @embg), copy (#3196, @mileshu) 96*01826a49SYabin Cuibug: Fix corruption that rarely occurs in 32-bit mode with wlog=25 (#3361, @terrelln) 97*01826a49SYabin Cuibug: Fix for block-splitter (#3033, @Cyan4973) 98*01826a49SYabin Cuibug: Fixes for Sequence Compression API (#3023, #3040, @Cyan4973) 99*01826a49SYabin Cuibug: Fix leaking thread handles on Windows (#3147, @animalize) 100*01826a49SYabin Cuibug: Fix timing issues with cmake/meson builds (#3166, #3167, #3170, @Cyan4973) 101*01826a49SYabin Cuibuild: Allow user to select legacy level for cmake (#3050, @shadchin) 102*01826a49SYabin Cuibuild: Enable legacy support by default in cmake (#3079, @niamster) 103*01826a49SYabin Cuibuild: Meson build script improvements (#3039, #3120, #3122, #3327, #3357, @eli-schwartz and #3276, @neheb) 104*01826a49SYabin Cuibuild: Add aarch64 to supported architectures for zstd_trace (#3054, @ooosssososos) 105*01826a49SYabin Cuibuild: support AIX architecture (#3219, @qiongsiwu) 106*01826a49SYabin Cuibuild: Fix `ZSTD_LIB_MINIFY` build macro, which now reduces static library size by half (#3366, @terrelln) 107*01826a49SYabin Cuibuild: Fix Windows issues with Multithreading translation layer (#3364, #3380, @yoniko) and ARM64 target (#3320, @cwoffenden) 108*01826a49SYabin Cuibuild: Fix `cmake` script (#3382, #3392, @terrelln and #3252 @Tachi107 and #3167 @Cyan4973) 109*01826a49SYabin Cuidoc: Updated man page, providing more details for `--train` mode (#3112, @Cyan4973) 110*01826a49SYabin Cuidoc: Add decompressor errata document (#3092, @terrelln) 111*01826a49SYabin Cuimisc: Enable Intel CET (#2992, #2994, @hjl-tools) 112*01826a49SYabin Cuimisc: Fix `contrib/` seekable format (#3058, @yhoogstrate and #3346, @daniellerozenblit) 113*01826a49SYabin Cuimisc: Improve speed of the one-file library generator (#3241, @wahern and #3005, @cwoffenden) 114*01826a49SYabin Cui 115*01826a49SYabin Cuiv1.5.3 (dev version, unpublished) 116*01826a49SYabin Cui 117*01826a49SYabin Cuiv1.5.2 (Jan, 2022) 118*01826a49SYabin Cuiperf: Regain Minimal memset()-ing During Reuse of Compression Contexts (@Cyan4973, #2969) 119*01826a49SYabin Cuibuild: Build Zstd with `noexecstack` on All Architectures (@felixhandte, #2964) 120*01826a49SYabin Cuidoc: Clarify Licensing (@terrelln, #2981) 121*01826a49SYabin Cui 122*01826a49SYabin Cuiv1.5.1 (Dec, 2021) 123*01826a49SYabin Cuiperf: rebalanced compression levels, to better match the intended speed/level curve, by @senhuang42 124*01826a49SYabin Cuiperf: faster huffman decoder, using x64 assembly, by @terrelln 125*01826a49SYabin Cuiperf: slightly faster high speed modes (strategies fast & dfast), by @felixhandte 126*01826a49SYabin Cuiperf: improved binary size and faster compilation times, by @terrelln 127*01826a49SYabin Cuiperf: new row64 mode, used notably in level 12, by @senhuang42 128*01826a49SYabin Cuiperf: faster mid-level compression speed in presence of highly repetitive patterns, by @senhuang42 129*01826a49SYabin Cuiperf: minor compression ratio improvements for small data at high levels, by @cyan4973 130*01826a49SYabin Cuiperf: reduced stack usage (mostly useful for Linux Kernel), by @terrelln 131*01826a49SYabin Cuiperf: faster compression speed on incompressible data, by @bindhvo 132*01826a49SYabin Cuiperf: on-demand reduced ZSTD_DCtx state size, using build macro ZSTD_DECODER_INTERNAL_BUFFER, at a small cost of performance, by @bindhvo 133*01826a49SYabin Cuibuild: allows hiding static symbols in the dynamic library, using build macro, by @skitt 134*01826a49SYabin Cuibuild: support for m68k (Motorola 68000's), by @cyan4973 135*01826a49SYabin Cuibuild: improved AIX support, by @Helflym 136*01826a49SYabin Cuibuild: improved meson unofficial build, by @eli-schwartz 137*01826a49SYabin Cuicli : custom memory limit when training dictionary (#2925), by @embg 138*01826a49SYabin Cuicli : report advanced parameters information when compressing in very verbose mode (`-vv`), by @Svetlitski-FB 139*01826a49SYabin Cui 140*01826a49SYabin Cuiv1.5.0 (May 11, 2021) 141*01826a49SYabin Cuiapi: Various functions promoted from experimental to stable API: (#2579-2581, @senhuang42) 142*01826a49SYabin Cui `ZSTD_defaultCLevel()` 143*01826a49SYabin Cui `ZSTD_getDictID_fromCDict()` 144*01826a49SYabin Cuiapi: Several experimental functions have been deprecated and will emit a compiler warning (#2582, @senhuang42) 145*01826a49SYabin Cui `ZSTD_compress_advanced()` 146*01826a49SYabin Cui `ZSTD_compress_usingCDict_advanced()` 147*01826a49SYabin Cui `ZSTD_compressBegin_advanced()` 148*01826a49SYabin Cui `ZSTD_compressBegin_usingCDict_advanced()` 149*01826a49SYabin Cui `ZSTD_initCStream_srcSize()` 150*01826a49SYabin Cui `ZSTD_initCStream_usingDict()` 151*01826a49SYabin Cui `ZSTD_initCStream_usingCDict()` 152*01826a49SYabin Cui `ZSTD_initCStream_advanced()` 153*01826a49SYabin Cui `ZSTD_initCStream_usingCDict_advanced()` 154*01826a49SYabin Cui `ZSTD_resetCStream()` 155*01826a49SYabin Cuiapi: ZSTDMT_NBWORKERS_MAX reduced to 64 for 32-bit environments (@Cyan4973) 156*01826a49SYabin Cuiperf: Significant speed improvements for middle compression levels (#2494, @senhuang42 @terrelln) 157*01826a49SYabin Cuiperf: Block splitter to improve compression ratio, enabled by default for high compression levels (#2447, @senhuang42) 158*01826a49SYabin Cuiperf: Decompression loop refactor, speed improvements on `clang` and for `--long` modes (#2614 #2630, @Cyan4973) 159*01826a49SYabin Cuiperf: Reduced stack usage during compression and decompression entropy stage (#2522 #2524, @terrelln) 160*01826a49SYabin Cuibug: Improve setting permissions of created files (#2525, @felixhandte) 161*01826a49SYabin Cuibug: Fix large dictionary non-determinism (#2607, @terrelln) 162*01826a49SYabin Cuibug: Fix non-determinism test failures on Linux i686 (#2606, @terrelln) 163*01826a49SYabin Cuibug: Fix various dedicated dictionary search bugs (#2540 #2586, @senhuang42 @felixhandte) 164*01826a49SYabin Cuibug: Ensure `ZSTD_estimateCCtxSize*() `monotonically increases with compression level (#2538, @senhuang42) 165*01826a49SYabin Cuibug: Fix --patch-from mode parameter bound bug with small files (#2637, @occivink) 166*01826a49SYabin Cuibug: Fix UBSAN error in decompression (#2625, @terrelln) 167*01826a49SYabin Cuibug: Fix superblock compression divide by zero bug (#2592, @senhuang42) 168*01826a49SYabin Cuibug: Make the number of physical CPU cores detection more robust (#2517, @PaulBone) 169*01826a49SYabin Cuidoc: Improve `zdict.h` dictionary training API documentation (#2622, @terrelln) 170*01826a49SYabin Cuidoc: Note that public `ZSTD_free*()` functions accept NULL pointers (#2521, @animalize) 171*01826a49SYabin Cuidoc: Add style guide docs for open source contributors (#2626, @Cyan4973) 172*01826a49SYabin Cuitests: Better regression test coverage for different dictionary modes (#2559, @senhuang42) 173*01826a49SYabin Cuitests: Better test coverage of index reduction (#2603, @terrelln) 174*01826a49SYabin Cuitests: OSS-Fuzz coverage for seekable format (#2617, @senhuang42) 175*01826a49SYabin Cuitests: Test coverage for ZSTD threadpool API (#2604, @senhuang42) 176*01826a49SYabin Cuibuild: Dynamic library built multithreaded by default (#2584, @senhuang42) 177*01826a49SYabin Cuibuild: Move `zstd_errors.h` and `zdict.h` to `lib/` root (#2597, @terrelln) 178*01826a49SYabin Cuibuild: Allow `ZSTDMT_JOBSIZE_MIN` to be configured at compile-time, reduce default to 512KB (#2611, @Cyan4973) 179*01826a49SYabin Cuibuild: Single file library build script moved to `build/` directory (#2618, @felixhandte) 180*01826a49SYabin Cuibuild: `ZBUFF_*()` is no longer built by default (#2583, @senhuang42) 181*01826a49SYabin Cuibuild: Fixed Meson build (#2548, @SupervisedThinking @kloczek) 182*01826a49SYabin Cuibuild: Fix excessive compiler warnings with clang-cl and CMake (#2600, @nickhutchinson) 183*01826a49SYabin Cuibuild: Detect presence of `md5` on Darwin (#2609, @felixhandte) 184*01826a49SYabin Cuibuild: Avoid SIGBUS on armv6 (#2633, @bmwiedmann) 185*01826a49SYabin Cuicli: `--progress` flag added to always display progress bar (#2595, @senhuang42) 186*01826a49SYabin Cuicli: Allow reading from block devices with `--force` (#2613, @felixhandte) 187*01826a49SYabin Cuicli: Fix CLI filesize display bug (#2550, @Cyan4973) 188*01826a49SYabin Cuicli: Fix windows CLI `--filelist` end-of-line bug (#2620, @Cyan4973) 189*01826a49SYabin Cuicontrib: Various fixes for linux kernel patch (#2539, @terrelln) 190*01826a49SYabin Cuicontrib: Seekable format - Decompression hanging edge case fix (#2516, @senhuang42) 191*01826a49SYabin Cuicontrib: Seekable format - New seek table-only API (#2113 #2518, @mdittmer @Cyan4973) 192*01826a49SYabin Cuicontrib: Seekable format - Fix seek table descriptor check when loading (#2534, @foxeng) 193*01826a49SYabin Cuicontrib: Seekable format - Decompression fix for large offsets, (#2594, @azat) 194*01826a49SYabin Cuimisc: Automatically published release tarballs available on Github (#2535, @felixhandte) 195*01826a49SYabin Cui 196*01826a49SYabin Cuiv1.4.9 (Mar 1, 2021) 197*01826a49SYabin Cuibug: Use `umask()` to Constrain Created File Permissions (#2495, @felixhandte) 198*01826a49SYabin Cuibug: Make Simple Single-Pass Functions Ignore Advanced Parameters (#2498, @terrelln) 199*01826a49SYabin Cuiapi: Add (De)Compression Tracing Functionality (#2482, @terrelln) 200*01826a49SYabin Cuiapi: Support References to Multiple DDicts (#2446, @senhuang42) 201*01826a49SYabin Cuiapi: Add Function to Generate Skippable Frame (#2439, @senhuang42) 202*01826a49SYabin Cuiperf: New Algorithms for the Long Distance Matcher (#2483, @mpu) 203*01826a49SYabin Cuiperf: Performance Improvements for Long Distance Matcher (#2464, @mpu) 204*01826a49SYabin Cuiperf: Don't Shrink Window Log when Streaming with a Dictionary (#2451, @terrelln) 205*01826a49SYabin Cuicli: Fix `--output-dir-mirror` rejection of `..` -containing paths (#2512, @felixhandte) 206*01826a49SYabin Cuicli: Allow Input From Console When `-f`/`--force` is Passed (#2466, @felixhandte) 207*01826a49SYabin Cuicli: Improve Help Message (#2500, @senhuang42) 208*01826a49SYabin Cuitests: Remove Flaky Tests (#2455, #2486, #2445, @Cyan4973) 209*01826a49SYabin Cuitests: Correctly Invoke md5 Utility on NetBSD (#2492, @niacat) 210*01826a49SYabin Cuitests: Avoid Using `stat -c` on NetBSD (#2513, @felixhandte) 211*01826a49SYabin Cuibuild: Zstd CLI Can Now be Linked to Dynamic `libzstd` (#2457, #2454 @Cyan4973) 212*01826a49SYabin Cuibuild: Hide and Avoid Using Static-Only Symbols (#2501, #2504, @skitt) 213*01826a49SYabin Cuibuild: CMake: Enable Only C for lib/ and programs/ Projects (#2498, @concatime) 214*01826a49SYabin Cuibuild: CMake: Use `configure_file()` to Create the `.pc` File (#2462, @lazka) 215*01826a49SYabin Cuibuild: Fix Fuzzer Compiler Detection & Update UBSAN Flags (#2503, @terrelln) 216*01826a49SYabin Cuibuild: Add Guards for `_LARGEFILE_SOURCE` and `_LARGEFILE64_SOURCE` (#2444, @indygreg) 217*01826a49SYabin Cuibuild: Improve `zlibwrapper` Makefile (#2437, @Cyan4973) 218*01826a49SYabin Cuicontrib: Add `recover_directory` Program (#2473, @terrelln) 219*01826a49SYabin Cuidoc: Change License Year to 2021 (#2452 & #2465, @terrelln & @senhuang42) 220*01826a49SYabin Cuidoc: Fix Typos (#2459, @ThomasWaldmann) 221*01826a49SYabin Cui 222*01826a49SYabin Cuiv1.4.8 (Dec 18, 2020) 223*01826a49SYabin Cuihotfix: wrong alignment of an internal buffer 224*01826a49SYabin Cui 225*01826a49SYabin Cuiv1.4.7 (Dec 16, 2020) 226*01826a49SYabin Cuiperf: stronger --long mode at high compression levels, by @senhuang42 227*01826a49SYabin Cuiperf: stronger --patch-from at high compression levels, thanks to --long improvements 228*01826a49SYabin Cuiperf: faster dictionary compression at medium compression levels, by @felixhandte 229*01826a49SYabin Cuiperf: small speed & memory usage improvements for ZSTD_compress2(), by @terrelln 230*01826a49SYabin Cuiperf: improved fast compression speeds with Visual Studio, by @animalize 231*01826a49SYabin Cuicli : Set nb of threads with environment variable ZSTD_NBTHREADS, by @senhuang42 232*01826a49SYabin Cuicli : accept decompressing files with *.zstd suffix 233*01826a49SYabin Cuicli : provide a condensed summary by default when processing multiple files 234*01826a49SYabin Cuicli : fix : stdin input no longer confused as user prompt 235*01826a49SYabin Cuicli : improve accuracy of several error messages 236*01826a49SYabin Cuiapi : new sequence ingestion API, by @senhuang42 237*01826a49SYabin Cuiapi : shared thread pool: control total nb of threads used by multiple compression jobs, by @marxin 238*01826a49SYabin Cuiapi : new ZSTD_getDictID_fromCDict(), by @LuAPi 239*01826a49SYabin Cuiapi : zlibWrapper only uses public API, and is compatible with dynamic library, by @terrelln 240*01826a49SYabin Cuiapi : fix : multithreaded compression has predictable output even in special cases (see #2327) (issue not accessible from cli) 241*01826a49SYabin Cuiapi : fix : dictionary compression correctly respects dictionary compression level (see #2303) (issue not accessible from cli) 242*01826a49SYabin Cuibuild: fix cmake script when using path with spaces, by @terrelln 243*01826a49SYabin Cuibuild: improved compile-time detection of aarch64/neon platforms, by @bsdimp 244*01826a49SYabin Cuibuild: Fix building on AIX 5.1, by @likema 245*01826a49SYabin Cuibuild: compile paramgrill with cmake on Windows, requested by @mirh 246*01826a49SYabin Cuidoc : clarify repcode updates in format specification, by @felixhandte 247*01826a49SYabin Cui 248*01826a49SYabin Cuiv1.4.6 249*01826a49SYabin Cuifix : Always return dstSize_tooSmall when that is the case 250*01826a49SYabin Cuifix : Fix ZSTD_initCStream_advanced() with static allocation and no dictionary 251*01826a49SYabin Cuiperf: Improve small block decompression speed by 20%+, by @terrelln 252*01826a49SYabin Cuiperf: Reduce compression stack usage by 1 KB, by @terrelln 253*01826a49SYabin Cuiperf: Improve decompression speed by improving ZSTD_wildcopy, by @helloguo (#2252, #2256) 254*01826a49SYabin Cuiperf: Improve histogram construction, by @cyan4973 (#2253) 255*01826a49SYabin Cuicli : Add --output-dir-mirror option, by @xxie24 (#2219) 256*01826a49SYabin Cuicli : Warn when (de)compressing multiple files into a single output, by @senhuang42 (#2279) 257*01826a49SYabin Cuicli : Improved progress bar and status summary when (de)compressing multiple files, by @senhuang42 (#2283) 258*01826a49SYabin Cuicli : Call stat less often, by @felixhandte (#2262) 259*01826a49SYabin Cuicli : Allow --patch-from XXX and --filelist XXX in addition to --patch-from=XXX and --filelist=XXX, by @cyan4973 (#2250) 260*01826a49SYabin Cuicli : Allow --patch-from to compress stdin with --stream-size, by @bimbashrestha (#2206) 261*01826a49SYabin Cuiapi : Do not install zbuff.h, since it has long been deprecated, by @cyan4973 (#2166). 262*01826a49SYabin Cuiapi : Fix ZSTD_CCtx_setParameter() with ZSTD_c_compressionLevel to make 0 mean default level, by @i-do-cpp (#2291) 263*01826a49SYabin Cuiapi : Rename ZSTDMT_NBTHREADS_MAX to ZSTDMT_NBWORKERS_MAX, by @marxin (#2228). 264*01826a49SYabin Cuibuild: Install pkg-config file with CMake and MinGW, by @tonytheodore (#2183) 265*01826a49SYabin Cuibuild: Install DLL with CMake on Windows, by @BioDataAnalysis (#2221) 266*01826a49SYabin Cuibuild: Fix DLL install location with CMake, by @xantares and @bimbashrestha (#2186) 267*01826a49SYabin Cuibuild: Add ZSTD_NO_UNUSED_FUNCTIONS macro to hide unused functions 268*01826a49SYabin Cuibuild: Add ZSTD_NO_INTRINSICS macro to avoid explicit intrinsics 269*01826a49SYabin Cuibuild: Add STATIC_BMI2 macro for compile time detection of BMI2 on MSVC, by @Niadb (#2258) 270*01826a49SYabin Cuibuild: Fix -Wcomma warnings, by @cwoffenden 271*01826a49SYabin Cuibuild: Remove distutils requirement for meson build, by @neheb (#2197) 272*01826a49SYabin Cuibuild: Fix cli compilation with uclibc 273*01826a49SYabin Cuibuild: Fix cli compilation without st_mtime, by @ffontaine (#2246) 274*01826a49SYabin Cuibuild: Fix shadowing warnings in library 275*01826a49SYabin Cuibuild: Fix single file library compilation with Enscripten, by @yoshihitoh (#2227) 276*01826a49SYabin Cuimisc: Improve single file library and include dictBuilder, by @cwoffenden 277*01826a49SYabin Cuimisc: Allow compression dictionaries with missing symbols 278*01826a49SYabin Cuimisc: Add freestanding translation script in contrib/freestanding_lib 279*01826a49SYabin Cuimisc: Collect all of zstd's libc dependencies into zstd_deps.h 280*01826a49SYabin Cuidoc : Add ZSTD_versionString() to manual, by @animalize 281*01826a49SYabin Cuidoc : Fix documentation for ZSTD_CCtxParams_setParameter(), by @felixhandte (#2270) 282*01826a49SYabin Cui 283*01826a49SYabin Cuiv1.4.5 (May 22, 2020) 284*01826a49SYabin Cuifix : Compression ratio regression on huge files (> 3 GB) using high levels (--ultra) and multithreading, by @terrelln 285*01826a49SYabin Cuiperf: Improved decompression speed: x64 : +10% (clang) / +5% (gcc); ARM : from +15% to +50%, depending on SoC, by @terrelln 286*01826a49SYabin Cuiperf: Automatically downsizes ZSTD_DCtx when too large for too long (#2069, by @bimbashreshta) 287*01826a49SYabin Cuiperf: Improved fast compression speed on aarch64 (#2040, ~+3%, by @caoyzh) 288*01826a49SYabin Cuiperf: Small level 1 compression speed gains (depending on compiler) 289*01826a49SYabin Cuicli : New --patch-from command, create and apply patches from files, by @bimbashreshta 290*01826a49SYabin Cuicli : New --filelist= : Provide a list of files to operate upon from a file 291*01826a49SYabin Cuicli : -b -d command can now benchmark decompression on multiple files 292*01826a49SYabin Cuicli : New --no-content-size command 293*01826a49SYabin Cuicli : New --show-default-cparams information command 294*01826a49SYabin Cuiapi : ZDICT_finalizeDictionary() is promoted to stable (#2111) 295*01826a49SYabin Cuiapi : new experimental parameter ZSTD_d_stableOutBuffer (#2094) 296*01826a49SYabin Cuibuild: Generate a single-file libzstd library (#2065, by @cwoffenden) 297*01826a49SYabin Cuibuild: Relative includes no longer require -I compiler flags for zstd lib subdirs (#2103, by @felixhandte) 298*01826a49SYabin Cuibuild: zstd now compiles cleanly under -pedantic (#2099) 299*01826a49SYabin Cuibuild: zstd now compiles with make-4.3 300*01826a49SYabin Cuibuild: Support mingw cross-compilation from Linux, by @Ericson2314 301*01826a49SYabin Cuibuild: Meson multi-thread build fix on windows 302*01826a49SYabin Cuibuild: Some misc icc fixes backed by new ci test on travis 303*01826a49SYabin Cuimisc: bitflip analyzer tool, by @felixhandte 304*01826a49SYabin Cuimisc: Extend largeNbDicts benchmark to compression 305*01826a49SYabin Cuimisc: Edit-distance match finder in contrib/ 306*01826a49SYabin Cuidoc : Improved beginner CONTRIBUTING.md docs 307*01826a49SYabin Cuidoc : New issue templates for zstd 308*01826a49SYabin Cui 309*01826a49SYabin Cuiv1.4.4 (Nov 6, 2019) 310*01826a49SYabin Cuiperf: Improved decompression speed, by > 10%, by @terrelln 311*01826a49SYabin Cuiperf: Better compression speed when re-using a context, by @felixhandte 312*01826a49SYabin Cuiperf: Fix compression ratio when compressing large files with small dictionary, by @senhuang42 313*01826a49SYabin Cuiperf: zstd reference encoder can generate RLE blocks, by @bimbashrestha 314*01826a49SYabin Cuiperf: minor generic speed optimization, by @davidbolvansky 315*01826a49SYabin Cuiapi: new ability to extract sequences from the parser for analysis, by @bimbashrestha 316*01826a49SYabin Cuiapi: fixed decoding of magic-less frames, by @terrelln 317*01826a49SYabin Cuiapi: fixed ZSTD_initCStream_advanced() performance with fast modes, reported by @QrczakMK 318*01826a49SYabin Cuicli: Named pipes support, by @bimbashrestha 319*01826a49SYabin Cuicli: short tar's extension support, by @stokito 320*01826a49SYabin Cuicli: command --output-dir-flat= , generates target files into requested directory, by @senhuang42 321*01826a49SYabin Cuicli: commands --stream-size=# and --size-hint=#, by @nmagerko 322*01826a49SYabin Cuicli: command --exclude-compressed, by @shashank0791 323*01826a49SYabin Cuicli: faster `-t` test mode 324*01826a49SYabin Cuicli: improved some error messages, by @vangyzen 325*01826a49SYabin Cuicli: fix command `-D dictionary` on Windows, reported by @artyompetrov 326*01826a49SYabin Cuicli: fix rare deadlock condition within dictionary builder, by @terrelln 327*01826a49SYabin Cuibuild: single-file decoder with emscripten compilation script, by @cwoffenden 328*01826a49SYabin Cuibuild: fixed zlibWrapper compilation on Visual Studio, reported by @bluenlive 329*01826a49SYabin Cuibuild: fixed deprecation warning for certain gcc version, reported by @jasonma163 330*01826a49SYabin Cuibuild: fix compilation on old gcc versions, by @cemeyer 331*01826a49SYabin Cuibuild: improved installation directories for cmake script, by Dmitri Shubin 332*01826a49SYabin Cuipack: modified pkgconfig, for better integration into openwrt, requested by @neheb 333*01826a49SYabin Cuimisc: Improved documentation : ZSTD_CLEVEL, DYNAMIC_BMI2, ZSTD_CDict, function deprecation, zstd format 334*01826a49SYabin Cuimisc: fixed educational decoder : accept larger literals section, and removed UNALIGNED() macro 335*01826a49SYabin Cui 336*01826a49SYabin Cuiv1.4.3 (Aug 20, 2019) 337*01826a49SYabin Cuibug: Fix Dictionary Compression Ratio Regression by @cyan4973 (#1709) 338*01826a49SYabin Cuibug: Fix Buffer Overflow in legacy v0.3 decompression by @felixhandte (#1722) 339*01826a49SYabin Cuibuild: Add support for IAR C/C++ Compiler for Arm by @joseph0918 (#1705) 340*01826a49SYabin Cui 341*01826a49SYabin Cuiv1.4.2 (Jul 26, 2019) 342*01826a49SYabin Cuibug: Fix bug in zstd-0.5 decoder by @terrelln (#1696) 343*01826a49SYabin Cuibug: Fix seekable decompression in-memory API by @iburinoc (#1695) 344*01826a49SYabin Cuimisc: Validate blocks are smaller than size limit by @vivekmg (#1685) 345*01826a49SYabin Cuimisc: Restructure source files by @ephiepark (#1679) 346*01826a49SYabin Cui 347*01826a49SYabin Cuiv1.4.1 (Jul 20, 2019) 348*01826a49SYabin Cuibug: Fix data corruption in niche use cases by @terrelln (#1659) 349*01826a49SYabin Cuibug: Fuzz legacy modes, fix uncovered bugs by @terrelln (#1593, #1594, #1595) 350*01826a49SYabin Cuibug: Fix out of bounds read by @terrelln (#1590) 351*01826a49SYabin Cuiperf: Improve decode speed by ~7% @mgrice (#1668) 352*01826a49SYabin Cuiperf: Slightly improved compression ratio of level 3 and 4 (ZSTD_dfast) by @cyan4973 (#1681) 353*01826a49SYabin Cuiperf: Slightly faster compression speed when re-using a context by @cyan4973 (#1658) 354*01826a49SYabin Cuiperf: Improve compression ratio for small windowLog by @cyan4973 (#1624) 355*01826a49SYabin Cuiperf: Faster compression speed in high compression mode for repetitive data by @terrelln (#1635) 356*01826a49SYabin Cuiapi: Add parameter to generate smaller dictionaries by @tyler-tran (#1656) 357*01826a49SYabin Cuicli: Recognize symlinks when built in C99 mode by @felixhandte (#1640) 358*01826a49SYabin Cuicli: Expose cpu load indicator for each file on -vv mode by @ephiepark (#1631) 359*01826a49SYabin Cuicli: Restrict read permissions on destination files by @chungy (#1644) 360*01826a49SYabin Cuicli: zstdgrep: handle -f flag by @felixhandte (#1618) 361*01826a49SYabin Cuicli: zstdcat: follow symlinks by @vejnar (#1604) 362*01826a49SYabin Cuidoc: Remove extra size limit on compressed blocks by @felixhandte (#1689) 363*01826a49SYabin Cuidoc: Fix typo by @yk-tanigawa (#1633) 364*01826a49SYabin Cuidoc: Improve documentation on streaming buffer sizes by @cyan4973 (#1629) 365*01826a49SYabin Cuibuild: CMake: support building with LZ4 @leeyoung624 (#1626) 366*01826a49SYabin Cuibuild: CMake: install zstdless and zstdgrep by @leeyoung624 (#1647) 367*01826a49SYabin Cuibuild: CMake: respect existing uninstall target by @j301scott (#1619) 368*01826a49SYabin Cuibuild: Make: skip multithread tests when built without support by @michaelforney (#1620) 369*01826a49SYabin Cuibuild: Make: Fix examples/ test target by @sjnam (#1603) 370*01826a49SYabin Cuibuild: Meson: rename options out of deprecated namespace by @lzutao (#1665) 371*01826a49SYabin Cuibuild: Meson: fix build by @lzutao (#1602) 372*01826a49SYabin Cuibuild: Visual Studio: don't export symbols in static lib by @scharan (#1650) 373*01826a49SYabin Cuibuild: Visual Studio: fix linking by @absotively (#1639) 374*01826a49SYabin Cuibuild: Fix MinGW-W64 build by @myzhang1029 (#1600) 375*01826a49SYabin Cuimisc: Expand decodecorpus coverage by @ephiepark (#1664) 376*01826a49SYabin Cui 377*01826a49SYabin Cuiv1.4.0 (Apr 17, 2019) 378*01826a49SYabin Cuiperf: Improve level 1 compression speed in most scenarios by 6% by @gbtucker and @terrelln 379*01826a49SYabin Cuiapi: Move the advanced API, including all functions in the staging section, to the stable section 380*01826a49SYabin Cuiapi: Make ZSTD_e_flush and ZSTD_e_end block for maximum forward progress 381*01826a49SYabin Cuiapi: Rename ZSTD_CCtxParam_getParameter to ZSTD_CCtxParams_getParameter 382*01826a49SYabin Cuiapi: Rename ZSTD_CCtxParam_setParameter to ZSTD_CCtxParams_setParameter 383*01826a49SYabin Cuiapi: Don't export ZSTDMT functions from the shared library by default 384*01826a49SYabin Cuiapi: Require ZSTD_MULTITHREAD to be defined to use ZSTDMT 385*01826a49SYabin Cuiapi: Add ZSTD_decompressBound() to provide an upper bound on decompressed size by @shakeelrao 386*01826a49SYabin Cuiapi: Fix ZSTD_decompressDCtx() corner cases with a dictionary 387*01826a49SYabin Cuiapi: Move ZSTD_getDictID_*() functions to the stable section 388*01826a49SYabin Cuiapi: Add ZSTD_c_literalCompressionMode flag to enable or disable literal compression by @terrelln 389*01826a49SYabin Cuiapi: Allow compression parameters to be set when a dictionary is used 390*01826a49SYabin Cuiapi: Allow setting parameters before or after ZSTD_CCtx_loadDictionary() is called 391*01826a49SYabin Cuiapi: Fix ZSTD_estimateCStreamSize_usingCCtxParams() 392*01826a49SYabin Cuiapi: Setting ZSTD_d_maxWindowLog to 0 means use the default 393*01826a49SYabin Cuicli: Ensure that a dictionary is not used to compress itself by @shakeelrao 394*01826a49SYabin Cuicli: Add --[no-]compress-literals flag to enable or disable literal compression 395*01826a49SYabin Cuidoc: Update the examples to use the advanced API 396*01826a49SYabin Cuidoc: Explain how to transition from old streaming functions to the advanced API in the header 397*01826a49SYabin Cuibuild: Improve the Windows release packages 398*01826a49SYabin Cuibuild: Improve CMake build by @hjmjohnson 399*01826a49SYabin Cuibuild: Build fixes for FreeBSD by @lwhsu 400*01826a49SYabin Cuibuild: Remove redundant warnings by @thatsafunnyname 401*01826a49SYabin Cuibuild: Fix tests on OpenBSD by @bket 402*01826a49SYabin Cuibuild: Extend fuzzer build system to work with the new clang engine 403*01826a49SYabin Cuibuild: CMake now creates the libzstd.so.1 symlink 404*01826a49SYabin Cuibuild: Improve Menson build by @lzutao 405*01826a49SYabin Cuimisc: Fix symbolic link detection on FreeBSD 406*01826a49SYabin Cuimisc: Use physical core count for -T0 on FreeBSD by @cemeyer 407*01826a49SYabin Cuimisc: Fix zstd --list on truncated files by @kostmo 408*01826a49SYabin Cuimisc: Improve logging in debug mode by @felixhandte 409*01826a49SYabin Cuimisc: Add CirrusCI tests by @lwhsu 410*01826a49SYabin Cuimisc: Optimize dictionary memory usage in corner cases 411*01826a49SYabin Cuimisc: Improve the dictionary builder on small or homogeneous data 412*01826a49SYabin Cuimisc: Fix spelling across the repo by @jsoref 413*01826a49SYabin Cui 414*01826a49SYabin Cuiv1.3.8 (Dec 28, 2018) 415*01826a49SYabin Cuiperf: better decompression speed on large files (+7%) and cold dictionaries (+15%) 416*01826a49SYabin Cuiperf: slightly better compression ratio at high compression modes 417*01826a49SYabin Cuiapi : finalized advanced API, last stage before "stable" status 418*01826a49SYabin Cuiapi : new --rsyncable mode, by @terrelln 419*01826a49SYabin Cuiapi : support decompression of empty frames into NULL (used to be an error) (#1385) 420*01826a49SYabin Cuibuild: new set of macros to build a minimal size decoder, by @felixhandte 421*01826a49SYabin Cuibuild: fix compilation on MIPS32, reported by @clbr (#1441) 422*01826a49SYabin Cuibuild: fix compilation with multiple -arch flags, by @ryandesign 423*01826a49SYabin Cuibuild: highly upgraded meson build, by @lzutao 424*01826a49SYabin Cuibuild: improved buck support, by @obelisk 425*01826a49SYabin Cuibuild: fix cmake script : can create debug build, by @pitrou 426*01826a49SYabin Cuibuild: Makefile : grep works on both colored consoles and systems without color support 427*01826a49SYabin Cuibuild: fixed zstd-pgo, by @bmwiedemann 428*01826a49SYabin Cuicli : support ZSTD_CLEVEL environment variable, by @yijinfb (#1423) 429*01826a49SYabin Cuicli : --no-progress flag, preserving final summary (#1371), by @terrelln 430*01826a49SYabin Cuicli : ensure destination file is not source file (#1422) 431*01826a49SYabin Cuicli : clearer error messages, especially when input file not present 432*01826a49SYabin Cuidoc : clarified zstd_compression_format.md, by @ulikunitz 433*01826a49SYabin Cuimisc: fixed zstdgrep, returns 1 on failure, by @lzutao 434*01826a49SYabin Cuimisc: NEWS renamed as CHANGELOG, in accordance with fboss 435*01826a49SYabin Cui 436*01826a49SYabin Cuiv1.3.7 (Oct 20, 2018) 437*01826a49SYabin Cuiperf: slightly better decompression speed on clang (depending on hardware target) 438*01826a49SYabin Cuifix : performance of dictionary compression for small input < 4 KB at levels 9 and 10 439*01826a49SYabin Cuibuild: no longer build backtrace by default in release mode; restrict further automatic mode 440*01826a49SYabin Cuibuild: control backtrace support through build macro BACKTRACE 441*01826a49SYabin Cuimisc: added man pages for zstdless and zstdgrep, by @samrussell 442*01826a49SYabin Cui 443*01826a49SYabin Cuiv1.3.6 (Oct 6, 2018) 444*01826a49SYabin Cuiperf: much faster dictionary builder, by @jenniferliu 445*01826a49SYabin Cuiperf: faster dictionary compression on small data when using multiple contexts, by @felixhandte 446*01826a49SYabin Cuiperf: faster dictionary decompression when using a very large number of dictionaries simultaneously 447*01826a49SYabin Cuicli : fix : does no longer overwrite destination when source does not exist (#1082) 448*01826a49SYabin Cuicli : new command --adapt, for automatic compression level adaptation 449*01826a49SYabin Cuiapi : fix : block api can be streamed with > 4 GB, reported by @catid 450*01826a49SYabin Cuiapi : reduced ZSTD_DDict size by 2 KB 451*01826a49SYabin Cuiapi : minimum negative compression level is defined, and can be queried using ZSTD_minCLevel(). 452*01826a49SYabin Cuibuild: support Haiku target, by @korli 453*01826a49SYabin Cuibuild: Read Legacy format is limited to v0.5+ by default. Can be changed at compile time with macro ZSTD_LEGACY_SUPPORT. 454*01826a49SYabin Cuidoc : zstd_compression_format.md updated to match wording in IETF RFC 8478 455*01826a49SYabin Cuimisc: tests/paramgrill, a parameter optimizer, by @GeorgeLu97 456*01826a49SYabin Cui 457*01826a49SYabin Cuiv1.3.5 (Jun 29, 2018) 458*01826a49SYabin Cuiperf: much faster dictionary compression, by @felixhandte 459*01826a49SYabin Cuiperf: small quality improvement for dictionary generation, by @terrelln 460*01826a49SYabin Cuiperf: slightly improved high compression levels (notably level 19) 461*01826a49SYabin Cuimem : automatic memory release for long duration contexts 462*01826a49SYabin Cuicli : fix : overlapLog can be manually set 463*01826a49SYabin Cuicli : fix : decoding invalid lz4 frames 464*01826a49SYabin Cuiapi : fix : performance degradation for dictionary compression when using advanced API, by @terrelln 465*01826a49SYabin Cuiapi : change : clarify ZSTD_CCtx_reset() vs ZSTD_CCtx_resetParameters(), by @terrelln 466*01826a49SYabin Cuibuild: select custom libzstd scope through control macros, by @GeorgeLu97 467*01826a49SYabin Cuibuild: OpenBSD patch, by @bket 468*01826a49SYabin Cuibuild: make and make all are compatible with -j 469*01826a49SYabin Cuidoc : clarify zstd_compression_format.md, updated for IETF RFC process 470*01826a49SYabin Cuimisc: pzstd compatible with reproducible compilation, by @lamby 471*01826a49SYabin Cui 472*01826a49SYabin Cuiv1.3.4 (Mar 27, 2018) 473*01826a49SYabin Cuiperf: faster speed (especially decoding speed) on recent cpus (haswell+) 474*01826a49SYabin Cuiperf: much better performance associating --long with multi-threading, by @terrelln 475*01826a49SYabin Cuiperf: better compression at levels 13-15 476*01826a49SYabin Cuicli : asynchronous compression by default, for faster experience (use --single-thread for former behavior) 477*01826a49SYabin Cuicli : smoother status report in multi-threading mode 478*01826a49SYabin Cuicli : added command --fast=#, for faster compression modes 479*01826a49SYabin Cuicli : fix crash when not overwriting existing files, by Pádraig Brady (@pixelb) 480*01826a49SYabin Cuiapi : `nbThreads` becomes `nbWorkers` : 1 triggers asynchronous mode 481*01826a49SYabin Cuiapi : compression levels can be negative, for even more speed 482*01826a49SYabin Cuiapi : ZSTD_getFrameProgression() : get precise progress status of ZSTDMT anytime 483*01826a49SYabin Cuiapi : ZSTDMT can accept new compression parameters during compression 484*01826a49SYabin Cuiapi : implemented all advanced dictionary decompression prototypes 485*01826a49SYabin Cuibuild: improved meson recipe, by Shawn Landden (@shawnl) 486*01826a49SYabin Cuibuild: VS2017 scripts, by @HaydnTrigg 487*01826a49SYabin Cuimisc: all /contrib projects fixed 488*01826a49SYabin Cuimisc: added /contrib/docker script by @gyscos 489*01826a49SYabin Cui 490*01826a49SYabin Cuiv1.3.3 (Dec 21, 2017) 491*01826a49SYabin Cuiperf: faster zstd_opt strategy (levels 16-19) 492*01826a49SYabin Cuifix : bug #944 : multithreading with shared ditionary and large data, reported by @gsliepen 493*01826a49SYabin Cuicli : fix : content size written in header by default 494*01826a49SYabin Cuicli : fix : improved LZ4 format support, by @felixhandte 495*01826a49SYabin Cuicli : new : hidden command `-S`, to benchmark multiple files while generating one result per file 496*01826a49SYabin Cuiapi : fix : support large skippable frames, by @terrelln 497*01826a49SYabin Cuiapi : fix : streaming interface was adding a useless 3-bytes null block to small frames 498*01826a49SYabin Cuiapi : change : when setting `pledgedSrcSize`, use `ZSTD_CONTENTSIZE_UNKNOWN` macro value to mean "unknown" 499*01826a49SYabin Cuibuild: fix : compilation under rhel6 and centos6, reported by @pixelb 500*01826a49SYabin Cuibuild: added `check` target 501*01826a49SYabin Cui 502*01826a49SYabin Cuiv1.3.2 (Oct 10, 2017) 503*01826a49SYabin Cuinew : long range mode, using --long command, by Stella Lau (@stellamplau) 504*01826a49SYabin Cuinew : ability to generate and decode magicless frames (#591) 505*01826a49SYabin Cuichanged : maximum nb of threads reduced to 200, to avoid address space exhaustion in 32-bits mode 506*01826a49SYabin Cuifix : multi-threading compression works with custom allocators 507*01826a49SYabin Cuifix : ZSTD_sizeof_CStream() was over-evaluating memory usage 508*01826a49SYabin Cuifix : a rare compression bug when compression generates very large distances and bunch of other conditions (only possible at --ultra -22) 509*01826a49SYabin Cuifix : 32-bits build can now decode large offsets (levels 21+) 510*01826a49SYabin Cuicli : added LZ4 frame support by default, by Felix Handte (@felixhandte) 511*01826a49SYabin Cuicli : improved --list output 512*01826a49SYabin Cuicli : new : can split input file for dictionary training, using command -B# 513*01826a49SYabin Cuicli : new : clean operation artefact on Ctrl-C interruption 514*01826a49SYabin Cuicli : fix : do not change /dev/null permissions when using command -t with root access, reported by @mike155 (#851) 515*01826a49SYabin Cuicli : fix : write file size in header in multiple-files mode 516*01826a49SYabin Cuiapi : added macro ZSTD_COMPRESSBOUND() for static allocation 517*01826a49SYabin Cuiapi : experimental : new advanced decompression API 518*01826a49SYabin Cuiapi : fix : sizeof_CCtx() used to over-estimate 519*01826a49SYabin Cuibuild: fix : no-multithread variant compiles without pool.c dependency, reported by Mitchell Blank Jr (@mitchblank) (#819) 520*01826a49SYabin Cuibuild: better compatibility with reproducible builds, by Bernhard M. Wiedemann (@bmwiedemann) (#818) 521*01826a49SYabin Cuiexample : added streaming_memory_usage 522*01826a49SYabin Cuilicense : changed /examples license to BSD + GPLv2 523*01826a49SYabin Cuilicense : fix a few header files to reflect new license (#825) 524*01826a49SYabin Cui 525*01826a49SYabin Cuiv1.3.1 (Aug 21, 2017) 526*01826a49SYabin CuiNew license : BSD + GPLv2 527*01826a49SYabin Cuiperf: substantially decreased memory usage in Multi-threading mode, thanks to reports by Tino Reichardt (@mcmilk) 528*01826a49SYabin Cuiperf: Multi-threading supports up to 256 threads. Cap at 256 when more are requested (#760) 529*01826a49SYabin Cuicli : improved and fixed --list command, by @ib (#772) 530*01826a49SYabin Cuicli : command -vV to list supported formats, by @ib (#771) 531*01826a49SYabin Cuibuild : fixed binary variants, reported by @svenha (#788) 532*01826a49SYabin Cuibuild : fix Visual compilation for non x86/x64 targets, reported by Greg Slazinski (@GregSlazinski) (#718) 533*01826a49SYabin CuiAPI exp : breaking change : ZSTD_getframeHeader() provides more information 534*01826a49SYabin CuiAPI exp : breaking change : pinned down values of error codes 535*01826a49SYabin Cuidoc : fixed huffman example, by Ulrich Kunitz (@ulikunitz) 536*01826a49SYabin Cuinew : contrib/adaptive-compression, I/O driven compression strength, by Paul Cruz (@paulcruz74) 537*01826a49SYabin Cuinew : contrib/long_distance_matching, statistics by Stella Lau (@stellamplau) 538*01826a49SYabin Cuiupdated : contrib/linux-kernel, by Nick Terrell (@terrelln) 539*01826a49SYabin Cui 540*01826a49SYabin Cuiv1.3.0 (Jul 6, 2017) 541*01826a49SYabin Cuicli : new : `--list` command, by Paul Cruz 542*01826a49SYabin Cuicli : changed : xz/lzma support enabled by default 543*01826a49SYabin Cuicli : changed : `-t *` continue processing list after a decompression error 544*01826a49SYabin CuiAPI : added : ZSTD_versionString() 545*01826a49SYabin CuiAPI : promoted to stable status : ZSTD_getFrameContentSize(), by Sean Purcell 546*01826a49SYabin CuiAPI exp : new advanced API : ZSTD_compress_generic(), ZSTD_CCtx_setParameter() 547*01826a49SYabin CuiAPI exp : new : API for static or external allocation : ZSTD_initStatic?Ctx() 548*01826a49SYabin CuiAPI exp : added : ZSTD_decompressBegin_usingDDict(), requested by Guy Riddle (#700) 549*01826a49SYabin CuiAPI exp : clarified memory estimation / measurement functions. 550*01826a49SYabin CuiAPI exp : changed : strongest strategy renamed ZSTD_btultra, fastest strategy ZSTD_fast set to 1 551*01826a49SYabin Cuitools : decodecorpus can generate random dictionary-compressed samples, by Paul Cruz 552*01826a49SYabin Cuinew : contrib/seekable_format, demo and API, by Sean Purcell 553*01826a49SYabin Cuichanged : contrib/linux-kernel, updated version and license, by Nick Terrell 554*01826a49SYabin Cui 555*01826a49SYabin Cuiv1.2.0 (May 5, 2017) 556*01826a49SYabin Cuicli : changed : Multithreading enabled by default (use target zstd-nomt or HAVE_THREAD=0 to disable) 557*01826a49SYabin Cuicli : new : command -T0 means "detect and use nb of cores", by Sean Purcell 558*01826a49SYabin Cuicli : new : zstdmt symlink hardwired to `zstd -T0` 559*01826a49SYabin Cuicli : new : command --threads=# (#671) 560*01826a49SYabin Cuicli : changed : cover dictionary builder by default, for improved quality, by Nick Terrell 561*01826a49SYabin Cuicli : new : commands --train-cover and --train-legacy, to select dictionary algorithm and parameters 562*01826a49SYabin Cuicli : experimental targets `zstd4` and `xzstd4`, with support for lz4 format, by Sean Purcell 563*01826a49SYabin Cuicli : fix : does not output compressed data on console 564*01826a49SYabin Cuicli : fix : ignore symbolic links unless --force specified, 565*01826a49SYabin CuiAPI : breaking change : ZSTD_createCDict_advanced(), only use compressionParameters as argument 566*01826a49SYabin CuiAPI : added : prototypes ZSTD_*_usingCDict_advanced(), for direct control over frameParameters. 567*01826a49SYabin CuiAPI : improved: ZSTDMT_compressCCtx() reduced memory usage 568*01826a49SYabin CuiAPI : fix : ZSTDMT_compressCCtx() now provides srcSize in header (#634) 569*01826a49SYabin CuiAPI : fix : src size stored in frame header is controlled at end of frame 570*01826a49SYabin CuiAPI : fix : enforced consistent rules for pledgedSrcSize==0 (#641) 571*01826a49SYabin CuiAPI : fix : error code "GENERIC" replaced by "dstSizeTooSmall" when appropriate 572*01826a49SYabin Cuibuild: improved cmake script, by @Majlen 573*01826a49SYabin Cuibuild: enabled Multi-threading support for *BSD, by Baptiste Daroussin 574*01826a49SYabin Cuitools: updated Paramgrill. Command -O# provides best parameters for sample and speed target. 575*01826a49SYabin Cuinew : contrib/linux-kernel version, by Nick Terrell 576*01826a49SYabin Cui 577*01826a49SYabin Cuiv1.1.4 (Mar 18, 2017) 578*01826a49SYabin Cuicli : new : can compress in *.gz format, using --format=gzip command, by Przemyslaw Skibinski 579*01826a49SYabin Cuicli : new : advanced benchmark command --priority=rt 580*01826a49SYabin Cuicli : fix : write on sparse-enabled file systems in 32-bits mode, by @ds77 581*01826a49SYabin Cuicli : fix : --rm remains silent when input is stdin 582*01826a49SYabin Cuicli : experimental : xzstd, with support for xz/lzma decoding, by Przemyslaw Skibinski 583*01826a49SYabin Cuispeed : improved decompression speed in streaming mode for single shot scenarios (+5%) 584*01826a49SYabin Cuimemory: DDict (decompression dictionary) memory usage down from 150 KB to 20 KB 585*01826a49SYabin Cuiarch: 32-bits variant able to generate and decode very long matches (>32 MB), by Sean Purcell 586*01826a49SYabin CuiAPI : new : ZSTD_findFrameCompressedSize(), ZSTD_getFrameContentSize(), ZSTD_findDecompressedSize() 587*01826a49SYabin CuiAPI : changed : dropped support of legacy versions <= v0.3 (can be changed by modifying ZSTD_LEGACY_SUPPORT value) 588*01826a49SYabin Cuibuild : new: meson build system in contrib/meson, by Dima Krasner 589*01826a49SYabin Cuibuild : improved cmake script, by @Majlen 590*01826a49SYabin Cuibuild : added -Wformat-security flag, as recommended by Padraig Brady 591*01826a49SYabin Cuidoc : new : educational decoder, by Sean Purcell 592*01826a49SYabin Cui 593*01826a49SYabin Cuiv1.1.3 (Feb 7, 2017) 594*01826a49SYabin Cuicli : zstd can decompress .gz files (can be disabled with `make zstd-nogz` or `make HAVE_ZLIB=0`) 595*01826a49SYabin Cuicli : new : experimental target `make zstdmt`, with multi-threading support 596*01826a49SYabin Cuicli : new : improved dictionary builder "cover" (experimental), by Nick Terrell, based on prior work by Giuseppe Ottaviano. 597*01826a49SYabin Cuicli : new : advanced commands for detailed parameters, by Przemyslaw Skibinski 598*01826a49SYabin Cuicli : fix zstdless on Mac OS-X, by Andrew Janke 599*01826a49SYabin Cuicli : fix #232 "compress non-files" 600*01826a49SYabin CuidictBuilder : improved dictionary generation quality, thanks to Nick Terrell 601*01826a49SYabin CuiAPI : new : lib/compress/ZSTDMT_compress.h multithreading API (experimental) 602*01826a49SYabin CuiAPI : new : ZSTD_create?Dict_byReference(), requested by Bartosz Taudul 603*01826a49SYabin CuiAPI : new : ZDICT_finalizeDictionary() 604*01826a49SYabin CuiAPI : fix : ZSTD_initCStream_usingCDict() properly writes dictID into frame header, by Gregory Szorc (#511) 605*01826a49SYabin CuiAPI : fix : all symbols properly exposed in libzstd, by Nick Terrell 606*01826a49SYabin Cuibuild : support for Solaris target, by Przemyslaw Skibinski 607*01826a49SYabin Cuidoc : clarified specification, by Sean Purcell 608*01826a49SYabin Cui 609*01826a49SYabin Cuiv1.1.2 (Dec 15, 2016) 610*01826a49SYabin CuiAPI : streaming : decompression : changed : automatic implicit reset when chain-decoding new frames without init 611*01826a49SYabin CuiAPI : experimental : added : dictID retrieval functions, and ZSTD_initCStream_srcSize() 612*01826a49SYabin CuiAPI : zbuff : changed : prototypes now generate deprecation warnings 613*01826a49SYabin Cuilib : improved : faster decompression speed at ultra compression settings and 32-bits mode 614*01826a49SYabin Cuilib : changed : only public ZSTD_ symbols are now exposed 615*01826a49SYabin Cuilib : changed : reduced usage of stack memory 616*01826a49SYabin Cuilib : fixed : several corner case bugs, by Nick Terrell 617*01826a49SYabin Cuicli : new : gzstd, experimental version able to decode .gz files, by Przemyslaw Skibinski 618*01826a49SYabin Cuicli : new : preserve file attributes 619*01826a49SYabin Cuicli : new : added zstdless and zstdgrep tools 620*01826a49SYabin Cuicli : fixed : status displays total amount decoded, even for file consisting of multiple frames (like pzstd) 621*01826a49SYabin Cuicli : fixed : zstdcat 622*01826a49SYabin Cuizlib_wrapper : added support for gz* functions, by Przemyslaw Skibinski 623*01826a49SYabin Cuiinstall : better compatibility with FreeBSD, by Dimitry Andric 624*01826a49SYabin Cuisource tree : changed : zbuff source files moved to lib/deprecated 625*01826a49SYabin Cui 626*01826a49SYabin Cuiv1.1.1 (Nov 2, 2016) 627*01826a49SYabin CuiNew : command -M#, --memory=, --memlimit=, --memlimit-decompress= to limit allowed memory consumption 628*01826a49SYabin CuiNew : doc/zstd_manual.html, by Przemyslaw Skibinski 629*01826a49SYabin CuiImproved : slightly better compression ratio at --ultra levels (>= 20) 630*01826a49SYabin CuiImproved : better memory usage when using streaming compression API, thanks to @Rogier-5 report 631*01826a49SYabin CuiAdded : API : ZSTD_initCStream_usingCDict(), ZSTD_initDStream_usingDDict() (experimental section) 632*01826a49SYabin CuiAdded : example/multiple_streaming_compression.c 633*01826a49SYabin CuiChanged : zstd_errors.h is now installed within /include (and replaces errors_public.h) 634*01826a49SYabin CuiUpdated man page 635*01826a49SYabin CuiFixed : zstd-small, zstd-compress and zstd-decompress compilation targets 636*01826a49SYabin Cui 637*01826a49SYabin Cuiv1.1.0 (Sep 28, 2016) 638*01826a49SYabin CuiNew : contrib/pzstd, parallel version of zstd, by Nick Terrell 639*01826a49SYabin Cuiadded : NetBSD install target (#338) 640*01826a49SYabin CuiImproved : speed for batches of small files 641*01826a49SYabin CuiImproved : speed of zlib wrapper, by Przemyslaw Skibinski 642*01826a49SYabin CuiChanged : libzstd on Windows supports legacy formats, by Christophe Chevalier 643*01826a49SYabin CuiFixed : CLI -d output to stdout by default when input is stdin (#322) 644*01826a49SYabin CuiFixed : CLI correctly detects console on Mac OS-X 645*01826a49SYabin CuiFixed : CLI supports recursive mode `-r` on Mac OS-X 646*01826a49SYabin CuiFixed : Legacy decoders use unified error codes, reported by benrg (#341), fixed by Przemyslaw Skibinski 647*01826a49SYabin CuiFixed : compatibility with OpenBSD, reported by Juan Francisco Cantero Hurtado (#319) 648*01826a49SYabin CuiFixed : compatibility with Hurd, by Przemyslaw Skibinski (#365) 649*01826a49SYabin CuiFixed : zstd-pgo, reported by octoploid (#329) 650*01826a49SYabin Cui 651*01826a49SYabin Cuiv1.0.0 (Sep 1, 2016) 652*01826a49SYabin CuiChange Licensing, all project is now BSD, Copyright Facebook 653*01826a49SYabin CuiSmall decompression speed improvement 654*01826a49SYabin CuiAPI : Streaming API supports legacy format 655*01826a49SYabin CuiAPI : ZDICT_getDictID(), ZSTD_sizeof_{CCtx, DCtx, CStream, DStream}(), ZSTD_setDStreamParameter() 656*01826a49SYabin CuiCLI supports legacy formats v0.4+ 657*01826a49SYabin CuiFixed : compression fails on certain huge files, reported by Jesse McGrew 658*01826a49SYabin CuiEnhanced documentation, by Przemyslaw Skibinski 659*01826a49SYabin Cui 660*01826a49SYabin Cuiv0.8.1 (Aug 18, 2016) 661*01826a49SYabin CuiNew streaming API 662*01826a49SYabin CuiChanged : --ultra now enables levels beyond 19 663*01826a49SYabin CuiChanged : -i# now selects benchmark time in second 664*01826a49SYabin CuiFixed : ZSTD_compress* can now compress > 4 GB in a single pass, reported by Nick Terrell 665*01826a49SYabin CuiFixed : speed regression on specific patterns (#272) 666*01826a49SYabin CuiFixed : support for Z_SYNC_FLUSH, by Dmitry Krot (#291) 667*01826a49SYabin CuiFixed : ICC compilation, by Przemyslaw Skibinski 668*01826a49SYabin Cui 669*01826a49SYabin Cuiv0.8.0 (Aug 2, 2016) 670*01826a49SYabin CuiImproved : better speed on clang and gcc -O2, thanks to Eric Biggers 671*01826a49SYabin CuiNew : Build on FreeBSD and DragonFly, thanks to JrMarino 672*01826a49SYabin CuiChanged : modified API : ZSTD_compressEnd() 673*01826a49SYabin CuiFixed : legacy mode with ZSTD_HEAPMODE=0, by Christopher Bergqvist 674*01826a49SYabin CuiFixed : premature end of frame when zero-sized raw block, reported by Eric Biggers 675*01826a49SYabin CuiFixed : large dictionaries (> 384 KB), reported by Ilona Papava 676*01826a49SYabin CuiFixed : checksum correctly checked in single-pass mode 677*01826a49SYabin CuiFixed : combined --test amd --rm, reported by Andreas M. Nilsson 678*01826a49SYabin CuiModified : minor compression level adaptations 679*01826a49SYabin CuiUpdated : compression format specification to v0.2.0 680*01826a49SYabin Cuichanged : zstd.h moved to /lib directory 681*01826a49SYabin Cui 682*01826a49SYabin Cuiv0.7.5 (Aug 1, 2016) 683*01826a49SYabin CuiTransition version, supporting decoding of v0.8.x 684*01826a49SYabin Cui 685*01826a49SYabin Cuiv0.7.4 (Jul 17, 2016) 686*01826a49SYabin CuiAdded : homebrew for Mac, by Daniel Cade 687*01826a49SYabin CuiAdded : more examples 688*01826a49SYabin CuiFixed : segfault when using small dictionaries, reported by Felix Handte 689*01826a49SYabin CuiModified : default compression level for CLI is now 3 690*01826a49SYabin CuiUpdated : specification, to v0.1.1 691*01826a49SYabin Cui 692*01826a49SYabin Cuiv0.7.3 (Jul 9, 2016) 693*01826a49SYabin CuiNew : compression format specification 694*01826a49SYabin CuiNew : `--` separator, stating that all following arguments are file names. Suggested by Chip Turner. 695*01826a49SYabin CuiNew : `ZSTD_getDecompressedSize()` 696*01826a49SYabin CuiNew : OpenBSD target, by Juan Francisco Cantero Hurtado 697*01826a49SYabin CuiNew : `examples` directory 698*01826a49SYabin Cuifixed : dictBuilder using HC levels, reported by Bartosz Taudul 699*01826a49SYabin Cuifixed : legacy support from ZSTD_decompress_usingDDict(), reported by Felix Handte 700*01826a49SYabin Cuifixed : multi-blocks decoding with intermediate uncompressed blocks, reported by Greg Slazinski 701*01826a49SYabin Cuimodified : removed "mem.h" and "error_public.h" dependencies from "zstd.h" (experimental section) 702*01826a49SYabin Cuimodified : legacy functions no longer need magic number 703*01826a49SYabin Cui 704*01826a49SYabin Cuiv0.7.2 (Jul 4, 2016) 705*01826a49SYabin Cuifixed : ZSTD_decompressBlock() using multiple consecutive blocks. Reported by Greg Slazinski. 706*01826a49SYabin Cuifixed : potential segfault on very large files (many gigabytes). Reported by Chip Turner. 707*01826a49SYabin Cuifixed : CLI displays system error message when destination file cannot be created (#231). Reported by Chip Turner. 708*01826a49SYabin Cui 709*01826a49SYabin Cuiv0.7.1 (Jun 23, 2016) 710*01826a49SYabin Cuifixed : ZBUFF_compressEnd() called multiple times with too small `dst` buffer, reported by Christophe Chevalier 711*01826a49SYabin Cuifixed : dictBuilder fails if first sample is too small, reported by Руслан Ковалёв 712*01826a49SYabin Cuifixed : corruption issue, reported by cj 713*01826a49SYabin Cuimodified : checksum enabled by default in command line mode 714*01826a49SYabin Cui 715*01826a49SYabin Cuiv0.7.0 (Jun 17, 2016) 716*01826a49SYabin CuiNew : Support for directory compression, using `-r`, thanks to Przemyslaw Skibinski 717*01826a49SYabin CuiNew : Command `--rm`, to remove source file after successful de/compression 718*01826a49SYabin CuiNew : Visual build scripts, by Christophe Chevalier 719*01826a49SYabin CuiNew : Support for Sparse File-systems (do not use space for zero-filled sectors) 720*01826a49SYabin CuiNew : Frame checksum support 721*01826a49SYabin CuiNew : Support pass-through mode (when using `-df`) 722*01826a49SYabin CuiAPI : more efficient Dictionary API : `ZSTD_compress_usingCDict()`, `ZSTD_decompress_usingDDict()` 723*01826a49SYabin CuiAPI : create dictionary files from custom content, by Giuseppe Ottaviano 724*01826a49SYabin CuiAPI : support for custom malloc/free functions 725*01826a49SYabin CuiNew : controllable Dictionary ID 726*01826a49SYabin CuiNew : Support for skippable frames 727*01826a49SYabin Cui 728*01826a49SYabin Cuiv0.6.1 (May 13, 2016) 729*01826a49SYabin CuiNew : zlib wrapper API, thanks to Przemyslaw Skibinski 730*01826a49SYabin CuiNew : Ability to compile compressor / decompressor separately 731*01826a49SYabin CuiChanged : new lib directory structure 732*01826a49SYabin CuiFixed : Legacy codec v0.5 compatible with dictionary decompression 733*01826a49SYabin CuiFixed : Decoder corruption error (#173) 734*01826a49SYabin CuiFixed : null-string roundtrip (#176) 735*01826a49SYabin CuiNew : benchmark mode can select directory as input 736*01826a49SYabin CuiExperimental : midipix support, VMS support 737*01826a49SYabin Cui 738*01826a49SYabin Cuiv0.6.0 (Apr 13, 2016) 739*01826a49SYabin CuiStronger high compression modes, thanks to Przemyslaw Skibinski 740*01826a49SYabin CuiAPI : ZSTD_getFrameParams() provides size of decompressed content 741*01826a49SYabin CuiNew : highest compression modes require `--ultra` command to fully unleash their capacity 742*01826a49SYabin CuiFixed : zstd cli return error code > 0 and removes dst file artifact when decompression fails, thanks to Chip Turner 743*01826a49SYabin Cui 744*01826a49SYabin Cuiv0.5.1 (Feb 18, 2016) 745*01826a49SYabin CuiNew : Optimal parsing => Very high compression modes, thanks to Przemyslaw Skibinski 746*01826a49SYabin CuiChanged : Dictionary builder integrated into libzstd and zstd cli 747*01826a49SYabin CuiChanged (!) : zstd cli now uses "multiple input files" as default mode. See `zstd -h`. 748*01826a49SYabin CuiFix : high compression modes for big-endian platforms 749*01826a49SYabin CuiNew : zstd cli : `-t` | `--test` command 750*01826a49SYabin Cui 751*01826a49SYabin Cuiv0.5.0 (Feb 5, 2016) 752*01826a49SYabin CuiNew : dictionary builder utility 753*01826a49SYabin CuiChanged : streaming & dictionary API 754*01826a49SYabin CuiImproved : better compression of small data 755*01826a49SYabin Cui 756*01826a49SYabin Cuiv0.4.7 (Jan 22, 2016) 757*01826a49SYabin CuiImproved : small compression speed improvement in HC mode 758*01826a49SYabin CuiChanged : `zstd_decompress.c` has ZSTD_LEGACY_SUPPORT to 0 by default 759*01826a49SYabin Cuifix : bt search bug 760*01826a49SYabin Cui 761*01826a49SYabin Cuiv0.4.6 (Jan 13, 2016) 762*01826a49SYabin Cuifix : fast compression mode on Windows 763*01826a49SYabin CuiNew : cmake configuration file, thanks to Artyom Dymchenko 764*01826a49SYabin CuiImproved : high compression mode on repetitive data 765*01826a49SYabin CuiNew : block-level API 766*01826a49SYabin CuiNew : ZSTD_duplicateCCtx() 767*01826a49SYabin Cui 768*01826a49SYabin Cuiv0.4.5 (Dec 18, 2015) 769*01826a49SYabin Cuinew : -m/--multiple : compress/decompress multiple files 770*01826a49SYabin Cui 771*01826a49SYabin Cuiv0.4.4 (Dec 14, 2015) 772*01826a49SYabin CuiFixed : high compression modes for Windows 32 bits 773*01826a49SYabin Cuinew : external dictionary API extended to buffered mode and accessible through command line 774*01826a49SYabin Cuinew : windows DLL project, thanks to Christophe Chevalier 775*01826a49SYabin Cui 776*01826a49SYabin Cuiv0.4.3 (Dec 7, 2015) 777*01826a49SYabin Cuinew : external dictionary API 778*01826a49SYabin Cuinew : zstd-frugal 779*01826a49SYabin Cui 780*01826a49SYabin Cuiv0.4.2 (Dec 2, 2015) 781*01826a49SYabin CuiGeneric minor improvements for small blocks 782*01826a49SYabin CuiFixed : big-endian compatibility, by Peter Harris (#85) 783*01826a49SYabin Cui 784*01826a49SYabin Cuiv0.4.1 (Dec 1, 2015) 785*01826a49SYabin CuiFixed : ZSTD_LEGACY_SUPPORT=0 build mode (reported by Luben) 786*01826a49SYabin Cuiremoved `zstd.c` 787*01826a49SYabin Cui 788*01826a49SYabin Cuiv0.4.0 (Nov 29, 2015) 789*01826a49SYabin CuiCommand line utility compatible with high compression levels 790*01826a49SYabin CuiRemoved zstdhc => merged into zstd 791*01826a49SYabin CuiAdded : ZBUFF API (see zstd_buffered.h) 792*01826a49SYabin CuiRolling buffer support 793*01826a49SYabin Cui 794*01826a49SYabin Cuiv0.3.6 (Nov 10, 2015) 795*01826a49SYabin Cuismall blocks params 796*01826a49SYabin Cui 797*01826a49SYabin Cuiv0.3.5 (Nov 9, 2015) 798*01826a49SYabin Cuiminor generic compression improvements 799*01826a49SYabin Cui 800*01826a49SYabin Cuiv0.3.4 (Nov 6, 2015) 801*01826a49SYabin CuiFaster fast cLevels 802*01826a49SYabin Cui 803*01826a49SYabin Cuiv0.3.3 (Nov 5, 2015) 804*01826a49SYabin CuiSmall compression ratio improvement 805*01826a49SYabin Cui 806*01826a49SYabin Cuiv0.3.2 (Nov 2, 2015) 807*01826a49SYabin CuiFixed Visual Studio 808*01826a49SYabin Cui 809*01826a49SYabin Cuiv0.3.1 (Nov 2, 2015) 810*01826a49SYabin CuiSmall compression ratio improvement 811*01826a49SYabin Cui 812*01826a49SYabin Cuiv0.3 (Oct 30, 2015) 813*01826a49SYabin CuiHC mode : compression levels 2-26 814*01826a49SYabin Cui 815*01826a49SYabin Cuiv0.2.2 (Oct 28, 2015) 816*01826a49SYabin CuiFix : Visual Studio 2013 & 2015 release compilation, by Christophe Chevalier 817*01826a49SYabin Cui 818*01826a49SYabin Cuiv0.2.1 (Oct 24, 2015) 819*01826a49SYabin CuiFix : Read errors, advanced fuzzer tests, by Hanno Böck 820*01826a49SYabin Cui 821*01826a49SYabin Cuiv0.2.0 (Oct 22, 2015) 822*01826a49SYabin Cui**Breaking format change** 823*01826a49SYabin CuiFaster decompression speed 824*01826a49SYabin CuiCan still decode v0.1 format 825*01826a49SYabin Cui 826*01826a49SYabin Cuiv0.1.3 (Oct 15, 2015) 827*01826a49SYabin Cuifix uninitialization warning, reported by Evan Nemerson 828*01826a49SYabin Cui 829*01826a49SYabin Cuiv0.1.2 (Sep 11, 2015) 830*01826a49SYabin Cuiframe concatenation support 831*01826a49SYabin Cui 832*01826a49SYabin Cuiv0.1.1 (Aug 27, 2015) 833*01826a49SYabin Cuifix compression bug 834*01826a49SYabin Cuidetects write-flush errors 835*01826a49SYabin Cui 836*01826a49SYabin Cuiv0.1.0 (Aug 25, 2015) 837*01826a49SYabin Cuifirst release 838