xref: /freebsd/sys/contrib/zstd/CHANGELOG (revision 5ff13fbc199bdf5f0572845351c68ee5ca828e71)
1*5ff13fbcSAllan Judev1.5.2 (Jan, 2022)
2*5ff13fbcSAllan Judeperf: Regain Minimal memset()-ing During Reuse of Compression Contexts (@Cyan4973, #2969)
3*5ff13fbcSAllan Judebuild: Build Zstd with `noexecstack` on All Architectures (@felixhandte, #2964)
4*5ff13fbcSAllan Judedoc: Clarify Licensing (@terrelln, #2981)
5*5ff13fbcSAllan Jude
6*5ff13fbcSAllan Judev1.5.1 (Dec, 2021)
7*5ff13fbcSAllan Judeperf: rebalanced compression levels, to better match the intended speed/level curve, by @senhuang42
8*5ff13fbcSAllan Judeperf: faster huffman decoder, using x64 assembly, by @terrelln
9*5ff13fbcSAllan Judeperf: slightly faster high speed modes (strategies fast & dfast), by @felixhandte
10*5ff13fbcSAllan Judeperf: improved binary size and faster compilation times, by @terrelln
11*5ff13fbcSAllan Judeperf: new row64 mode, used notably in level 12, by @senhuang42
12*5ff13fbcSAllan Judeperf: faster mid-level compression speed in presence of highly repetitive patterns, by @senhuang42
13*5ff13fbcSAllan Judeperf: minor compression ratio improvements for small data at high levels, by @cyan4973
14*5ff13fbcSAllan Judeperf: reduced stack usage (mostly useful for Linux Kernel), by @terrelln
15*5ff13fbcSAllan Judeperf: faster compression speed on incompressible data, by @bindhvo
16*5ff13fbcSAllan Judeperf: on-demand reduced ZSTD_DCtx state size, using build macro ZSTD_DECODER_INTERNAL_BUFFER, at a small cost of performance, by @bindhvo
17*5ff13fbcSAllan Judebuild: allows hiding static symbols in the dynamic library, using build macro, by @skitt
18*5ff13fbcSAllan Judebuild: support for m68k (Motorola 68000's), by @cyan4973
19*5ff13fbcSAllan Judebuild: improved AIX support, by @Helflym
20*5ff13fbcSAllan Judebuild: improved meson unofficial build, by @eli-schwartz
21*5ff13fbcSAllan Judecli : custom memory limit when training dictionary (#2925), by @embg
22*5ff13fbcSAllan Judecli : report advanced parameters information when compressing in very verbose mode (``-vv`), by @Svetlitski-FB
23*5ff13fbcSAllan Jude
24*5ff13fbcSAllan Judev1.5.0  (May 11, 2021)
25*5ff13fbcSAllan Judeapi: Various functions promoted from experimental to stable API: (#2579-2581, @senhuang42)
26*5ff13fbcSAllan Jude  `ZSTD_defaultCLevel()`
27*5ff13fbcSAllan Jude  `ZSTD_getDictID_fromCDict()`
28*5ff13fbcSAllan Judeapi: Several experimental functions have been deprecated and will emit a compiler warning (#2582, @senhuang42)
29*5ff13fbcSAllan Jude  `ZSTD_compress_advanced()`
30*5ff13fbcSAllan Jude  `ZSTD_compress_usingCDict_advanced()`
31*5ff13fbcSAllan Jude  `ZSTD_compressBegin_advanced()`
32*5ff13fbcSAllan Jude  `ZSTD_compressBegin_usingCDict_advanced()`
33*5ff13fbcSAllan Jude  `ZSTD_initCStream_srcSize()`
34*5ff13fbcSAllan Jude  `ZSTD_initCStream_usingDict()`
35*5ff13fbcSAllan Jude  `ZSTD_initCStream_usingCDict()`
36*5ff13fbcSAllan Jude  `ZSTD_initCStream_advanced()`
37*5ff13fbcSAllan Jude  `ZSTD_initCStream_usingCDict_advanced()`
38*5ff13fbcSAllan Jude  `ZSTD_resetCStream()`
39*5ff13fbcSAllan Judeapi: ZSTDMT_NBWORKERS_MAX reduced to 64 for 32-bit environments (@Cyan4973)
40*5ff13fbcSAllan Judeperf: Significant speed improvements for middle compression levels (#2494, @senhuang42 @terrelln)
41*5ff13fbcSAllan Judeperf: Block splitter to improve compression ratio, enabled by default for high compression levels (#2447, @senhuang42)
42*5ff13fbcSAllan Judeperf: Decompression loop refactor, speed improvements on `clang` and for `--long` modes (#2614 #2630, @Cyan4973)
43*5ff13fbcSAllan Judeperf: Reduced stack usage during compression and decompression entropy stage (#2522 #2524, @terrelln)
44*5ff13fbcSAllan Judebug: Improve setting permissions of created files (#2525, @felixhandte)
45*5ff13fbcSAllan Judebug: Fix large dictionary non-determinism (#2607, @terrelln)
46*5ff13fbcSAllan Judebug: Fix non-determinism test failures on Linux i686 (#2606, @terrelln)
47*5ff13fbcSAllan Judebug: Fix various dedicated dictionary search bugs (#2540 #2586, @senhuang42 @felixhandte)
48*5ff13fbcSAllan Judebug: Ensure `ZSTD_estimateCCtxSize*() `monotonically increases with compression level (#2538, @senhuang42)
49*5ff13fbcSAllan Judebug: Fix --patch-from mode parameter bound bug with small files (#2637, @occivink)
50*5ff13fbcSAllan Judebug: Fix UBSAN error in decompression (#2625, @terrelln)
51*5ff13fbcSAllan Judebug: Fix superblock compression divide by zero bug (#2592, @senhuang42)
52*5ff13fbcSAllan Judebug: Make the number of physical CPU cores detection more robust (#2517, @PaulBone)
53*5ff13fbcSAllan Judedoc: Improve `zdict.h` dictionary training API documentation (#2622, @terrelln)
54*5ff13fbcSAllan Judedoc: Note that public `ZSTD_free*()` functions accept NULL pointers (#2521, @animalize)
55*5ff13fbcSAllan Judedoc: Add style guide docs for open source contributors (#2626, @Cyan4973)
56*5ff13fbcSAllan Judetests: Better regression test coverage for different dictionary modes (#2559, @senhuang42)
57*5ff13fbcSAllan Judetests: Better test coverage of index reduction (#2603, @terrelln)
58*5ff13fbcSAllan Judetests: OSS-Fuzz coverage for seekable format (#2617, @senhuang42)
59*5ff13fbcSAllan Judetests: Test coverage for ZSTD threadpool API (#2604, @senhuang42)
60*5ff13fbcSAllan Judebuild: Dynamic library built multithreaded by default (#2584, @senhuang42)
61*5ff13fbcSAllan Judebuild: Move  `zstd_errors.h`  and  `zdict.h`  to  `lib/`  root (#2597, @terrelln)
62*5ff13fbcSAllan Judebuild: Allow `ZSTDMT_JOBSIZE_MIN` to be configured at compile-time, reduce default to 512KB (#2611, @Cyan4973)
63*5ff13fbcSAllan Judebuild: Single file library build script moved to `build/` directory (#2618, @felixhandte)
64*5ff13fbcSAllan Judebuild: `ZBUFF_*()` is no longer built by default (#2583, @senhuang42)
65*5ff13fbcSAllan Judebuild: Fixed Meson build (#2548, @SupervisedThinking @kloczek)
66*5ff13fbcSAllan Judebuild: Fix excessive compiler warnings with clang-cl and CMake (#2600, @nickhutchinson)
67*5ff13fbcSAllan Judebuild: Detect presence of `md5` on Darwin (#2609, @felixhandte)
68*5ff13fbcSAllan Judebuild: Avoid SIGBUS on armv6 (#2633, @bmwiedmann)
69*5ff13fbcSAllan Judecli: `--progress` flag added to always display progress bar (#2595, @senhuang42)
70*5ff13fbcSAllan Judecli: Allow reading from block devices with `--force` (#2613, @felixhandte)
71*5ff13fbcSAllan Judecli: Fix CLI filesize display bug (#2550, @Cyan4973)
72*5ff13fbcSAllan Judecli: Fix windows CLI `--filelist` end-of-line bug (#2620, @Cyan4973)
73*5ff13fbcSAllan Judecontrib: Various fixes for linux kernel patch (#2539, @terrelln)
74*5ff13fbcSAllan Judecontrib: Seekable format - Decompression hanging edge case fix (#2516, @senhuang42)
75*5ff13fbcSAllan Judecontrib: Seekable format - New seek table-only API  (#2113 #2518, @mdittmer @Cyan4973)
76*5ff13fbcSAllan Judecontrib: Seekable format - Fix seek table descriptor check when loading (#2534, @foxeng)
77*5ff13fbcSAllan Judecontrib: Seekable format - Decompression fix for large offsets, (#2594, @azat)
78*5ff13fbcSAllan Judemisc: Automatically published release tarballs available on Github (#2535, @felixhandte)
79*5ff13fbcSAllan Jude
80*5ff13fbcSAllan Judev1.4.9  (Mar 1, 2021)
81*5ff13fbcSAllan Judebug: Use `umask()` to Constrain Created File Permissions (#2495, @felixhandte)
82*5ff13fbcSAllan Judebug: Make Simple Single-Pass Functions Ignore Advanced Parameters (#2498, @terrelln)
83*5ff13fbcSAllan Judeapi: Add (De)Compression Tracing Functionality (#2482, @terrelln)
84*5ff13fbcSAllan Judeapi: Support References to Multiple DDicts (#2446, @senhuang42)
85*5ff13fbcSAllan Judeapi: Add Function to Generate Skippable Frame (#2439, @senhuang42)
86*5ff13fbcSAllan Judeperf: New Algorithms for the Long Distance Matcher (#2483, @mpu)
87*5ff13fbcSAllan Judeperf: Performance Improvements for Long Distance Matcher (#2464, @mpu)
88*5ff13fbcSAllan Judeperf: Don't Shrink Window Log when Streaming with a Dictionary (#2451, @terrelln)
89*5ff13fbcSAllan Judecli: Fix `--output-dir-mirror`'s Rejection of `..`-Containing Paths (#2512, @felixhandte)
90*5ff13fbcSAllan Judecli: Allow Input From Console When `-f`/`--force` is Passed (#2466, @felixhandte)
91*5ff13fbcSAllan Judecli: Improve Help Message (#2500, @senhuang42)
92*5ff13fbcSAllan Judetests: Remove Flaky Tests (#2455, #2486, #2445, @Cyan4973)
93*5ff13fbcSAllan Judetests: Correctly Invoke md5 Utility on NetBSD (#2492, @niacat)
94*5ff13fbcSAllan Judetests: Avoid Using `stat -c` on NetBSD (#2513, @felixhandte)
95*5ff13fbcSAllan Judebuild: Zstd CLI Can Now be Linked to Dynamic `libzstd` (#2457, #2454 @Cyan4973)
96*5ff13fbcSAllan Judebuild: Hide and Avoid Using Static-Only Symbols (#2501, #2504, @skitt)
97*5ff13fbcSAllan Judebuild: CMake: Enable Only C for lib/ and programs/ Projects (#2498, @concatime)
98*5ff13fbcSAllan Judebuild: CMake: Use `configure_file()` to Create the `.pc` File (#2462, @lazka)
99*5ff13fbcSAllan Judebuild: Fix Fuzzer Compiler Detection & Update UBSAN Flags (#2503, @terrelln)
100*5ff13fbcSAllan Judebuild: Add Guards for `_LARGEFILE_SOURCE` and `_LARGEFILE64_SOURCE` (#2444, @indygreg)
101*5ff13fbcSAllan Judebuild: Improve `zlibwrapper` Makefile (#2437, @Cyan4973)
102*5ff13fbcSAllan Judecontrib: Add `recover_directory` Program (#2473, @terrelln)
103*5ff13fbcSAllan Judedoc: Change License Year to 2021 (#2452 & #2465, @terrelln & @senhuang42)
104*5ff13fbcSAllan Judedoc: Fix Typos (#2459, @ThomasWaldmann)
105*5ff13fbcSAllan Jude
106f7cd7fe5SConrad Meyerv1.4.8  (Dec 18, 2020)
107f7cd7fe5SConrad Meyerhotfix: wrong alignment of an internal buffer
108f7cd7fe5SConrad Meyer
109f7cd7fe5SConrad Meyerv1.4.7  (Dec 16, 2020)
110f7cd7fe5SConrad Meyerperf: stronger --long mode at high compression levels, by @senhuang42
111f7cd7fe5SConrad Meyerperf: stronger --patch-from at high compression levels, thanks to --long improvements
112f7cd7fe5SConrad Meyerperf: faster dictionary compression at medium compression levels, by @felixhandte
113f7cd7fe5SConrad Meyerperf: small speed & memory usage improvements for ZSTD_compress2(), by @terrelln
114f7cd7fe5SConrad Meyerperf: improved fast compression speeds with Visual Studio, by @animalize
115f7cd7fe5SConrad Meyercli : Set nb of threads with environment variable ZSTD_NBTHREADS, by @senhuang42
116f7cd7fe5SConrad Meyercli : accept decompressing files with *.zstd suffix
117f7cd7fe5SConrad Meyercli : provide a condensed summary by default when processing multiple files
118f7cd7fe5SConrad Meyercli : fix : stdin input no longer confused as user prompt
119f7cd7fe5SConrad Meyercli : improve accuracy of several error messages
120f7cd7fe5SConrad Meyerapi : new sequence ingestion API, by @senhuang42
121f7cd7fe5SConrad Meyerapi : shared thread pool: control total nb of threads used by multiple compression jobs, by @marxin
122f7cd7fe5SConrad Meyerapi : new ZSTD_getDictID_fromCDict(), by @LuAPi
123f7cd7fe5SConrad Meyerapi : zlibWrapper only uses public API, and is compatible with dynamic library, by @terrelln
124f7cd7fe5SConrad Meyerapi : fix : multithreaded compression has predictable output even in special cases (see #2327) (issue not accessible from cli)
125f7cd7fe5SConrad Meyerapi : fix : dictionary compression correctly respects dictionary compression level (see #2303) (issue not accessible from cli)
126f7cd7fe5SConrad Meyerbuild: fix cmake script when using path with spaces, by @terrelln
127f7cd7fe5SConrad Meyerbuild: improved compile-time detection of aarch64/neon platforms, by @bsdimp
128f7cd7fe5SConrad Meyerbuild: Fix building on AIX 5.1, by @likema
129f7cd7fe5SConrad Meyerbuild: compile paramgrill with cmake on Windows, requested by @mirh
130f7cd7fe5SConrad Meyerdoc : clarify repcode updates in format specification, by @felixhandte
131f7cd7fe5SConrad Meyer
132f7cd7fe5SConrad Meyerv1.4.6
133f7cd7fe5SConrad Meyerfix : Always return dstSize_tooSmall when that is the case
134f7cd7fe5SConrad Meyerfix : Fix ZSTD_initCStream_advanced() with static allocation and no dictionary
135f7cd7fe5SConrad Meyerperf: Improve small block decompression speed by 20%+, by @terrelln
136f7cd7fe5SConrad Meyerperf: Reduce compression stack usage by 1 KB, by @terrelln
137f7cd7fe5SConrad Meyerperf: Improve decompression speed by improving ZSTD_wildcopy, by @helloguo (#2252, #2256)
138f7cd7fe5SConrad Meyerperf: Improve histogram construction, by @cyan4973 (#2253)
139f7cd7fe5SConrad Meyercli : Add --output-dir-mirror option, by @xxie24 (#2219)
140f7cd7fe5SConrad Meyercli : Warn when (de)compressing multiple files into a single output, by @senhuang42 (#2279)
141f7cd7fe5SConrad Meyercli : Improved progress bar and status summary when (de)compressing multiple files, by @senhuang42 (#2283)
142f7cd7fe5SConrad Meyercli : Call stat less often, by @felixhandte (#2262)
143f7cd7fe5SConrad Meyercli : Allow --patch-from XXX and --filelist XXX in addition to --patch-from=XXX and --filelist=XXX, by @cyan4973 (#2250)
144f7cd7fe5SConrad Meyercli : Allow --patch-from to compress stdin with --stream-size, by @bimbashrestha (#2206)
145f7cd7fe5SConrad Meyerapi : Do not install zbuff.h, since it has long been deprecated, by @cyan4973 (#2166).
146f7cd7fe5SConrad Meyerapi : Fix ZSTD_CCtx_setParameter() with ZSTD_c_compressionLevel to make 0 mean default level, by @i-do-cpp (#2291)
147f7cd7fe5SConrad Meyerapi : Rename ZSTDMT_NBTHREADS_MAX to ZSTDMT_NBWORKERS_MAX, by @marxin (#2228).
148f7cd7fe5SConrad Meyerbuild: Install pkg-config file with CMake and MinGW, by @tonytheodore (#2183)
149f7cd7fe5SConrad Meyerbuild: Install DLL with CMake on Windows, by @BioDataAnalysis (#2221)
150f7cd7fe5SConrad Meyerbuild: Fix DLL install location with CMake, by @xantares and @bimbashrestha (#2186)
151f7cd7fe5SConrad Meyerbuild: Add ZSTD_NO_UNUSED_FUNCTIONS macro to hide unused functions
152f7cd7fe5SConrad Meyerbuild: Add ZSTD_NO_INTRINSICS macro to avoid explicit intrinsics
153f7cd7fe5SConrad Meyerbuild: Add STATIC_BMI2 macro for compile time detection of BMI2 on MSVC, by @Niadb (#2258)
154f7cd7fe5SConrad Meyerbuild: Fix -Wcomma warnings, by @cwoffenden
155f7cd7fe5SConrad Meyerbuild: Remove distutils requirement for meson build, by @neheb (#2197)
156f7cd7fe5SConrad Meyerbuild: Fix cli compilation with uclibc
157f7cd7fe5SConrad Meyerbuild: Fix cli compilation without st_mtime, by @ffontaine (#2246)
158f7cd7fe5SConrad Meyerbuild: Fix shadowing warnings in library
159f7cd7fe5SConrad Meyerbuild: Fix single file library compilation with Enscripten, by @yoshihitoh (#2227)
160f7cd7fe5SConrad Meyermisc: Improve single file library and include dictBuilder, by @cwoffenden
161f7cd7fe5SConrad Meyermisc: Allow compression dictionaries with missing symbols
162f7cd7fe5SConrad Meyermisc: Add freestanding translation script in contrib/freestanding_lib
163f7cd7fe5SConrad Meyermisc: Collect all of zstd's libc dependencies into zstd_deps.h
164f7cd7fe5SConrad Meyerdoc : Add ZSTD_versionString() to manual, by @animalize
165f7cd7fe5SConrad Meyerdoc : Fix documentation for ZSTD_CCtxParams_setParameter(), by @felixhandte (#2270)
166f7cd7fe5SConrad Meyer
167f7cd7fe5SConrad Meyerv1.4.5  (May 22, 2020)
16837f1f268SConrad Meyerfix : Compression ratio regression on huge files (> 3 GB) using high levels (--ultra) and multithreading, by @terrelln
16937f1f268SConrad Meyerperf: Improved decompression speed: x64 : +10% (clang) / +5% (gcc); ARM : from +15% to +50%, depending on SoC, by @terrelln
17037f1f268SConrad Meyerperf: Automatically downsizes ZSTD_DCtx when too large for too long (#2069, by @bimbashreshta)
17137f1f268SConrad Meyerperf: Improved fast compression speed on aarch64 (#2040, ~+3%, by @caoyzh)
17237f1f268SConrad Meyerperf: Small level 1 compression speed gains (depending on compiler)
17337f1f268SConrad Meyercli : New --patch-from command, create and apply patches from files, by @bimbashreshta
17437f1f268SConrad Meyercli : New --filelist= : Provide a list of files to operate upon from a file
17537f1f268SConrad Meyercli : -b -d command can now benchmark decompression on multiple files
17637f1f268SConrad Meyercli : New --no-content-size command
17737f1f268SConrad Meyercli : New --show-default-cparams information command
17837f1f268SConrad Meyerapi : ZDICT_finalizeDictionary() is promoted to stable (#2111)
17937f1f268SConrad Meyerapi : new experimental parameter ZSTD_d_stableOutBuffer (#2094)
18037f1f268SConrad Meyerbuild: Generate a single-file libzstd library (#2065, by @cwoffenden)
18137f1f268SConrad Meyerbuild: Relative includes no longer require -I compiler flags for zstd lib subdirs (#2103, by @felixhandte)
18237f1f268SConrad Meyerbuild: zstd now compiles cleanly under -pedantic (#2099)
18337f1f268SConrad Meyerbuild: zstd now compiles with make-4.3
18437f1f268SConrad Meyerbuild: Support mingw cross-compilation from Linux, by @Ericson2314
18537f1f268SConrad Meyerbuild: Meson multi-thread build fix on windows
18637f1f268SConrad Meyerbuild: Some misc icc fixes backed by new ci test on travis
18737f1f268SConrad Meyermisc: bitflip analyzer tool, by @felixhandte
18837f1f268SConrad Meyermisc: Extend largeNbDicts benchmark to compression
18937f1f268SConrad Meyermisc: Edit-distance match finder in contrib/
19037f1f268SConrad Meyerdoc : Improved beginner CONTRIBUTING.md docs
19137f1f268SConrad Meyerdoc : New issue templates for zstd
19237f1f268SConrad Meyer
193f7cd7fe5SConrad Meyerv1.4.4  (Nov 6, 2019)
1949cbefe25SConrad Meyerperf: Improved decompression speed, by > 10%, by @terrelln
1959cbefe25SConrad Meyerperf: Better compression speed when re-using a context, by @felixhandte
1969cbefe25SConrad Meyerperf: Fix compression ratio when compressing large files with small dictionary, by @senhuang42
1979cbefe25SConrad Meyerperf: zstd reference encoder can generate RLE blocks, by @bimbashrestha
1989cbefe25SConrad Meyerperf: minor generic speed optimization, by @davidbolvansky
1999cbefe25SConrad Meyerapi: new ability to extract sequences from the parser for analysis, by @bimbashrestha
2009cbefe25SConrad Meyerapi: fixed decoding of magic-less frames, by @terrelln
2019cbefe25SConrad Meyerapi: fixed ZSTD_initCStream_advanced() performance with fast modes, reported by @QrczakMK
2029cbefe25SConrad Meyercli: Named pipes support, by @bimbashrestha
2039cbefe25SConrad Meyercli: short tar's extension support, by @stokito
2049cbefe25SConrad Meyercli: command --output-dir-flat= , generates target files into requested directory, by @senhuang42
2059cbefe25SConrad Meyercli: commands --stream-size=# and --size-hint=#, by @nmagerko
2069cbefe25SConrad Meyercli: command --exclude-compressed, by @shashank0791
2079cbefe25SConrad Meyercli: faster `-t` test mode
2089cbefe25SConrad Meyercli: improved some error messages, by @vangyzen
20937f1f268SConrad Meyercli: fix command `-D dictionary` on Windows, reported by @artyompetrov
21037f1f268SConrad Meyercli: fix rare deadlock condition within dictionary builder, by @terrelln
2119cbefe25SConrad Meyerbuild: single-file decoder with emscripten compilation script, by @cwoffenden
2129cbefe25SConrad Meyerbuild: fixed zlibWrapper compilation on Visual Studio, reported by @bluenlive
2139cbefe25SConrad Meyerbuild: fixed deprecation warning for certain gcc version, reported by @jasonma163
2149cbefe25SConrad Meyerbuild: fix compilation on old gcc versions, by @cemeyer
2159cbefe25SConrad Meyerbuild: improved installation directories for cmake script, by Dmitri Shubin
2169cbefe25SConrad Meyerpack: modified pkgconfig, for better integration into openwrt, requested by @neheb
2179cbefe25SConrad Meyermisc: Improved documentation : ZSTD_CLEVEL, DYNAMIC_BMI2, ZSTD_CDict, function deprecation, zstd format
2189cbefe25SConrad Meyermisc: fixed educational decoder : accept larger literals section, and removed UNALIGNED() macro
2199cbefe25SConrad Meyer
220f7cd7fe5SConrad Meyerv1.4.3  (Aug 20, 2019)
2219cbefe25SConrad Meyerbug: Fix Dictionary Compression Ratio Regression by @cyan4973 (#1709)
2229cbefe25SConrad Meyerbug: Fix Buffer Overflow in legacy v0.3 decompression by @felixhandte (#1722)
2239cbefe25SConrad Meyerbuild: Add support for IAR C/C++ Compiler for Arm by @joseph0918 (#1705)
2249cbefe25SConrad Meyer
225f7cd7fe5SConrad Meyerv1.4.2  (Jul 26, 2019)
2264d3f1eafSConrad Meyerbug: Fix bug in zstd-0.5 decoder by @terrelln (#1696)
2274d3f1eafSConrad Meyerbug: Fix seekable decompression in-memory API by @iburinoc (#1695)
2284d3f1eafSConrad Meyermisc: Validate blocks are smaller than size limit by @vivekmg (#1685)
2294d3f1eafSConrad Meyermisc: Restructure source files by @ephiepark (#1679)
2304d3f1eafSConrad Meyer
231f7cd7fe5SConrad Meyerv1.4.1  (Jul 20, 2019)
2324d3f1eafSConrad Meyerbug: Fix data corruption in niche use cases by @terrelln (#1659)
2334d3f1eafSConrad Meyerbug: Fuzz legacy modes, fix uncovered bugs by @terrelln (#1593, #1594, #1595)
2344d3f1eafSConrad Meyerbug: Fix out of bounds read by @terrelln (#1590)
2354d3f1eafSConrad Meyerperf: Improve decode speed by ~7% @mgrice (#1668)
2364d3f1eafSConrad Meyerperf: Slightly improved compression ratio of level 3 and 4 (ZSTD_dfast) by @cyan4973 (#1681)
2374d3f1eafSConrad Meyerperf: Slightly faster compression speed when re-using a context by @cyan4973 (#1658)
2384d3f1eafSConrad Meyerperf: Improve compression ratio for small windowLog by @cyan4973 (#1624)
2394d3f1eafSConrad Meyerperf: Faster compression speed in high compression mode for repetitive data by @terrelln (#1635)
2404d3f1eafSConrad Meyerapi: Add parameter to generate smaller dictionaries by @tyler-tran (#1656)
2414d3f1eafSConrad Meyercli: Recognize symlinks when built in C99 mode by @felixhandte (#1640)
2424d3f1eafSConrad Meyercli: Expose cpu load indicator for each file on -vv mode by @ephiepark (#1631)
2434d3f1eafSConrad Meyercli: Restrict read permissions on destination files by @chungy (#1644)
2444d3f1eafSConrad Meyercli: zstdgrep: handle -f flag by @felixhandte (#1618)
2454d3f1eafSConrad Meyercli: zstdcat: follow symlinks by @vejnar (#1604)
2464d3f1eafSConrad Meyerdoc: Remove extra size limit on compressed blocks by @felixhandte (#1689)
2474d3f1eafSConrad Meyerdoc: Fix typo by @yk-tanigawa (#1633)
2484d3f1eafSConrad Meyerdoc: Improve documentation on streaming buffer sizes by @cyan4973 (#1629)
2494d3f1eafSConrad Meyerbuild: CMake: support building with LZ4 @leeyoung624 (#1626)
2504d3f1eafSConrad Meyerbuild: CMake: install zstdless and zstdgrep by @leeyoung624 (#1647)
2514d3f1eafSConrad Meyerbuild: CMake: respect existing uninstall target by @j301scott (#1619)
2524d3f1eafSConrad Meyerbuild: Make: skip multithread tests when built without support by @michaelforney (#1620)
2534d3f1eafSConrad Meyerbuild: Make: Fix examples/ test target by @sjnam (#1603)
2544d3f1eafSConrad Meyerbuild: Meson: rename options out of deprecated namespace by @lzutao (#1665)
2554d3f1eafSConrad Meyerbuild: Meson: fix build by @lzutao (#1602)
2564d3f1eafSConrad Meyerbuild: Visual Studio: don't export symbols in static lib by @scharan (#1650)
2574d3f1eafSConrad Meyerbuild: Visual Studio: fix linking by @absotively (#1639)
2584d3f1eafSConrad Meyerbuild: Fix MinGW-W64 build by @myzhang1029 (#1600)
2594d3f1eafSConrad Meyermisc: Expand decodecorpus coverage by @ephiepark (#1664)
2604d3f1eafSConrad Meyer
261f7cd7fe5SConrad Meyerv1.4.0  (Apr 17, 2019)
2622b9c00cbSConrad Meyerperf: Improve level 1 compression speed in most scenarios by 6% by @gbtucker and @terrelln
2632b9c00cbSConrad Meyerapi: Move the advanced API, including all functions in the staging section, to the stable section
2642b9c00cbSConrad Meyerapi: Make ZSTD_e_flush and ZSTD_e_end block for maximum forward progress
2652b9c00cbSConrad Meyerapi: Rename ZSTD_CCtxParam_getParameter to ZSTD_CCtxParams_getParameter
2662b9c00cbSConrad Meyerapi: Rename ZSTD_CCtxParam_setParameter to ZSTD_CCtxParams_setParameter
2672b9c00cbSConrad Meyerapi: Don't export ZSTDMT functions from the shared library by default
2682b9c00cbSConrad Meyerapi: Require ZSTD_MULTITHREAD to be defined to use ZSTDMT
2692b9c00cbSConrad Meyerapi: Add ZSTD_decompressBound() to provide an upper bound on decompressed size by @shakeelrao
2702b9c00cbSConrad Meyerapi: Fix ZSTD_decompressDCtx() corner cases with a dictionary
2712b9c00cbSConrad Meyerapi: Move ZSTD_getDictID_*() functions to the stable section
2722b9c00cbSConrad Meyerapi: Add ZSTD_c_literalCompressionMode flag to enable or disable literal compression by @terrelln
2732b9c00cbSConrad Meyerapi: Allow compression parameters to be set when a dictionary is used
2742b9c00cbSConrad Meyerapi: Allow setting parameters before or after ZSTD_CCtx_loadDictionary() is called
2752b9c00cbSConrad Meyerapi: Fix ZSTD_estimateCStreamSize_usingCCtxParams()
2762b9c00cbSConrad Meyerapi: Setting ZSTD_d_maxWindowLog to 0 means use the default
2772b9c00cbSConrad Meyercli: Ensure that a dictionary is not used to compress itself by @shakeelrao
2782b9c00cbSConrad Meyercli: Add --[no-]compress-literals flag to enable or disable literal compression
2792b9c00cbSConrad Meyerdoc: Update the examples to use the advanced API
2802b9c00cbSConrad Meyerdoc: Explain how to transition from old streaming functions to the advanced API in the header
2812b9c00cbSConrad Meyerbuild: Improve the Windows release packages
2822b9c00cbSConrad Meyerbuild: Improve CMake build by @hjmjohnson
2832b9c00cbSConrad Meyerbuild: Build fixes for FreeBSD by @lwhsu
2842b9c00cbSConrad Meyerbuild: Remove redundant warnings by @thatsafunnyname
2852b9c00cbSConrad Meyerbuild: Fix tests on OpenBSD by @bket
2862b9c00cbSConrad Meyerbuild: Extend fuzzer build system to work with the new clang engine
2872b9c00cbSConrad Meyerbuild: CMake now creates the libzstd.so.1 symlink
2882b9c00cbSConrad Meyerbuild: Improve Menson build by @lzutao
2892b9c00cbSConrad Meyermisc: Fix symbolic link detection on FreeBSD
2902b9c00cbSConrad Meyermisc: Use physical core count for -T0 on FreeBSD by @cemeyer
2912b9c00cbSConrad Meyermisc: Fix zstd --list on truncated files by @kostmo
2922b9c00cbSConrad Meyermisc: Improve logging in debug mode by @felixhandte
2932b9c00cbSConrad Meyermisc: Add CirrusCI tests by @lwhsu
2942b9c00cbSConrad Meyermisc: Optimize dictionary memory usage in corner cases
2952b9c00cbSConrad Meyermisc: Improve the dictionary builder on small or homogeneous data
2962b9c00cbSConrad Meyermisc: Fix spelling across the repo by @jsoref
2972b9c00cbSConrad Meyer
298f7cd7fe5SConrad Meyerv1.3.8  (Dec 28, 2018)
2992b9c00cbSConrad Meyerperf: better decompression speed on large files (+7%) and cold dictionaries (+15%)
3002b9c00cbSConrad Meyerperf: slightly better compression ratio at high compression modes
3012b9c00cbSConrad Meyerapi : finalized advanced API, last stage before "stable" status
3022b9c00cbSConrad Meyerapi : new --rsyncable mode, by @terrelln
3032b9c00cbSConrad Meyerapi : support decompression of empty frames into NULL (used to be an error) (#1385)
3042b9c00cbSConrad Meyerbuild: new set of macros to build a minimal size decoder, by @felixhandte
3052b9c00cbSConrad Meyerbuild: fix compilation on MIPS32, reported by @clbr (#1441)
3062b9c00cbSConrad Meyerbuild: fix compilation with multiple -arch flags, by @ryandesign
3072b9c00cbSConrad Meyerbuild: highly upgraded meson build, by @lzutao
3082b9c00cbSConrad Meyerbuild: improved buck support, by @obelisk
3092b9c00cbSConrad Meyerbuild: fix cmake script : can create debug build, by @pitrou
3102b9c00cbSConrad Meyerbuild: Makefile : grep works on both colored consoles and systems without color support
3112b9c00cbSConrad Meyerbuild: fixed zstd-pgo, by @bmwiedemann
3122b9c00cbSConrad Meyercli : support ZSTD_CLEVEL environment variable, by @yijinfb (#1423)
3132b9c00cbSConrad Meyercli : --no-progress flag, preserving final summary (#1371), by @terrelln
3142b9c00cbSConrad Meyercli : ensure destination file is not source file (#1422)
3152b9c00cbSConrad Meyercli : clearer error messages, especially when input file not present
3162b9c00cbSConrad Meyerdoc : clarified zstd_compression_format.md, by @ulikunitz
3172b9c00cbSConrad Meyermisc: fixed zstdgrep, returns 1 on failure, by @lzutao
3182b9c00cbSConrad Meyermisc: NEWS renamed as CHANGELOG, in accordance with fboss
3192b9c00cbSConrad Meyer
320f7cd7fe5SConrad Meyerv1.3.7  (Oct 20, 2018)
3212b9c00cbSConrad Meyerperf: slightly better decompression speed on clang (depending on hardware target)
3222b9c00cbSConrad Meyerfix : performance of dictionary compression for small input < 4 KB at levels 9 and 10
3232b9c00cbSConrad Meyerbuild: no longer build backtrace by default in release mode; restrict further automatic mode
3242b9c00cbSConrad Meyerbuild: control backtrace support through build macro BACKTRACE
3252b9c00cbSConrad Meyermisc: added man pages for zstdless and zstdgrep, by @samrussell
3262b9c00cbSConrad Meyer
327f7cd7fe5SConrad Meyerv1.3.6  (Oct 6, 2018)
3282b9c00cbSConrad Meyerperf: much faster dictionary builder, by @jenniferliu
3292b9c00cbSConrad Meyerperf: faster dictionary compression on small data when using multiple contexts, by @felixhandte
3302b9c00cbSConrad Meyerperf: faster dictionary decompression when using a very large number of dictionaries simultaneously
3312b9c00cbSConrad Meyercli : fix : does no longer overwrite destination when source does not exist (#1082)
3322b9c00cbSConrad Meyercli : new command --adapt, for automatic compression level adaptation
3332b9c00cbSConrad Meyerapi : fix : block api can be streamed with > 4 GB, reported by @catid
3342b9c00cbSConrad Meyerapi : reduced ZSTD_DDict size by 2 KB
3352b9c00cbSConrad Meyerapi : minimum negative compression level is defined, and can be queried using ZSTD_minCLevel().
3362b9c00cbSConrad Meyerbuild: support Haiku target, by @korli
3372b9c00cbSConrad Meyerbuild: Read Legacy format is limited to v0.5+ by default. Can be changed at compile time with macro ZSTD_LEGACY_SUPPORT.
3382b9c00cbSConrad Meyerdoc : zstd_compression_format.md updated to match wording in IETF RFC 8478
3392b9c00cbSConrad Meyermisc: tests/paramgrill, a parameter optimizer, by @GeorgeLu97
3402b9c00cbSConrad Meyer
341f7cd7fe5SConrad Meyerv1.3.5  (Jun 29, 2018)
3422b9c00cbSConrad Meyerperf: much faster dictionary compression, by @felixhandte
3432b9c00cbSConrad Meyerperf: small quality improvement for dictionary generation, by @terrelln
3442b9c00cbSConrad Meyerperf: slightly improved high compression levels (notably level 19)
3452b9c00cbSConrad Meyermem : automatic memory release for long duration contexts
3462b9c00cbSConrad Meyercli : fix : overlapLog can be manually set
3472b9c00cbSConrad Meyercli : fix : decoding invalid lz4 frames
3482b9c00cbSConrad Meyerapi : fix : performance degradation for dictionary compression when using advanced API, by @terrelln
3492b9c00cbSConrad Meyerapi : change : clarify ZSTD_CCtx_reset() vs ZSTD_CCtx_resetParameters(), by @terrelln
3502b9c00cbSConrad Meyerbuild: select custom libzstd scope through control macros, by @GeorgeLu97
3512b9c00cbSConrad Meyerbuild: OpenBSD patch, by @bket
3522b9c00cbSConrad Meyerbuild: make and make all are compatible with -j
3532b9c00cbSConrad Meyerdoc : clarify zstd_compression_format.md, updated for IETF RFC process
3542b9c00cbSConrad Meyermisc: pzstd compatible with reproducible compilation, by @lamby
3552b9c00cbSConrad Meyer
356f7cd7fe5SConrad Meyerv1.3.4  (Mar 27, 2018)
3572b9c00cbSConrad Meyerperf: faster speed (especially decoding speed) on recent cpus (haswell+)
3582b9c00cbSConrad Meyerperf: much better performance associating --long with multi-threading, by @terrelln
3592b9c00cbSConrad Meyerperf: better compression at levels 13-15
3602b9c00cbSConrad Meyercli : asynchronous compression by default, for faster experience (use --single-thread for former behavior)
3612b9c00cbSConrad Meyercli : smoother status report in multi-threading mode
3622b9c00cbSConrad Meyercli : added command --fast=#, for faster compression modes
3632b9c00cbSConrad Meyercli : fix crash when not overwriting existing files, by Pádraig Brady (@pixelb)
3642b9c00cbSConrad Meyerapi : `nbThreads` becomes `nbWorkers` : 1 triggers asynchronous mode
3652b9c00cbSConrad Meyerapi : compression levels can be negative, for even more speed
3662b9c00cbSConrad Meyerapi : ZSTD_getFrameProgression() : get precise progress status of ZSTDMT anytime
3672b9c00cbSConrad Meyerapi : ZSTDMT can accept new compression parameters during compression
3682b9c00cbSConrad Meyerapi : implemented all advanced dictionary decompression prototypes
3692b9c00cbSConrad Meyerbuild: improved meson recipe, by Shawn Landden (@shawnl)
3702b9c00cbSConrad Meyerbuild: VS2017 scripts, by @HaydnTrigg
3712b9c00cbSConrad Meyermisc: all /contrib projects fixed
3722b9c00cbSConrad Meyermisc: added /contrib/docker script by @gyscos
3732b9c00cbSConrad Meyer
374f7cd7fe5SConrad Meyerv1.3.3  (Dec 21, 2017)
3752b9c00cbSConrad Meyerperf: faster zstd_opt strategy (levels 16-19)
3762b9c00cbSConrad Meyerfix : bug #944 : multithreading with shared ditionary and large data, reported by @gsliepen
3772b9c00cbSConrad Meyercli : fix : content size written in header by default
3782b9c00cbSConrad Meyercli : fix : improved LZ4 format support, by @felixhandte
3792b9c00cbSConrad Meyercli : new : hidden command `-S`, to benchmark multiple files while generating one result per file
3802b9c00cbSConrad Meyerapi : fix : support large skippable frames, by @terrelln
3812b9c00cbSConrad Meyerapi : fix : streaming interface was adding a useless 3-bytes null block to small frames
3822b9c00cbSConrad Meyerapi : change : when setting `pledgedSrcSize`, use `ZSTD_CONTENTSIZE_UNKNOWN` macro value to mean "unknown"
3832b9c00cbSConrad Meyerbuild: fix : compilation under rhel6 and centos6, reported by @pixelb
3842b9c00cbSConrad Meyerbuild: added `check` target
3852b9c00cbSConrad Meyer
386f7cd7fe5SConrad Meyerv1.3.2  (Oct 10, 2017)
3872b9c00cbSConrad Meyernew : long range mode, using --long command, by Stella Lau (@stellamplau)
3882b9c00cbSConrad Meyernew : ability to generate and decode magicless frames (#591)
3892b9c00cbSConrad Meyerchanged : maximum nb of threads reduced to 200, to avoid address space exhaustion in 32-bits mode
3902b9c00cbSConrad Meyerfix : multi-threading compression works with custom allocators
3912b9c00cbSConrad Meyerfix : ZSTD_sizeof_CStream() was over-evaluating memory usage
3922b9c00cbSConrad Meyerfix : a rare compression bug when compression generates very large distances and bunch of other conditions (only possible at --ultra -22)
3932b9c00cbSConrad Meyerfix : 32-bits build can now decode large offsets (levels 21+)
3942b9c00cbSConrad Meyercli : added LZ4 frame support by default, by Felix Handte (@felixhandte)
3952b9c00cbSConrad Meyercli : improved --list output
3962b9c00cbSConrad Meyercli : new : can split input file for dictionary training, using command -B#
3972b9c00cbSConrad Meyercli : new : clean operation artefact on Ctrl-C interruption
3982b9c00cbSConrad Meyercli : fix : do not change /dev/null permissions when using command -t with root access, reported by @mike155 (#851)
3992b9c00cbSConrad Meyercli : fix : write file size in header in multiple-files mode
4002b9c00cbSConrad Meyerapi : added macro ZSTD_COMPRESSBOUND() for static allocation
4012b9c00cbSConrad Meyerapi : experimental : new advanced decompression API
4022b9c00cbSConrad Meyerapi : fix : sizeof_CCtx() used to over-estimate
4032b9c00cbSConrad Meyerbuild: fix : no-multithread variant compiles without pool.c dependency, reported by Mitchell Blank Jr (@mitchblank) (#819)
4042b9c00cbSConrad Meyerbuild: better compatibility with reproducible builds, by Bernhard M. Wiedemann (@bmwiedemann) (#818)
4052b9c00cbSConrad Meyerexample : added streaming_memory_usage
4062b9c00cbSConrad Meyerlicense : changed /examples license to BSD + GPLv2
4072b9c00cbSConrad Meyerlicense : fix a few header files to reflect new license (#825)
4082b9c00cbSConrad Meyer
409f7cd7fe5SConrad Meyerv1.3.1  (Aug 21, 2017)
4102b9c00cbSConrad MeyerNew license : BSD + GPLv2
4112b9c00cbSConrad Meyerperf: substantially decreased memory usage in Multi-threading mode, thanks to reports by Tino Reichardt (@mcmilk)
4122b9c00cbSConrad Meyerperf: Multi-threading supports up to 256 threads. Cap at 256 when more are requested (#760)
4132b9c00cbSConrad Meyercli : improved and fixed --list command, by @ib (#772)
4142b9c00cbSConrad Meyercli : command -vV to list supported formats, by @ib (#771)
4152b9c00cbSConrad Meyerbuild : fixed binary variants, reported by @svenha (#788)
4162b9c00cbSConrad Meyerbuild : fix Visual compilation for non x86/x64 targets, reported by Greg Slazinski (@GregSlazinski) (#718)
4172b9c00cbSConrad MeyerAPI exp : breaking change : ZSTD_getframeHeader() provides more information
4182b9c00cbSConrad MeyerAPI exp : breaking change : pinned down values of error codes
4192b9c00cbSConrad Meyerdoc : fixed huffman example, by Ulrich Kunitz (@ulikunitz)
4202b9c00cbSConrad Meyernew : contrib/adaptive-compression, I/O driven compression strength, by Paul Cruz (@paulcruz74)
4212b9c00cbSConrad Meyernew : contrib/long_distance_matching, statistics by Stella Lau (@stellamplau)
4222b9c00cbSConrad Meyerupdated : contrib/linux-kernel, by Nick Terrell (@terrelln)
4232b9c00cbSConrad Meyer
424f7cd7fe5SConrad Meyerv1.3.0  (Jul 6, 2017)
4252b9c00cbSConrad Meyercli : new : `--list` command, by Paul Cruz
4262b9c00cbSConrad Meyercli : changed : xz/lzma support enabled by default
4272b9c00cbSConrad Meyercli : changed : `-t *` continue processing list after a decompression error
4282b9c00cbSConrad MeyerAPI : added : ZSTD_versionString()
4292b9c00cbSConrad MeyerAPI : promoted to stable status : ZSTD_getFrameContentSize(), by Sean Purcell
4302b9c00cbSConrad MeyerAPI exp : new advanced API : ZSTD_compress_generic(), ZSTD_CCtx_setParameter()
4312b9c00cbSConrad MeyerAPI exp : new : API for static or external allocation : ZSTD_initStatic?Ctx()
4322b9c00cbSConrad MeyerAPI exp : added : ZSTD_decompressBegin_usingDDict(), requested by Guy Riddle (#700)
4332b9c00cbSConrad MeyerAPI exp : clarified memory estimation / measurement functions.
4342b9c00cbSConrad MeyerAPI exp : changed : strongest strategy renamed ZSTD_btultra, fastest strategy ZSTD_fast set to 1
4352b9c00cbSConrad Meyertools : decodecorpus can generate random dictionary-compressed samples, by Paul Cruz
4362b9c00cbSConrad Meyernew : contrib/seekable_format, demo and API, by Sean Purcell
4372b9c00cbSConrad Meyerchanged : contrib/linux-kernel, updated version and license, by Nick Terrell
4382b9c00cbSConrad Meyer
439f7cd7fe5SConrad Meyerv1.2.0  (May 5, 2017)
4402b9c00cbSConrad Meyercli : changed : Multithreading enabled by default (use target zstd-nomt or HAVE_THREAD=0 to disable)
4412b9c00cbSConrad Meyercli : new : command -T0 means "detect and use nb of cores", by Sean Purcell
4422b9c00cbSConrad Meyercli : new : zstdmt symlink hardwired to `zstd -T0`
4432b9c00cbSConrad Meyercli : new : command --threads=# (#671)
4442b9c00cbSConrad Meyercli : changed : cover dictionary builder by default, for improved quality, by Nick Terrell
4452b9c00cbSConrad Meyercli : new : commands --train-cover and --train-legacy, to select dictionary algorithm and parameters
4462b9c00cbSConrad Meyercli : experimental targets `zstd4` and `xzstd4`, with support for lz4 format, by Sean Purcell
4472b9c00cbSConrad Meyercli : fix : does not output compressed data on console
4482b9c00cbSConrad Meyercli : fix : ignore symbolic links unless --force specified,
4492b9c00cbSConrad MeyerAPI : breaking change : ZSTD_createCDict_advanced(), only use compressionParameters as argument
4502b9c00cbSConrad MeyerAPI : added : prototypes ZSTD_*_usingCDict_advanced(), for direct control over frameParameters.
4512b9c00cbSConrad MeyerAPI : improved: ZSTDMT_compressCCtx() reduced memory usage
4522b9c00cbSConrad MeyerAPI : fix : ZSTDMT_compressCCtx() now provides srcSize in header (#634)
4532b9c00cbSConrad MeyerAPI : fix : src size stored in frame header is controlled at end of frame
4542b9c00cbSConrad MeyerAPI : fix : enforced consistent rules for pledgedSrcSize==0 (#641)
4552b9c00cbSConrad MeyerAPI : fix : error code "GENERIC" replaced by "dstSizeTooSmall" when appropriate
4562b9c00cbSConrad Meyerbuild: improved cmake script, by @Majlen
4572b9c00cbSConrad Meyerbuild: enabled Multi-threading support for *BSD, by Baptiste Daroussin
4582b9c00cbSConrad Meyertools: updated Paramgrill. Command -O# provides best parameters for sample and speed target.
4592b9c00cbSConrad Meyernew : contrib/linux-kernel version, by Nick Terrell
4602b9c00cbSConrad Meyer
461f7cd7fe5SConrad Meyerv1.1.4  (Mar 18, 2017)
4622b9c00cbSConrad Meyercli : new : can compress in *.gz format, using --format=gzip command, by Przemyslaw Skibinski
4632b9c00cbSConrad Meyercli : new : advanced benchmark command --priority=rt
4642b9c00cbSConrad Meyercli : fix : write on sparse-enabled file systems in 32-bits mode, by @ds77
4652b9c00cbSConrad Meyercli : fix : --rm remains silent when input is stdin
4662b9c00cbSConrad Meyercli : experimental : xzstd, with support for xz/lzma decoding, by Przemyslaw Skibinski
4672b9c00cbSConrad Meyerspeed : improved decompression speed in streaming mode for single shot scenarios (+5%)
4682b9c00cbSConrad Meyermemory: DDict (decompression dictionary) memory usage down from 150 KB to 20 KB
4692b9c00cbSConrad Meyerarch: 32-bits variant able to generate and decode very long matches (>32 MB), by Sean Purcell
4702b9c00cbSConrad MeyerAPI : new : ZSTD_findFrameCompressedSize(), ZSTD_getFrameContentSize(), ZSTD_findDecompressedSize()
4712b9c00cbSConrad MeyerAPI : changed : dropped support of legacy versions <= v0.3 (can be changed by modifying ZSTD_LEGACY_SUPPORT value)
4722b9c00cbSConrad Meyerbuild : new: meson build system in contrib/meson, by Dima Krasner
4732b9c00cbSConrad Meyerbuild : improved cmake script, by @Majlen
4742b9c00cbSConrad Meyerbuild : added -Wformat-security flag, as recommended by Padraig Brady
4752b9c00cbSConrad Meyerdoc : new : educational decoder, by Sean Purcell
4762b9c00cbSConrad Meyer
477f7cd7fe5SConrad Meyerv1.1.3  (Feb 7, 2017)
4782b9c00cbSConrad Meyercli : zstd can decompress .gz files (can be disabled with `make zstd-nogz` or `make HAVE_ZLIB=0`)
4792b9c00cbSConrad Meyercli : new : experimental target `make zstdmt`, with multi-threading support
4802b9c00cbSConrad Meyercli : new : improved dictionary builder "cover" (experimental), by Nick Terrell, based on prior work by Giuseppe Ottaviano.
4812b9c00cbSConrad Meyercli : new : advanced commands for detailed parameters, by Przemyslaw Skibinski
4822b9c00cbSConrad Meyercli : fix zstdless on Mac OS-X, by Andrew Janke
4832b9c00cbSConrad Meyercli : fix #232 "compress non-files"
4842b9c00cbSConrad MeyerdictBuilder : improved dictionary generation quality, thanks to Nick Terrell
4852b9c00cbSConrad MeyerAPI : new : lib/compress/ZSTDMT_compress.h multithreading API (experimental)
4862b9c00cbSConrad MeyerAPI : new : ZSTD_create?Dict_byReference(), requested by Bartosz Taudul
4872b9c00cbSConrad MeyerAPI : new : ZDICT_finalizeDictionary()
4882b9c00cbSConrad MeyerAPI : fix : ZSTD_initCStream_usingCDict() properly writes dictID into frame header, by Gregory Szorc (#511)
4892b9c00cbSConrad MeyerAPI : fix : all symbols properly exposed in libzstd, by Nick Terrell
4902b9c00cbSConrad Meyerbuild : support for Solaris target, by Przemyslaw Skibinski
4912b9c00cbSConrad Meyerdoc : clarified specification, by Sean Purcell
4922b9c00cbSConrad Meyer
493f7cd7fe5SConrad Meyerv1.1.2  (Dec 15, 2016)
4942b9c00cbSConrad MeyerAPI : streaming : decompression : changed : automatic implicit reset when chain-decoding new frames without init
4952b9c00cbSConrad MeyerAPI : experimental : added : dictID retrieval functions, and ZSTD_initCStream_srcSize()
4962b9c00cbSConrad MeyerAPI : zbuff : changed : prototypes now generate deprecation warnings
4972b9c00cbSConrad Meyerlib : improved : faster decompression speed at ultra compression settings and 32-bits mode
4982b9c00cbSConrad Meyerlib : changed : only public ZSTD_ symbols are now exposed
4992b9c00cbSConrad Meyerlib : changed : reduced usage  of stack memory
5002b9c00cbSConrad Meyerlib : fixed : several corner case bugs, by Nick Terrell
5012b9c00cbSConrad Meyercli : new : gzstd, experimental version able to decode .gz files, by Przemyslaw Skibinski
5022b9c00cbSConrad Meyercli : new : preserve file attributes
5032b9c00cbSConrad Meyercli : new : added zstdless and zstdgrep tools
5042b9c00cbSConrad Meyercli : fixed : status displays total amount decoded, even for file consisting of multiple frames (like pzstd)
5052b9c00cbSConrad Meyercli : fixed : zstdcat
5062b9c00cbSConrad Meyerzlib_wrapper : added support for gz* functions, by Przemyslaw Skibinski
5072b9c00cbSConrad Meyerinstall : better compatibility with FreeBSD, by Dimitry Andric
5082b9c00cbSConrad Meyersource tree : changed : zbuff source files moved to lib/deprecated
5092b9c00cbSConrad Meyer
510f7cd7fe5SConrad Meyerv1.1.1  (Nov 2, 2016)
5112b9c00cbSConrad MeyerNew : command -M#, --memory=, --memlimit=, --memlimit-decompress= to limit allowed memory consumption
5122b9c00cbSConrad MeyerNew : doc/zstd_manual.html, by Przemyslaw Skibinski
5132b9c00cbSConrad MeyerImproved : slightly better compression ratio at --ultra levels (>= 20)
5142b9c00cbSConrad MeyerImproved : better memory usage when using streaming compression API, thanks to @Rogier-5 report
5152b9c00cbSConrad MeyerAdded : API : ZSTD_initCStream_usingCDict(), ZSTD_initDStream_usingDDict() (experimental section)
5162b9c00cbSConrad MeyerAdded : example/multiple_streaming_compression.c
5172b9c00cbSConrad MeyerChanged : zstd_errors.h is now installed within /include (and replaces errors_public.h)
5182b9c00cbSConrad MeyerUpdated man page
5192b9c00cbSConrad MeyerFixed : zstd-small, zstd-compress and zstd-decompress compilation targets
5202b9c00cbSConrad Meyer
521f7cd7fe5SConrad Meyerv1.1.0  (Sep 28, 2016)
5222b9c00cbSConrad MeyerNew : contrib/pzstd, parallel version of zstd, by Nick Terrell
5232b9c00cbSConrad Meyeradded : NetBSD install target (#338)
5242b9c00cbSConrad MeyerImproved : speed for batches of small files
5252b9c00cbSConrad MeyerImproved : speed of zlib wrapper, by Przemyslaw Skibinski
5262b9c00cbSConrad MeyerChanged : libzstd on Windows supports legacy formats, by Christophe Chevalier
5272b9c00cbSConrad MeyerFixed : CLI -d output to stdout by default when input is stdin (#322)
5282b9c00cbSConrad MeyerFixed : CLI correctly detects console on Mac OS-X
5292b9c00cbSConrad MeyerFixed : CLI supports recursive mode `-r` on Mac OS-X
5302b9c00cbSConrad MeyerFixed : Legacy decoders use unified error codes, reported by benrg (#341), fixed by Przemyslaw Skibinski
5312b9c00cbSConrad MeyerFixed : compatibility with OpenBSD, reported by Juan Francisco Cantero Hurtado (#319)
5322b9c00cbSConrad MeyerFixed : compatibility with Hurd, by Przemyslaw Skibinski (#365)
5332b9c00cbSConrad MeyerFixed : zstd-pgo, reported by octoploid (#329)
5342b9c00cbSConrad Meyer
535f7cd7fe5SConrad Meyerv1.0.0  (Sep 1, 2016)
5362b9c00cbSConrad MeyerChange Licensing, all project is now BSD, Copyright Facebook
5372b9c00cbSConrad MeyerSmall decompression speed improvement
5382b9c00cbSConrad MeyerAPI : Streaming API supports legacy format
5392b9c00cbSConrad MeyerAPI : ZDICT_getDictID(), ZSTD_sizeof_{CCtx, DCtx, CStream, DStream}(), ZSTD_setDStreamParameter()
5402b9c00cbSConrad MeyerCLI supports legacy formats v0.4+
5412b9c00cbSConrad MeyerFixed : compression fails on certain huge files, reported by Jesse McGrew
5422b9c00cbSConrad MeyerEnhanced documentation, by Przemyslaw Skibinski
5432b9c00cbSConrad Meyer
544f7cd7fe5SConrad Meyerv0.8.1  (Aug 18, 2016)
5452b9c00cbSConrad MeyerNew streaming API
5462b9c00cbSConrad MeyerChanged : --ultra now enables levels beyond 19
5472b9c00cbSConrad MeyerChanged : -i# now selects benchmark time in second
5482b9c00cbSConrad MeyerFixed : ZSTD_compress* can now compress > 4 GB in a single pass, reported by Nick Terrell
5492b9c00cbSConrad MeyerFixed : speed regression on specific patterns (#272)
5502b9c00cbSConrad MeyerFixed : support for Z_SYNC_FLUSH, by Dmitry Krot (#291)
5512b9c00cbSConrad MeyerFixed : ICC compilation, by Przemyslaw Skibinski
5522b9c00cbSConrad Meyer
553f7cd7fe5SConrad Meyerv0.8.0  (Aug 2, 2016)
5542b9c00cbSConrad MeyerImproved : better speed on clang and gcc -O2, thanks to Eric Biggers
5552b9c00cbSConrad MeyerNew : Build on FreeBSD and DragonFly, thanks to JrMarino
5562b9c00cbSConrad MeyerChanged : modified API : ZSTD_compressEnd()
5572b9c00cbSConrad MeyerFixed : legacy mode with ZSTD_HEAPMODE=0, by Christopher Bergqvist
5582b9c00cbSConrad MeyerFixed : premature end of frame when zero-sized raw block, reported by Eric Biggers
5592b9c00cbSConrad MeyerFixed : large dictionaries (> 384 KB), reported by Ilona Papava
5602b9c00cbSConrad MeyerFixed : checksum correctly checked in single-pass mode
5612b9c00cbSConrad MeyerFixed : combined --test amd --rm, reported by Andreas M. Nilsson
5622b9c00cbSConrad MeyerModified : minor compression level adaptations
5632b9c00cbSConrad MeyerUpdated : compression format specification to v0.2.0
5642b9c00cbSConrad Meyerchanged : zstd.h moved to /lib directory
5652b9c00cbSConrad Meyer
566f7cd7fe5SConrad Meyerv0.7.5  (Aug 1, 2016)
5672b9c00cbSConrad MeyerTransition version, supporting decoding of v0.8.x
5682b9c00cbSConrad Meyer
569f7cd7fe5SConrad Meyerv0.7.4  (Jul 17, 2016)
5702b9c00cbSConrad MeyerAdded : homebrew for Mac, by Daniel Cade
5712b9c00cbSConrad MeyerAdded : more examples
5722b9c00cbSConrad MeyerFixed : segfault when using small dictionaries, reported by Felix Handte
5732b9c00cbSConrad MeyerModified : default compression level for CLI is now 3
5742b9c00cbSConrad MeyerUpdated : specification, to v0.1.1
5752b9c00cbSConrad Meyer
576f7cd7fe5SConrad Meyerv0.7.3  (Jul 9, 2016)
5772b9c00cbSConrad MeyerNew : compression format specification
5782b9c00cbSConrad MeyerNew : `--` separator, stating that all following arguments are file names. Suggested by Chip Turner.
5792b9c00cbSConrad MeyerNew : `ZSTD_getDecompressedSize()`
5802b9c00cbSConrad MeyerNew : OpenBSD target, by Juan Francisco Cantero Hurtado
5812b9c00cbSConrad MeyerNew : `examples` directory
5822b9c00cbSConrad Meyerfixed : dictBuilder using HC levels, reported by Bartosz Taudul
5832b9c00cbSConrad Meyerfixed : legacy support from ZSTD_decompress_usingDDict(), reported by Felix Handte
5842b9c00cbSConrad Meyerfixed : multi-blocks decoding with intermediate uncompressed blocks, reported by Greg Slazinski
5852b9c00cbSConrad Meyermodified : removed "mem.h" and "error_public.h" dependencies from "zstd.h" (experimental section)
5862b9c00cbSConrad Meyermodified : legacy functions no longer need magic number
5872b9c00cbSConrad Meyer
588f7cd7fe5SConrad Meyerv0.7.2  (Jul 4, 2016)
5892b9c00cbSConrad Meyerfixed : ZSTD_decompressBlock() using multiple consecutive blocks. Reported by Greg Slazinski.
5902b9c00cbSConrad Meyerfixed : potential segfault on very large files (many gigabytes). Reported by Chip Turner.
5912b9c00cbSConrad Meyerfixed : CLI displays system error message when destination file cannot be created (#231). Reported by Chip Turner.
5922b9c00cbSConrad Meyer
593f7cd7fe5SConrad Meyerv0.7.1  (Jun 23, 2016)
5942b9c00cbSConrad Meyerfixed : ZBUFF_compressEnd() called multiple times with too small `dst` buffer, reported by Christophe Chevalier
5952b9c00cbSConrad Meyerfixed : dictBuilder fails if first sample is too small, reported by Руслан Ковалёв
5962b9c00cbSConrad Meyerfixed : corruption issue, reported by cj
5972b9c00cbSConrad Meyermodified : checksum enabled by default in command line mode
5982b9c00cbSConrad Meyer
599f7cd7fe5SConrad Meyerv0.7.0  (Jun 17, 2016)
6002b9c00cbSConrad MeyerNew : Support for directory compression, using `-r`, thanks to Przemyslaw Skibinski
6012b9c00cbSConrad MeyerNew : Command `--rm`, to remove source file after successful de/compression
6022b9c00cbSConrad MeyerNew : Visual build scripts, by Christophe Chevalier
6032b9c00cbSConrad MeyerNew : Support for Sparse File-systems (do not use space for zero-filled sectors)
6042b9c00cbSConrad MeyerNew : Frame checksum support
6052b9c00cbSConrad MeyerNew : Support pass-through mode (when using `-df`)
6062b9c00cbSConrad MeyerAPI : more efficient Dictionary API : `ZSTD_compress_usingCDict()`, `ZSTD_decompress_usingDDict()`
6072b9c00cbSConrad MeyerAPI : create dictionary files from custom content, by Giuseppe Ottaviano
6082b9c00cbSConrad MeyerAPI : support for custom malloc/free functions
6092b9c00cbSConrad MeyerNew : controllable Dictionary ID
6102b9c00cbSConrad MeyerNew : Support for skippable frames
6112b9c00cbSConrad Meyer
612f7cd7fe5SConrad Meyerv0.6.1  (May 13, 2016)
6132b9c00cbSConrad MeyerNew : zlib wrapper API, thanks to Przemyslaw Skibinski
6142b9c00cbSConrad MeyerNew : Ability to compile compressor / decompressor separately
6152b9c00cbSConrad MeyerChanged : new lib directory structure
6162b9c00cbSConrad MeyerFixed : Legacy codec v0.5 compatible with dictionary decompression
6172b9c00cbSConrad MeyerFixed : Decoder corruption error (#173)
6182b9c00cbSConrad MeyerFixed : null-string roundtrip (#176)
6192b9c00cbSConrad MeyerNew : benchmark mode can select directory as input
6202b9c00cbSConrad MeyerExperimental : midipix support, VMS support
6212b9c00cbSConrad Meyer
622f7cd7fe5SConrad Meyerv0.6.0  (Apr 13, 2016)
6232b9c00cbSConrad MeyerStronger high compression modes, thanks to Przemyslaw Skibinski
6242b9c00cbSConrad MeyerAPI : ZSTD_getFrameParams() provides size of decompressed content
6252b9c00cbSConrad MeyerNew : highest compression modes require `--ultra` command to fully unleash their capacity
6262b9c00cbSConrad MeyerFixed : zstd cli return error code > 0 and removes dst file artifact when decompression fails, thanks to Chip Turner
6272b9c00cbSConrad Meyer
628f7cd7fe5SConrad Meyerv0.5.1  (Feb 18, 2016)
6292b9c00cbSConrad MeyerNew : Optimal parsing => Very high compression modes, thanks to Przemyslaw Skibinski
6302b9c00cbSConrad MeyerChanged : Dictionary builder integrated into libzstd and zstd cli
6312b9c00cbSConrad MeyerChanged (!) : zstd cli now uses "multiple input files" as default mode. See `zstd -h`.
6322b9c00cbSConrad MeyerFix : high compression modes for big-endian platforms
6332b9c00cbSConrad MeyerNew : zstd cli : `-t` | `--test` command
6342b9c00cbSConrad Meyer
635f7cd7fe5SConrad Meyerv0.5.0  (Feb 5, 2016)
6362b9c00cbSConrad MeyerNew : dictionary builder utility
6372b9c00cbSConrad MeyerChanged : streaming & dictionary API
6382b9c00cbSConrad MeyerImproved : better compression of small data
6392b9c00cbSConrad Meyer
640f7cd7fe5SConrad Meyerv0.4.7  (Jan 22, 2016)
6412b9c00cbSConrad MeyerImproved : small compression speed improvement in HC mode
6422b9c00cbSConrad MeyerChanged : `zstd_decompress.c` has ZSTD_LEGACY_SUPPORT to 0 by default
6432b9c00cbSConrad Meyerfix : bt search bug
6442b9c00cbSConrad Meyer
645f7cd7fe5SConrad Meyerv0.4.6  (Jan 13, 2016)
6462b9c00cbSConrad Meyerfix : fast compression mode on Windows
6472b9c00cbSConrad MeyerNew : cmake configuration file, thanks to Artyom Dymchenko
6482b9c00cbSConrad MeyerImproved : high compression mode on repetitive data
6492b9c00cbSConrad MeyerNew : block-level API
6502b9c00cbSConrad MeyerNew : ZSTD_duplicateCCtx()
6512b9c00cbSConrad Meyer
652f7cd7fe5SConrad Meyerv0.4.5  (Dec 18, 2015)
6532b9c00cbSConrad Meyernew : -m/--multiple : compress/decompress multiple files
6542b9c00cbSConrad Meyer
655f7cd7fe5SConrad Meyerv0.4.4  (Dec 14, 2015)
6562b9c00cbSConrad MeyerFixed : high compression modes for Windows 32 bits
6572b9c00cbSConrad Meyernew : external dictionary API extended to buffered mode and accessible through command line
6582b9c00cbSConrad Meyernew : windows DLL project, thanks to Christophe Chevalier
6592b9c00cbSConrad Meyer
660f7cd7fe5SConrad Meyerv0.4.3  (Dec 7, 2015)
6612b9c00cbSConrad Meyernew : external dictionary API
6622b9c00cbSConrad Meyernew : zstd-frugal
6632b9c00cbSConrad Meyer
664f7cd7fe5SConrad Meyerv0.4.2  (Dec 2, 2015)
6652b9c00cbSConrad MeyerGeneric minor improvements for small blocks
6662b9c00cbSConrad MeyerFixed : big-endian compatibility, by Peter Harris (#85)
6672b9c00cbSConrad Meyer
668f7cd7fe5SConrad Meyerv0.4.1  (Dec 1, 2015)
6692b9c00cbSConrad MeyerFixed : ZSTD_LEGACY_SUPPORT=0 build mode (reported by Luben)
6702b9c00cbSConrad Meyerremoved `zstd.c`
6712b9c00cbSConrad Meyer
672f7cd7fe5SConrad Meyerv0.4.0  (Nov 29, 2015)
6732b9c00cbSConrad MeyerCommand line utility compatible with high compression levels
6742b9c00cbSConrad MeyerRemoved zstdhc => merged into zstd
6752b9c00cbSConrad MeyerAdded : ZBUFF API (see zstd_buffered.h)
6762b9c00cbSConrad MeyerRolling buffer support
6772b9c00cbSConrad Meyer
678f7cd7fe5SConrad Meyerv0.3.6  (Nov 10, 2015)
6792b9c00cbSConrad Meyersmall blocks params
6802b9c00cbSConrad Meyer
681f7cd7fe5SConrad Meyerv0.3.5  (Nov 9, 2015)
6822b9c00cbSConrad Meyerminor generic compression improvements
6832b9c00cbSConrad Meyer
684f7cd7fe5SConrad Meyerv0.3.4  (Nov 6, 2015)
6852b9c00cbSConrad MeyerFaster fast cLevels
6862b9c00cbSConrad Meyer
687f7cd7fe5SConrad Meyerv0.3.3  (Nov 5, 2015)
6882b9c00cbSConrad MeyerSmall compression ratio improvement
6892b9c00cbSConrad Meyer
690f7cd7fe5SConrad Meyerv0.3.2  (Nov 2, 2015)
6912b9c00cbSConrad MeyerFixed Visual Studio
6922b9c00cbSConrad Meyer
693f7cd7fe5SConrad Meyerv0.3.1  (Nov 2, 2015)
6942b9c00cbSConrad MeyerSmall compression ratio improvement
6952b9c00cbSConrad Meyer
696f7cd7fe5SConrad Meyerv0.3  (Oct 30, 2015)
6972b9c00cbSConrad MeyerHC mode : compression levels 2-26
6982b9c00cbSConrad Meyer
699f7cd7fe5SConrad Meyerv0.2.2  (Oct 28, 2015)
7002b9c00cbSConrad MeyerFix : Visual Studio 2013 & 2015 release compilation, by Christophe Chevalier
7012b9c00cbSConrad Meyer
702f7cd7fe5SConrad Meyerv0.2.1  (Oct 24, 2015)
7032b9c00cbSConrad MeyerFix : Read errors, advanced fuzzer tests, by Hanno Böck
7042b9c00cbSConrad Meyer
705f7cd7fe5SConrad Meyerv0.2.0  (Oct 22, 2015)
7062b9c00cbSConrad Meyer**Breaking format change**
7072b9c00cbSConrad MeyerFaster decompression speed
7082b9c00cbSConrad MeyerCan still decode v0.1 format
7092b9c00cbSConrad Meyer
710f7cd7fe5SConrad Meyerv0.1.3  (Oct 15, 2015)
7112b9c00cbSConrad Meyerfix uninitialization warning, reported by Evan Nemerson
7122b9c00cbSConrad Meyer
713f7cd7fe5SConrad Meyerv0.1.2  (Sep 11, 2015)
7142b9c00cbSConrad Meyerframe concatenation support
7152b9c00cbSConrad Meyer
716f7cd7fe5SConrad Meyerv0.1.1  (Aug 27, 2015)
7172b9c00cbSConrad Meyerfix compression bug
7182b9c00cbSConrad Meyerdetects write-flush errors
7192b9c00cbSConrad Meyer
720f7cd7fe5SConrad Meyerv0.1.0  (Aug 25, 2015)
7212b9c00cbSConrad Meyerfirst release
722