update libchdr
[pcsx_rearmed.git] / deps / libchdr / deps / lzma-22.01 / lzma-history.txt
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 - Speed optimizations in Ñ++ LZMA Decoder. \r
329 - Small changes for more compatibility with some C/C++ compilers.\r
330 \r
331 \r
332 4.49 beta      2007-07-05\r
333 -------------------------\r
334 - .7z ANSI-C Decoder:\r
335      - now it supports BCJ and BCJ2 filters\r
336      - now it supports files larger than 4 GB.\r
337      - now it supports "Last Write Time" field for files.\r
338 - C++ code for .7z archives compressing/decompressing from 7-zip \r
339   was included to LZMA SDK.\r
340   \r
341 \r
342 4.43           2006-06-04\r
343 -------------------------\r
344 - Small changes for more compatibility with some C/C++ compilers.\r
345   \r
346 \r
347 4.42           2006-05-15\r
348 -------------------------\r
349 - Small changes in .h files in ANSI-C version.\r
350   \r
351 \r
352 4.39 beta      2006-04-14\r
353 -------------------------\r
354 - The bug in versions 4.33b:4.38b was fixed:\r
355   C++ version of LZMA encoder could not correctly compress \r
356   files larger than 2 GB with HC4 match finder (-mfhc4).\r
357   \r
358 \r
359 4.37 beta      2005-04-06\r
360 -------------------------\r
361 - Fixes in C++ code: code could no be compiled if _NO_EXCEPTIONS was defined. \r
362 \r
363 \r
364 4.35 beta      2005-03-02\r
365 -------------------------\r
366 - The bug was fixed in C++ version of LZMA Decoder:\r
367     If encoded stream was corrupted, decoder could access memory \r
368     outside of allocated range.\r
369 \r
370 \r
371 4.34 beta      2006-02-27\r
372 -------------------------\r
373 - Compressing speed and memory requirements for compressing were increased\r
374 - LZMA now can use only these match finders: HC4, BT2, BT3, BT4\r
375 \r
376 \r
377 4.32           2005-12-09\r
378 -------------------------\r
379 - Java version of LZMA SDK was included\r
380 \r
381 \r
382 4.30           2005-11-20\r
383 -------------------------\r
384 - Compression ratio was improved in -a2 mode\r
385 - Speed optimizations for compressing in -a2 mode\r
386 - -fb switch now supports values up to 273\r
387 - The bug in 7z_C (7zIn.c) was fixed:\r
388   It used Alloc/Free functions from different memory pools.\r
389   So if program used two memory pools, it worked incorrectly.\r
390 - 7z_C: .7z format supporting was improved\r
391 - LZMA# SDK (C#.NET version) was included\r
392 \r
393 \r
394 4.27 (Updated) 2005-09-21\r
395 -------------------------\r
396 - Some GUIDs/interfaces in C++ were changed.\r
397  IStream.h:\r
398    ISequentialInStream::Read now works as old ReadPart\r
399    ISequentialOutStream::Write now works as old WritePart\r
400 \r
401 \r
402 4.27           2005-08-07\r
403 -------------------------\r
404 - The bug in LzmaDecodeSize.c was fixed:\r
405    if _LZMA_IN_CB and _LZMA_OUT_READ were defined,\r
406    decompressing worked incorrectly.\r
407 \r
408 \r
409 4.26           2005-08-05\r
410 -------------------------\r
411 - Fixes in 7z_C code and LzmaTest.c:\r
412   previous versions could work incorrectly,\r
413   if malloc(0) returns 0\r
414 \r
415 \r
416 4.23           2005-06-29\r
417 -------------------------\r
418 - Small fixes in C++ code\r
419 \r
420 \r
421 4.22           2005-06-10\r
422 -------------------------\r
423 - Small fixes\r
424 \r
425 \r
426 4.21           2005-06-08\r
427 -------------------------\r
428 - Interfaces for ANSI-C LZMA Decoder (LzmaDecode.c) were changed\r
429 - New additional version of ANSI-C LZMA Decoder with zlib-like interface:\r
430     - LzmaStateDecode.h\r
431     - LzmaStateDecode.c\r
432     - LzmaStateTest.c\r
433 - ANSI-C LZMA Decoder now can decompress files larger than 4 GB\r
434 \r
435 \r
436 4.17           2005-04-18\r
437 -------------------------\r
438 - New example for RAM->RAM compressing/decompressing: \r
439   LZMA + BCJ (filter for x86 code):\r
440     - LzmaRam.h\r
441     - LzmaRam.cpp\r
442     - LzmaRamDecode.h\r
443     - LzmaRamDecode.c\r
444     - -f86 switch for lzma.exe\r
445 \r
446 \r
447 4.16           2005-03-29\r
448 -------------------------\r
449 - The bug was fixed in LzmaDecode.c (ANSI-C LZMA Decoder): \r
450    If _LZMA_OUT_READ was defined, and if encoded stream was corrupted,\r
451    decoder could access memory outside of allocated range.\r
452 - Speed optimization of ANSI-C LZMA Decoder (now it's about 20% faster).\r
453   Old version of LZMA Decoder now is in file LzmaDecodeSize.c. \r
454   LzmaDecodeSize.c can provide slightly smaller code than LzmaDecode.c\r
455 - Small speed optimization in LZMA C++ code\r
456 - filter for SPARC's code was added\r
457 - Simplified version of .7z ANSI-C Decoder was included\r
458 \r
459 \r
460 4.06           2004-09-05\r
461 -------------------------\r
462 - The bug in v4.05 was fixed:\r
463     LZMA-Encoder didn't release output stream in some cases.\r
464 \r
465 \r
466 4.05           2004-08-25\r
467 -------------------------\r
468 - Source code of filters for x86, IA-64, ARM, ARM-Thumb \r
469   and PowerPC code was included to SDK\r
470 - Some internal minor changes\r
471 \r
472 \r
473 4.04           2004-07-28\r
474 -------------------------\r
475 - More compatibility with some C++ compilers\r
476 \r
477 \r
478 4.03           2004-06-18\r
479 -------------------------\r
480 - "Benchmark" command was added. It measures compressing \r
481   and decompressing speed and shows rating values. \r
482   Also it checks hardware errors.\r
483 \r
484 \r
485 4.02           2004-06-10\r
486 -------------------------\r
487 - C++ LZMA Encoder/Decoder code now is more portable\r
488   and it can be compiled by GCC on Linux.\r
489 \r
490 \r
491 4.01           2004-02-15\r
492 -------------------------\r
493 - Some detection of data corruption was enabled.\r
494     LzmaDecode.c / RangeDecoderReadByte\r
495     .....\r
496     {\r
497       rd->ExtraBytes = 1;\r
498       return 0xFF;\r
499     }\r
500 \r
501 \r
502 4.00           2004-02-13\r
503 -------------------------\r
504 - Original version of LZMA SDK\r
505 \r
506 \r
507 \r
508 HISTORY of the LZMA\r
509 -------------------\r
510   2001-2008:  Improvements to LZMA compressing/decompressing code, \r
511               keeping compatibility with original LZMA format\r
512   1996-2001:  Development of LZMA compression format\r
513 \r
514   Some milestones:\r
515 \r
516   2001-08-30: LZMA compression was added to 7-Zip\r
517   1999-01-02: First version of 7-Zip was released\r
518   \r
519 \r
520 End of document\r