| 1 | HISTORY of the LZMA SDK |
| 2 | ----------------------- |
| 3 | |
| 4 | 19.00 2019-02-21 |
| 5 | ------------------------- |
| 6 | - Encryption strength for 7z archives was increased: |
| 7 | the size of random initialization vector was increased from 64-bit to 128-bit, |
| 8 | and the pseudo-random number generator was improved. |
| 9 | - The bug in 7zIn.c code was fixed. |
| 10 | |
| 11 | |
| 12 | 18.06 2018-12-30 |
| 13 | ------------------------- |
| 14 | - The speed for LZMA/LZMA2 compressing was increased by 3-10%, |
| 15 | and there are minor changes in compression ratio. |
| 16 | - Some bugs were fixed. |
| 17 | - The bug in 7-Zip 18.02-18.05 was fixed: |
| 18 | There was memory leak in multithreading xz decoder - XzDecMt_Decode(), |
| 19 | if xz stream contains only one block. |
| 20 | - The changes for MSVS compiler makefiles: |
| 21 | - the makefiles now use "PLATFORM" macroname with values (x64, x86, arm64) |
| 22 | instead of "CPU" macroname with values (AMD64, ARM64). |
| 23 | - the makefiles by default now use static version of the run-time library. |
| 24 | |
| 25 | |
| 26 | 18.05 2018-04-30 |
| 27 | ------------------------- |
| 28 | - The speed for LZMA/LZMA2 compressing was increased |
| 29 | by 8% for fastest/fast compression levels and |
| 30 | by 3% for normal/maximum compression levels. |
| 31 | - Previous versions of 7-Zip could work incorrectly in "Large memory pages" mode in |
| 32 | Windows 10 because of some BUG with "Large Pages" in Windows 10. |
| 33 | Now 7-Zip doesn't use "Large Pages" on Windows 10 up to revision 1709 (16299). |
| 34 | - The BUG was fixed in Lzma2Enc.c |
| 35 | Lzma2Enc_Encode2() function worked incorretly, |
| 36 | if (inStream == NULL) and the number of block threads is more than 1. |
| 37 | |
| 38 | |
| 39 | 18.03 beta 2018-03-04 |
| 40 | ------------------------- |
| 41 | - Asm\x86\LzmaDecOpt.asm: new optimized LZMA decoder written in asm |
| 42 | for x64 with about 30% higher speed than main version of LZMA decoder written in C. |
| 43 | - The speed for single-thread LZMA/LZMA2 decoder written in C was increased by 3%. |
| 44 | - 7-Zip now can use multi-threading for 7z/LZMA2 decoding, |
| 45 | if there are multiple independent data chunks in LZMA2 stream. |
| 46 | - 7-Zip now can use multi-threading for xz decoding, |
| 47 | if there are multiple blocks in xz stream. |
| 48 | |
| 49 | |
| 50 | 18.01 2019-01-28 |
| 51 | ------------------------- |
| 52 | - The BUG in 17.01 - 18.00 beta was fixed: |
| 53 | XzDec.c : random block unpacking and XzUnpacker_IsBlockFinished() |
| 54 | didn't work correctly for xz archives without checksum (CRC). |
| 55 | |
| 56 | |
| 57 | 18.00 beta 2019-01-10 |
| 58 | ------------------------- |
| 59 | - The BUG in xz encoder was fixed: |
| 60 | There was memory leak of 16 KB for each file compressed with |
| 61 | xz compression method, if additional filter was used. |
| 62 | |
| 63 | |
| 64 | 17.01 beta 2017-08-28 |
| 65 | ------------------------- |
| 66 | - Minor speed optimization for LZMA2 (xz and 7z) multi-threading compression. |
| 67 | 7-Zip now uses additional memory buffers for multi-block LZMA2 compression. |
| 68 | CPU utilization was slightly improved. |
| 69 | - 7-zip now creates multi-block xz archives by default. Block size can be |
| 70 | specified with -ms[Size]{m|g} switch. |
| 71 | - xz decoder now can unpack random block from multi-block xz archives. |
| 72 | - 7-Zip command line: @listfile now doesn't work after -- switch. |
| 73 | Use -i@listfile before -- switch instead. |
| 74 | - The BUGs were fixed: |
| 75 | 7-Zip 17.00 beta crashed for commands that write anti-item to 7z archive. |
| 76 | |
| 77 | |
| 78 | 17.00 beta 2017-04-29 |
| 79 | ------------------------- |
| 80 | - NewHandler.h / NewHandler.cpp: |
| 81 | now it redefines operator new() only for old MSVC compilers (_MSC_VER < 1900). |
| 82 | - C/7zTypes.h : the names of variables in interface structures were changed (vt). |
| 83 | - Some bugs were fixed. 7-Zip could crash in some cases. |
| 84 | - Some internal changes in code. |
| 85 | |
| 86 | |
| 87 | 16.04 2016-10-04 |
| 88 | ------------------------- |
| 89 | - The bug was fixed in DllSecur.c. |
| 90 | |
| 91 | |
| 92 | 16.03 2016-09-28 |
| 93 | ------------------------- |
| 94 | - SFX modules now use some protection against DLL preloading attack. |
| 95 | - Some bugs in 7z code were fixed. |
| 96 | |
| 97 | |
| 98 | 16.02 2016-05-21 |
| 99 | ------------------------- |
| 100 | - The BUG in 16.00 - 16.01 was fixed: |
| 101 | Split Handler (SplitHandler.cpp) returned incorrect |
| 102 | total size value (kpidSize) for split archives. |
| 103 | |
| 104 | |
| 105 | 16.01 2016-05-19 |
| 106 | ------------------------- |
| 107 | - Some internal changes to reduce the number of compiler warnings. |
| 108 | |
| 109 | |
| 110 | 16.00 2016-05-10 |
| 111 | ------------------------- |
| 112 | - Some bugs were fixed. |
| 113 | |
| 114 | |
| 115 | 15.12 2015-11-19 |
| 116 | ------------------------- |
| 117 | - The BUG in C version of 7z decoder was fixed: |
| 118 | 7zDec.c : SzDecodeLzma2() |
| 119 | 7z decoder could mistakenly report about decoding error for some 7z archives |
| 120 | that use LZMA2 compression method. |
| 121 | The probability to get that mistaken decoding error report was about |
| 122 | one error per 16384 solid blocks for solid blocks larger than 16 KB (compressed size). |
| 123 | - The BUG (in 9.26-15.11) in C version of 7z decoder was fixed: |
| 124 | 7zArcIn.c : SzReadHeader2() |
| 125 | 7z decoder worked incorrectly for 7z archives that contain |
| 126 | empty solid blocks, that can be placed to 7z archive, if some file is |
| 127 | unavailable for reading during archive creation. |
| 128 | |
| 129 | |
| 130 | 15.09 beta 2015-10-16 |
| 131 | ------------------------- |
| 132 | - The BUG in LZMA / LZMA2 encoding code was fixed. |
| 133 | The BUG in LzFind.c::MatchFinder_ReadBlock() function. |
| 134 | If input data size is larger than (4 GiB - dictionary_size), |
| 135 | the following code worked incorrectly: |
| 136 | - LZMA : LzmaEnc_MemEncode(), LzmaEncode() : LZMA encoding functions |
| 137 | for compressing from memory to memory. |
| 138 | That BUG is not related to LZMA encoder version that works via streams. |
| 139 | - LZMA2 : multi-threaded version of LZMA2 encoder worked incorrectly, if |
| 140 | default value of chunk size (CLzma2EncProps::blockSize) is changed |
| 141 | to value larger than (4 GiB - dictionary_size). |
| 142 | |
| 143 | |
| 144 | 9.38 beta 2015-01-03 |
| 145 | ------------------------- |
| 146 | - The BUG in 9.31-9.37 was fixed: |
| 147 | IArchiveGetRawProps interface was disabled for 7z archives. |
| 148 | - The BUG in 9.26-9.36 was fixed: |
| 149 | Some code in CPP\7zip\Archive\7z\ worked correctly only under Windows. |
| 150 | |
| 151 | |
| 152 | 9.36 beta 2014-12-26 |
| 153 | ------------------------- |
| 154 | - The BUG in command line version was fixed: |
| 155 | 7-Zip created temporary archive in current folder during update archive |
| 156 | operation, if -w{Path} switch was not specified. |
| 157 | The fixed 7-Zip creates temporary archive in folder that contains updated archive. |
| 158 | - The BUG in 9.33-9.35 was fixed: |
| 159 | 7-Zip silently ignored file reading errors during 7z or gz archive creation, |
| 160 | and the created archive contained only part of file that was read before error. |
| 161 | The fixed 7-Zip stops archive creation and it reports about error. |
| 162 | |
| 163 | |
| 164 | 9.35 beta 2014-12-07 |
| 165 | ------------------------- |
| 166 | - 7zr.exe now support AES encryption. |
| 167 | - SFX mudules were added to LZMA SDK |
| 168 | - Some bugs were fixed. |
| 169 | |
| 170 | |
| 171 | 9.21 beta 2011-04-11 |
| 172 | ------------------------- |
| 173 | - New class FString for file names at file systems. |
| 174 | - Speed optimization in CRC code for big-endian CPUs. |
| 175 | - The BUG in Lzma2Dec.c was fixed: |
| 176 | Lzma2Decode function didn't work. |
| 177 | |
| 178 | |
| 179 | 9.18 beta 2010-11-02 |
| 180 | ------------------------- |
| 181 | - New small SFX module for installers (SfxSetup). |
| 182 | |
| 183 | |
| 184 | 9.12 beta 2010-03-24 |
| 185 | ------------------------- |
| 186 | - The BUG in LZMA SDK 9.* was fixed: LZMA2 codec didn't work, |
| 187 | if more than 10 threads were used (or more than 20 threads in some modes). |
| 188 | |
| 189 | |
| 190 | 9.11 beta 2010-03-15 |
| 191 | ------------------------- |
| 192 | - PPMd compression method support |
| 193 | |
| 194 | |
| 195 | 9.09 2009-12-12 |
| 196 | ------------------------- |
| 197 | - The bug was fixed: |
| 198 | Utf16_To_Utf8 funstions in UTFConvert.cpp and 7zMain.c |
| 199 | incorrectly converted surrogate characters (the code >= 0x10000) to UTF-8. |
| 200 | - Some bugs were fixed |
| 201 | |
| 202 | |
| 203 | 9.06 2009-08-17 |
| 204 | ------------------------- |
| 205 | - Some changes in ANSI-C 7z Decoder interfaces. |
| 206 | |
| 207 | |
| 208 | 9.04 2009-05-30 |
| 209 | ------------------------- |
| 210 | - LZMA2 compression method support |
| 211 | - xz format support |
| 212 | |
| 213 | |
| 214 | 4.65 2009-02-03 |
| 215 | ------------------------- |
| 216 | - Some minor fixes |
| 217 | |
| 218 | |
| 219 | 4.63 2008-12-31 |
| 220 | ------------------------- |
| 221 | - Some minor fixes |
| 222 | |
| 223 | |
| 224 | 4.61 beta 2008-11-23 |
| 225 | ------------------------- |
| 226 | - The bug in ANSI-C LZMA Decoder was fixed: |
| 227 | If encoded stream was corrupted, decoder could access memory |
| 228 | outside of allocated range. |
| 229 | - Some changes in ANSI-C 7z Decoder interfaces. |
| 230 | - LZMA SDK is placed in the public domain. |
| 231 | |
| 232 | |
| 233 | 4.60 beta 2008-08-19 |
| 234 | ------------------------- |
| 235 | - Some minor fixes. |
| 236 | |
| 237 | |
| 238 | 4.59 beta 2008-08-13 |
| 239 | ------------------------- |
| 240 | - The bug was fixed: |
| 241 | LZMA Encoder in fast compression mode could access memory outside of |
| 242 | allocated range in some rare cases. |
| 243 | |
| 244 | |
| 245 | 4.58 beta 2008-05-05 |
| 246 | ------------------------- |
| 247 | - ANSI-C LZMA Decoder was rewritten for speed optimizations. |
| 248 | - ANSI-C LZMA Encoder was included to LZMA SDK. |
| 249 | - C++ LZMA code now is just wrapper over ANSI-C code. |
| 250 | |
| 251 | |
| 252 | 4.57 2007-12-12 |
| 253 | ------------------------- |
| 254 |