| 1 | HISTORY of the LZMA SDK\r |
| 2 | -----------------------\r |
| 3 | \r |
| 4 | 21.07 2021-12-26\r |
| 5 | -------------------------\r |
| 6 | - New switches: -spm and -im!{file_path} to exclude directories from processing \r |
| 7 | for specified paths that don't contain path separator character at the end of path.\r |
| 8 | - The sorting order of files in archives was slightly changed to be more consistent\r |
| 9 | for cases where the name of some directory is the same as the prefix part of the name\r |
| 10 | of another directory or file.\r |
| 11 | \r |
| 12 | \r |
| 13 | 21.06 2021-11-24\r |
| 14 | -------------------------\r |
| 15 | - Bug in LZMA encoder in file LzmaEnc.c was fixed:\r |
| 16 | LzmaEnc_MemEncode(), LzmaEncode() and LzmaCompress() could work incorrectly, \r |
| 17 | if size value for output buffer is smaller than size required for all compressed data.\r |
| 18 | LzmaEnc_Encode() could work incorrectly,\r |
| 19 | if callback ISeqOutStream::Write() doesn't write all compressed data.\r |
| 20 | NCompress::NLzma::CEncoder::Code() could work incorrectly,\r |
| 21 | if callback ISequentialOutStream::Write() returns error code.\r |
| 22 | - Bug in versions 21.00-21.05 was fixed:\r |
| 23 | 7-Zip didn't set attributes of directories during archive extracting.\r |
| 24 | \r |
| 25 | \r |
| 26 | 21.04 beta 2021-11-02\r |
| 27 | -------------------------\r |
| 28 | - 7-Zip now reduces the number of working CPU threads for compression,\r |
| 29 | if RAM size is not enough for compression with big LZMA2 dictionary.\r |
| 30 | - 7-Zip now can create and check "file.sha256" text files that contain the list \r |
| 31 | of file names and SHA-256 checksums in format compatible with sha256sum program.\r |
| 32 | \r |
| 33 | \r |
| 34 | 21.03 beta 2021-07-20\r |
| 35 | -------------------------\r |
| 36 | - The maximum dictionary size for LZMA/LZMA2 compressing was increased to 4 GB (3840 MiB).\r |
| 37 | - Minor speed optimizations in LZMA/LZMA2 compressing.\r |
| 38 | \r |
| 39 | \r |
| 40 | 21.02 alpha 2021-05-06\r |
| 41 | -------------------------\r |
| 42 | - The command line version of 7-Zip for macOS was released.\r |
| 43 | - The speed for LZMA and LZMA2 decompression in arm64 versions for macOS and Linux \r |
| 44 | was increased by 20%-60%.\r |
| 45 | \r |
| 46 | \r |
| 47 | 21.01 alpha 2021-03-09\r |
| 48 | -------------------------\r |
| 49 | - The command line version of 7-Zip for Linux was released.\r |
| 50 | - The improvements for speed of ARM64 version using hardware CPU instructions \r |
| 51 | for AES, CRC-32, SHA-1 and SHA-256.\r |
| 52 | - Some bugs were fixed.\r |
| 53 | \r |
| 54 | \r |
| 55 | 20.02 alpha 2020-08-08\r |
| 56 | -------------------------\r |
| 57 | - The default number of LZMA2 chunks per solid block in 7z archive was increased to 64.\r |
| 58 | It allows to increase the compression speed for big 7z archives, if there is a big number \r |
| 59 | of CPU cores and threads.\r |
| 60 | - The speed of PPMd compressing/decompressing was increased for 7z archives.\r |
| 61 | - The new -ssp switch. If the switch -ssp is specified, 7-Zip doesn't allow the system \r |
| 62 | to modify "Last Access Time" property of source files for archiving and hashing operations. \r |
| 63 | - Some bugs were fixed.\r |
| 64 | \r |
| 65 | \r |
| 66 | 20.00 alpha 2020-02-06\r |
| 67 | -------------------------\r |
| 68 | - 7-Zip now supports new optional match finders for LZMA/LZMA2 compression: bt5 and hc5, \r |
| 69 | that can work faster than bt4 and hc4 match finders for the data with big redundancy.\r |
| 70 | - The compression ratio was improved for Fast and Fastest compression levels with the \r |
| 71 | following default settings:\r |
| 72 | - Fastest level (-mx1) : hc5 match finder with 256 KB dictionary.\r |
| 73 | - Fast level (-mx3) : hc5 match finder with 4 MB dictionary.\r |
| 74 | - Minor speed optimizations in multithreaded LZMA/LZMA2 compression for Normal/Maximum/Ultra \r |
| 75 | compression levels.\r |
| 76 | \r |
| 77 | \r |
| 78 | 19.00 2019-02-21\r |
| 79 | -------------------------\r |
| 80 | - Encryption strength for 7z archives was increased:\r |
| 81 | the size of random initialization vector was increased from 64-bit to 128-bit,\r |
| 82 | and the pseudo-random number generator was improved.\r |
| 83 | - The bug in 7zIn.c code was fixed.\r |
| 84 | \r |
| 85 | \r |
| 86 | 18.06 2018-12-30\r |
| 87 | -------------------------\r |
| 88 | - The speed for LZMA/LZMA2 compressing was increased by 3-10%,\r |
| 89 | and there are minor changes in compression ratio.\r |
| 90 | - Some bugs were fixed.\r |
| 91 | - The bug in 7-Zip 18.02-18.05 was fixed:\r |
| 92 | There was memory leak in multithreading xz decoder - XzDecMt_Decode(),\r |
| 93 | if xz stream contains only one block.\r |
| 94 | - The changes for MSVS compiler makefiles: \r |
| 95 | - the makefiles now use "PLATFORM" macroname with values (x64, x86, arm64)\r |
| 96 | instead of "CPU" macroname with values (AMD64, ARM64).\r |
| 97 | - the makefiles by default now use static version of the run-time library.\r |
| 98 | \r |
| 99 | \r |
| 100 | 18.05 2018-04-30\r |
| 101 | -------------------------\r |
| 102 | - The speed for LZMA/LZMA2 compressing was increased \r |
| 103 | by 8% for fastest/fast compression levels and \r |
| 104 | by 3% for normal/maximum compression levels.\r |
| 105 | - Previous versions of 7-Zip could work incorrectly in "Large memory pages" mode in\r |
| 106 | Windows 10 because of some BUG with "Large Pages" in Windows 10. \r |
| 107 | Now 7-Zip doesn't use "Large Pages" on Windows 10 up to revision 1709 (16299).\r |
| 108 | - The BUG was fixed in Lzma2Enc.c\r |
| 109 | Lzma2Enc_Encode2() function worked incorretly,\r |
| 110 | if (inStream == NULL) and the number of block threads is more than 1.\r |
| 111 | \r |
| 112 | \r |
| 113 | 18.03 beta 2018-03-04\r |
| 114 | -------------------------\r |
| 115 | - Asm\x86\LzmaDecOpt.asm: new optimized LZMA decoder written in asm \r |
| 116 | for x64 with about 30% higher speed than main version of LZMA decoder written in C.\r |
| 117 | - The speed for single-thread LZMA/LZMA2 decoder written in C was increased by 3%.\r |
| 118 | - 7-Zip now can use multi-threading for 7z/LZMA2 decoding,\r |
| 119 | if there are multiple independent data chunks in LZMA2 stream.\r |
| 120 | - 7-Zip now can use multi-threading for xz decoding,\r |
| 121 | if there are multiple blocks in xz stream.\r |
| 122 | \r |
| 123 | \r |
| 124 | 18.01 2019-01-28\r |
| 125 | -------------------------\r |
| 126 | - The BUG in 17.01 - 18.00 beta was fixed:\r |
| 127 | XzDec.c : random block unpacking and XzUnpacker_IsBlockFinished()\r |
| 128 | didn't work correctly for xz archives without checksum (CRC).\r |
| 129 | \r |
| 130 | \r |
| 131 | 18.00 beta 2019-01-10\r |
| 132 | -------------------------\r |
| 133 | - The BUG in xz encoder was fixed:\r |
| 134 | There was memory leak of 16 KB for each file compressed with \r |
| 135 | xz compression method, if additional filter was used.\r |
| 136 | \r |
| 137 | \r |
| 138 | 17.01 beta 2017-08-28\r |
| 139 | -------------------------\r |
| 140 | - Minor speed optimization for LZMA2 (xz and 7z) multi-threading compression.\r |
| 141 | 7-Zip now uses additional memory buffers for multi-block LZMA2 compression.\r |
| 142 | CPU utilization was slightly improved.\r |
| 143 | - 7-zip now creates multi-block xz archives by default. Block size can be \r |
| 144 | specified with -ms[Size]{m|g} switch.\r |
| 145 | - xz decoder now can unpack random block from multi-block xz archives.\r |
| 146 | - 7-Zip command line: @listfile now doesn't work after -- switch.\r |
| 147 | Use -i@listfile before -- switch instead.\r |
| 148 | - The BUGs were fixed:\r |
| 149 | 7-Zip 17.00 beta crashed for commands that write anti-item to 7z archive.\r |
| 150 | \r |
| 151 | \r |
| 152 | 17.00 beta 2017-04-29\r |
| 153 | -------------------------\r |
| 154 | - NewHandler.h / NewHandler.cpp: \r |
| 155 | now it redefines operator new() only for old MSVC compilers (_MSC_VER < 1900).\r |
| 156 | - C/7zTypes.h : the names of variables in interface structures were changed (vt).\r |
| 157 | - Some bugs were fixed. 7-Zip could crash in some cases.\r |
| 158 | - Some internal changes in code.\r |
| 159 | \r |
| 160 | \r |
| 161 | 16.04 2016-10-04\r |
| 162 | -------------------------\r |
| 163 | - The bug was fixed in DllSecur.c.\r |
| 164 | \r |
| 165 | \r |
| 166 | 16.03 2016-09-28\r |
| 167 | -------------------------\r |
| 168 | - SFX modules now use some protection against DLL preloading attack.\r |
| 169 | - Some bugs in 7z code were fixed.\r |
| 170 | \r |
| 171 | \r |
| 172 | 16.02 2016-05-21\r |
| 173 | -------------------------\r |
| 174 | - The BUG in 16.00 - 16.01 was fixed:\r |
| 175 | Split Handler (SplitHandler.cpp) returned incorrect \r |
| 176 | total size value (kpidSize) for split archives.\r |
| 177 | \r |
| 178 | \r |
| 179 | 16.01 2016-05-19\r |
| 180 | ------------------------- \r |
| 181 | - Some internal changes to reduce the number of compiler warnings.\r |
| 182 | \r |
| 183 | \r |
| 184 | 16.00 2016-05-10\r |
| 185 | ------------------------- \r |
| 186 | - Some bugs were fixed.\r |
| 187 | \r |
| 188 | \r |
| 189 | 15.12 2015-11-19\r |
| 190 | ------------------------- \r |
| 191 | - The BUG in C version of 7z decoder was fixed:\r |
| 192 | 7zDec.c : SzDecodeLzma2()\r |
| 193 | 7z decoder could mistakenly report about decoding error for some 7z archives\r |
| 194 | that use LZMA2 compression method.\r |
| 195 | The probability to get that mistaken decoding error report was about \r |
| 196 | one error per 16384 solid blocks for solid blocks larger than 16 KB (compressed size). \r |
| 197 | - The BUG (in 9.26-15.11) in C version of 7z decoder was fixed:\r |
| 198 | 7zArcIn.c : SzReadHeader2()\r |
| 199 | 7z decoder worked incorrectly for 7z archives that contain \r |
| 200 | empty solid blocks, that can be placed to 7z archive, if some file is \r |
| 201 | unavailable for reading during archive creation.\r |
| 202 | \r |
| 203 | \r |
| 204 | 15.09 beta 2015-10-16\r |
| 205 | ------------------------- \r |
| 206 | - The BUG in LZMA / LZMA2 encoding code was fixed.\r |
| 207 | The BUG in LzFind.c::MatchFinder_ReadBlock() function.\r |
| 208 | If input data size is larger than (4 GiB - dictionary_size),\r |
| 209 | the following code worked incorrectly:\r |
| 210 | - LZMA : LzmaEnc_MemEncode(), LzmaEncode() : LZMA encoding functions \r |
| 211 | for compressing from memory to memory. \r |
| 212 | That BUG is not related to LZMA encoder version that works via streams.\r |
| 213 | - LZMA2 : multi-threaded version of LZMA2 encoder worked incorrectly, if \r |
| 214 | default value of chunk size (CLzma2EncProps::blockSize) is changed \r |
| 215 | to value larger than (4 GiB - dictionary_size).\r |
| 216 | \r |
| 217 | \r |
| 218 | 9.38 beta 2015-01-03\r |
| 219 | ------------------------- \r |
| 220 | - The BUG in 9.31-9.37 was fixed:\r |
| 221 | IArchiveGetRawProps interface was disabled for 7z archives.\r |
| 222 | - The BUG in 9.26-9.36 was fixed:\r |
| 223 | Some code in CPP\7zip\Archive\7z\ worked correctly only under Windows.\r |
| 224 | \r |
| 225 | \r |
| 226 | 9.36 beta 2014-12-26\r |
| 227 | ------------------------- \r |
| 228 | - The BUG in command line version was fixed:\r |
| 229 | 7-Zip created temporary archive in current folder during update archive\r |
| 230 | operation, if -w{Path} switch was not specified. \r |
| 231 | The fixed 7-Zip creates temporary archive in folder that contains updated archive.\r |
| 232 | - The BUG in 9.33-9.35 was fixed:\r |
| 233 | 7-Zip silently ignored file reading errors during 7z or gz archive creation,\r |
| 234 | and the created archive contained only part of file that was read before error.\r |
| 235 | The fixed 7-Zip stops archive creation and it reports about error.\r |
| 236 | \r |
| 237 | \r |
| 238 | 9.35 beta 2014-12-07\r |
| 239 | ------------------------- \r |
| 240 | - 7zr.exe now support AES encryption.\r |
| 241 | - SFX mudules were added to LZMA SDK\r |
| 242 | - Some bugs were fixed.\r |
| 243 | \r |
| 244 | \r |
| 245 | 9.21 beta 2011-04-11\r |
| 246 | ------------------------- \r |
| 247 | - New class FString for file names at file systems.\r |
| 248 | - Speed optimization in CRC code for big-endian CPUs.\r |
| 249 | - The BUG in Lzma2Dec.c was fixed:\r |
| 250 | Lzma2Decode function didn't work.\r |
| 251 | \r |
| 252 | \r |
| 253 | 9.18 beta 2010-11-02\r |
| 254 | ------------------------- \r |
| 255 | - New small SFX module for installers (SfxSetup).\r |
| 256 | \r |
| 257 | \r |
| 258 | 9.12 beta 2010-03-24\r |
| 259 | -------------------------\r |
| 260 | - The BUG in LZMA SDK 9.* was fixed: LZMA2 codec didn't work,\r |
| 261 | if more than 10 threads were used (or more than 20 threads in some modes).\r |
| 262 | \r |
| 263 | \r |
| 264 | 9.11 beta 2010-03-15\r |
| 265 | -------------------------\r |
| 266 | - PPMd compression method support\r |
| 267 | \r |
| 268 | \r |
| 269 | 9.09 2009-12-12\r |
| 270 | -------------------------\r |
| 271 | - The bug was fixed:\r |
| 272 | Utf16_To_Utf8 funstions in UTFConvert.cpp and 7zMain.c\r |
| 273 | incorrectly converted surrogate characters (the code >= 0x10000) to UTF-8.\r |
| 274 | - Some bugs were fixed\r |
| 275 | \r |
| 276 | \r |
| 277 | 9.06 2009-08-17\r |
| 278 | -------------------------\r |
| 279 | - Some changes in ANSI-C 7z Decoder interfaces.\r |
| 280 | \r |
| 281 | \r |
| 282 | 9.04 2009-05-30\r |
| 283 | -------------------------\r |
| 284 | - LZMA2 compression method support\r |
| 285 | - xz format support\r |
| 286 | \r |
| 287 | \r |
| 288 | 4.65 2009-02-03\r |
| 289 | -------------------------\r |
| 290 | - Some minor fixes\r |
| 291 | \r |
| 292 | \r |
| 293 | 4.63 2008-12-31\r |
| 294 | -------------------------\r |
| 295 | - Some minor fixes\r |
| 296 | \r |
| 297 | \r |
| 298 | 4.61 beta 2008-11-23\r |
| 299 | -------------------------\r |
| 300 | - The bug in ANSI-C LZMA Decoder was fixed:\r |
| 301 | If encoded stream was corrupted, decoder could access memory \r |
| 302 | outside of allocated range.\r |
| 303 | - Some changes in ANSI-C 7z Decoder interfaces.\r |
| 304 | - LZMA SDK is placed in the public domain.\r |
| 305 | \r |
| 306 | \r |
| 307 | 4.60 beta 2008-08-19\r |
| 308 | -------------------------\r |
| 309 | - Some minor fixes.\r |
| 310 | \r |
| 311 | \r |
| 312 | 4.59 beta 2008-08-13\r |
| 313 | -------------------------\r |
| 314 | - The bug was fixed:\r |
| 315 | LZMA Encoder in fast compression mode could access memory outside of \r |
| 316 | allocated range in some rare cases.\r |
| 317 | \r |
| 318 | \r |
| 319 | 4.58 beta 2008-05-05\r |
| 320 | -------------------------\r |
| 321 | - ANSI-C LZMA Decoder was rewritten for speed optimizations.\r |
| 322 | - ANSI-C LZMA Encoder was included to LZMA SDK.\r |
| 323 | - C++ LZMA code now is just wrapper over ANSI-C code.\r |
| 324 | \r |
| 325 | \r |
| 326 | 4.57 2007-12-12\r |
| 327 | -------------------------\r |
| 328 |