mirror of
				https://github.com/RetroDECK/Duckstation.git
				synced 2025-04-10 19:15:14 +00:00 
			
		
		
		
	
		
			
	
	
		
			447 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			447 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | HISTORY of the LZMA SDK | |||
|  | ----------------------- | |||
|  | 
 | |||
|  | 19.00          2019-02-21 | |||
|  | ------------------------- | |||
|  | - Encryption strength for 7z archives was increased: | |||
|  |   the size of random initialization vector was increased from 64-bit to 128-bit, | |||
|  |   and the pseudo-random number generator was improved. | |||
|  | - The bug in 7zIn.c code was fixed. | |||
|  | 
 | |||
|  | 
 | |||
|  | 18.06          2018-12-30 | |||
|  | ------------------------- | |||
|  | - The speed for LZMA/LZMA2 compressing was increased by 3-10%, | |||
|  |   and there are minor changes in compression ratio. | |||
|  | - Some bugs were fixed. | |||
|  | - The bug in 7-Zip 18.02-18.05 was fixed: | |||
|  |   There was memory leak in multithreading xz decoder - XzDecMt_Decode(), | |||
|  |   if xz stream contains only one block. | |||
|  | - The changes for MSVS compiler makefiles:  | |||
|  |    - the makefiles now use "PLATFORM" macroname with values (x64, x86, arm64) | |||
|  |      instead of "CPU" macroname with values (AMD64, ARM64). | |||
|  |    - the makefiles by default now use static version of the run-time library. | |||
|  | 
 | |||
|  | 
 | |||
|  | 18.05          2018-04-30 | |||
|  | ------------------------- | |||
|  | - The speed for LZMA/LZMA2 compressing was increased  | |||
|  |     by 8% for fastest/fast compression levels and  | |||
|  |     by 3% for normal/maximum compression levels. | |||
|  | - Previous versions of 7-Zip could work incorrectly in "Large memory pages" mode in | |||
|  |   Windows 10 because of some BUG with "Large Pages" in Windows 10.  | |||
|  |   Now 7-Zip doesn't use "Large Pages" on Windows 10 up to revision 1709 (16299). | |||
|  | - The BUG was fixed in Lzma2Enc.c | |||
|  |     Lzma2Enc_Encode2() function worked incorretly, | |||
|  |       if (inStream == NULL) and the number of block threads is more than 1. | |||
|  | 
 | |||
|  | 
 | |||
|  | 18.03 beta     2018-03-04 | |||
|  | ------------------------- | |||
|  | - Asm\x86\LzmaDecOpt.asm: new optimized LZMA decoder written in asm  | |||
|  |   for x64 with about 30% higher speed than main version of LZMA decoder written in C. | |||
|  | - The speed for single-thread LZMA/LZMA2 decoder written in C was increased by 3%. | |||
|  | - 7-Zip now can use multi-threading for 7z/LZMA2 decoding, | |||
|  |   if there are multiple independent data chunks in LZMA2 stream. | |||
|  | - 7-Zip now can use multi-threading for xz decoding, | |||
|  |   if there are multiple blocks in xz stream. | |||
|  | 
 | |||
|  | 
 | |||
|  | 18.01          2019-01-28 | |||
|  | ------------------------- | |||
|  | - The BUG in 17.01 - 18.00 beta was fixed: | |||
|  |   XzDec.c : random block unpacking and XzUnpacker_IsBlockFinished() | |||
|  |   didn't work correctly for xz archives without checksum (CRC). | |||
|  | 
 | |||
|  | 
 | |||
|  | 18.00 beta     2019-01-10 | |||
|  | ------------------------- | |||
|  | - The BUG in xz encoder was fixed: | |||
|  |   There was memory leak of 16 KB for each file compressed with  | |||
|  |   xz compression method, if additional filter was used. | |||
|  | 
 | |||
|  | 
 | |||
|  | 17.01 beta     2017-08-28 | |||
|  | ------------------------- | |||
|  | - Minor speed optimization for LZMA2 (xz and 7z) multi-threading compression. | |||
|  |   7-Zip now uses additional memory buffers for multi-block LZMA2 compression. | |||
|  |   CPU utilization was slightly improved. | |||
|  | - 7-zip now creates multi-block xz archives by default. Block size can be  | |||
|  |   specified with -ms[Size]{m|g} switch. | |||
|  | - xz decoder now can unpack random block from multi-block xz archives. | |||
|  | - 7-Zip command line: @listfile now doesn't work after -- switch. | |||
|  |   Use -i@listfile before -- switch instead. | |||
|  | - The BUGs were fixed: | |||
|  |   7-Zip 17.00 beta crashed for commands that write anti-item to 7z archive. | |||
|  | 
 | |||
|  | 
 | |||
|  | 17.00 beta     2017-04-29 | |||
|  | ------------------------- | |||
|  | - NewHandler.h / NewHandler.cpp:  | |||
|  |     now it redefines operator new() only for old MSVC compilers (_MSC_VER < 1900). | |||
|  | - C/7zTypes.h : the names of variables in interface structures were changed (vt). | |||
|  | - Some bugs were fixed. 7-Zip could crash in some cases. | |||
|  | - Some internal changes in code. | |||
|  | 
 | |||
|  | 
 | |||
|  | 16.04          2016-10-04 | |||
|  | ------------------------- | |||
|  | - The bug was fixed in DllSecur.c. | |||
|  | 
 | |||
|  | 
 | |||
|  | 16.03          2016-09-28 | |||
|  | ------------------------- | |||
|  | - SFX modules now use some protection against DLL preloading attack. | |||
|  | - Some bugs in 7z code were fixed. | |||
|  | 
 | |||
|  | 
 | |||
|  | 16.02          2016-05-21 | |||
|  | ------------------------- | |||
|  | - The BUG in 16.00 - 16.01 was fixed: | |||
|  |   Split Handler (SplitHandler.cpp) returned incorrect  | |||
|  |   total size value (kpidSize) for split archives. | |||
|  | 
 | |||
|  | 
 | |||
|  | 16.01          2016-05-19 | |||
|  | -------------------------	 | |||
|  | - Some internal changes to reduce the number of compiler warnings. | |||
|  | 
 | |||
|  | 
 | |||
|  | 16.00          2016-05-10 | |||
|  | -------------------------	 | |||
|  | - Some bugs were fixed. | |||
|  | 
 | |||
|  | 
 | |||
|  | 15.12          2015-11-19 | |||
|  | -------------------------	 | |||
|  | - The BUG in C version of 7z decoder was fixed: | |||
|  |   7zDec.c : SzDecodeLzma2() | |||
|  |   7z decoder could mistakenly report about decoding error for some 7z archives | |||
|  |   that use LZMA2 compression method. | |||
|  |   The probability to get that mistaken decoding error report was about  | |||
|  |   one error per 16384 solid blocks for solid blocks larger than 16 KB (compressed size).  | |||
|  | - The BUG (in 9.26-15.11) in C version of 7z decoder was fixed: | |||
|  |   7zArcIn.c : SzReadHeader2() | |||
|  |   7z decoder worked incorrectly for 7z archives that contain  | |||
|  |   empty solid blocks, that can be placed to 7z archive, if some file is  | |||
|  |   unavailable for reading during archive creation. | |||
|  | 
 | |||
|  | 
 | |||
|  | 15.09 beta     2015-10-16 | |||
|  | -------------------------	 | |||
|  | - The BUG in LZMA / LZMA2 encoding code was fixed. | |||
|  |   The BUG in LzFind.c::MatchFinder_ReadBlock() function. | |||
|  |   If input data size is larger than (4 GiB - dictionary_size), | |||
|  |   the following code worked incorrectly: | |||
|  |   -  LZMA : LzmaEnc_MemEncode(), LzmaEncode() : LZMA encoding functions  | |||
|  |      for compressing from memory to memory.  | |||
|  |      That BUG is not related to LZMA encoder version that works via streams. | |||
|  |   -  LZMA2 : multi-threaded version of LZMA2 encoder worked incorrectly, if  | |||
|  |      default value of chunk size (CLzma2EncProps::blockSize) is changed  | |||
|  |      to value larger than (4 GiB - dictionary_size). | |||
|  | 
 | |||
|  | 
 | |||
|  | 9.38 beta      2015-01-03 | |||
|  | -------------------------	 | |||
|  | - The BUG in 9.31-9.37 was fixed: | |||
|  |   IArchiveGetRawProps interface was disabled for 7z archives. | |||
|  | - The BUG in 9.26-9.36 was fixed: | |||
|  |   Some code in CPP\7zip\Archive\7z\ worked correctly only under Windows. | |||
|  | 
 | |||
|  | 
 | |||
|  | 9.36 beta      2014-12-26 | |||
|  | -------------------------	 | |||
|  | - The BUG in command line version was fixed: | |||
|  |   7-Zip created temporary archive in current folder during update archive | |||
|  |   operation, if -w{Path} switch was not specified.  | |||
|  |   The fixed 7-Zip creates temporary archive in folder that contains updated archive. | |||
|  | - The BUG in 9.33-9.35 was fixed: | |||
|  |   7-Zip silently ignored file reading errors during 7z or gz archive creation, | |||
|  |   and the created archive contained only part of file that was read before error. | |||
|  |   The fixed 7-Zip stops archive creation and it reports about error. | |||
|  | 
 | |||
|  | 
 | |||
|  | 9.35 beta      2014-12-07 | |||
|  | -------------------------	 | |||
|  | - 7zr.exe now support AES encryption. | |||
|  | - SFX mudules were added to LZMA SDK | |||
|  | - Some bugs were fixed. | |||
|  | 
 | |||
|  | 
 | |||
|  | 9.21 beta      2011-04-11 | |||
|  | -------------------------	 | |||
|  | - New class FString for file names at file systems. | |||
|  | - Speed optimization in CRC code for big-endian CPUs. | |||
|  | - The BUG in Lzma2Dec.c was fixed: | |||
|  |     Lzma2Decode function didn't work. | |||
|  | 
 | |||
|  | 
 | |||
|  | 9.18 beta      2010-11-02 | |||
|  | -------------------------	 | |||
|  | - New small SFX module for installers (SfxSetup). | |||
|  | 
 | |||
|  | 
 | |||
|  | 9.12 beta      2010-03-24 | |||
|  | ------------------------- | |||
|  | - The BUG in LZMA SDK 9.* was fixed: LZMA2 codec didn't work, | |||
|  |   if more than 10 threads were used (or more than 20 threads in some modes). | |||
|  | 
 | |||
|  | 
 | |||
|  | 9.11 beta      2010-03-15 | |||
|  | ------------------------- | |||
|  | - PPMd compression method support | |||
|  |     | |||
|  | 
 | |||
|  | 9.09           2009-12-12 | |||
|  | ------------------------- | |||
|  | - The bug was fixed: | |||
|  |    Utf16_To_Utf8 funstions in UTFConvert.cpp and 7zMain.c | |||
|  |    incorrectly converted surrogate characters (the code >= 0x10000) to UTF-8. | |||
|  | - Some bugs were fixed | |||
|  | 
 | |||
|  | 
 | |||
|  | 9.06           2009-08-17 | |||
|  | ------------------------- | |||
|  | - Some changes in ANSI-C 7z Decoder interfaces. | |||
|  | 
 | |||
|  | 
 | |||
|  | 9.04           2009-05-30 | |||
|  | ------------------------- | |||
|  | - LZMA2 compression method support | |||
|  | - xz format support | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.65           2009-02-03 | |||
|  | ------------------------- | |||
|  | - Some minor fixes | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.63           2008-12-31 | |||
|  | ------------------------- | |||
|  | - Some minor fixes | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.61 beta      2008-11-23 | |||
|  | ------------------------- | |||
|  | - The bug in ANSI-C LZMA Decoder was fixed: | |||
|  |     If encoded stream was corrupted, decoder could access memory  | |||
|  |     outside of allocated range. | |||
|  | - Some changes in ANSI-C 7z Decoder interfaces. | |||
|  | - LZMA SDK is placed in the public domain. | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.60 beta      2008-08-19 | |||
|  | ------------------------- | |||
|  | - Some minor fixes. | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.59 beta      2008-08-13 | |||
|  | ------------------------- | |||
|  | - The bug was fixed: | |||
|  |     LZMA Encoder in fast compression mode could access memory outside of  | |||
|  |     allocated range in some rare cases. | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.58 beta      2008-05-05 | |||
|  | ------------------------- | |||
|  | - ANSI-C LZMA Decoder was rewritten for speed optimizations. | |||
|  | - ANSI-C LZMA Encoder was included to LZMA SDK. | |||
|  | - C++ LZMA code now is just wrapper over ANSI-C code. | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.57           2007-12-12 | |||
|  | ------------------------- | |||
|  | - Speed optimizations in <20>++ LZMA Decoder.  | |||
|  | - Small changes for more compatibility with some C/C++ compilers. | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.49 beta      2007-07-05 | |||
|  | ------------------------- | |||
|  | - .7z ANSI-C Decoder: | |||
|  |      - now it supports BCJ and BCJ2 filters | |||
|  |      - now it supports files larger than 4 GB. | |||
|  |      - now it supports "Last Write Time" field for files. | |||
|  | - C++ code for .7z archives compressing/decompressing from 7-zip  | |||
|  |   was included to LZMA SDK. | |||
|  |    | |||
|  | 
 | |||
|  | 4.43           2006-06-04 | |||
|  | ------------------------- | |||
|  | - Small changes for more compatibility with some C/C++ compilers. | |||
|  |    | |||
|  | 
 | |||
|  | 4.42           2006-05-15 | |||
|  | ------------------------- | |||
|  | - Small changes in .h files in ANSI-C version. | |||
|  |    | |||
|  | 
 | |||
|  | 4.39 beta      2006-04-14 | |||
|  | ------------------------- | |||
|  | - The bug in versions 4.33b:4.38b was fixed: | |||
|  |   C++ version of LZMA encoder could not correctly compress  | |||
|  |   files larger than 2 GB with HC4 match finder (-mfhc4). | |||
|  |    | |||
|  | 
 | |||
|  | 4.37 beta      2005-04-06 | |||
|  | ------------------------- | |||
|  | - Fixes in C++ code: code could no be compiled if _NO_EXCEPTIONS was defined.  | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.35 beta      2005-03-02 | |||
|  | ------------------------- | |||
|  | - The bug was fixed in C++ version of LZMA Decoder: | |||
|  |     If encoded stream was corrupted, decoder could access memory  | |||
|  |     outside of allocated range. | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.34 beta      2006-02-27 | |||
|  | ------------------------- | |||
|  | - Compressing speed and memory requirements for compressing were increased | |||
|  | - LZMA now can use only these match finders: HC4, BT2, BT3, BT4 | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.32           2005-12-09 | |||
|  | ------------------------- | |||
|  | - Java version of LZMA SDK was included | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.30           2005-11-20 | |||
|  | ------------------------- | |||
|  | - Compression ratio was improved in -a2 mode | |||
|  | - Speed optimizations for compressing in -a2 mode | |||
|  | - -fb switch now supports values up to 273 | |||
|  | - The bug in 7z_C (7zIn.c) was fixed: | |||
|  |   It used Alloc/Free functions from different memory pools. | |||
|  |   So if program used two memory pools, it worked incorrectly. | |||
|  | - 7z_C: .7z format supporting was improved | |||
|  | - LZMA# SDK (C#.NET version) was included | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.27 (Updated) 2005-09-21 | |||
|  | ------------------------- | |||
|  | - Some GUIDs/interfaces in C++ were changed. | |||
|  |  IStream.h: | |||
|  |    ISequentialInStream::Read now works as old ReadPart | |||
|  |    ISequentialOutStream::Write now works as old WritePart | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.27           2005-08-07 | |||
|  | ------------------------- | |||
|  | - The bug in LzmaDecodeSize.c was fixed: | |||
|  |    if _LZMA_IN_CB and _LZMA_OUT_READ were defined, | |||
|  |    decompressing worked incorrectly. | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.26           2005-08-05 | |||
|  | ------------------------- | |||
|  | - Fixes in 7z_C code and LzmaTest.c: | |||
|  |   previous versions could work incorrectly, | |||
|  |   if malloc(0) returns 0 | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.23           2005-06-29 | |||
|  | ------------------------- | |||
|  | - Small fixes in C++ code | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.22           2005-06-10 | |||
|  | ------------------------- | |||
|  | - Small fixes | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.21           2005-06-08 | |||
|  | ------------------------- | |||
|  | - Interfaces for ANSI-C LZMA Decoder (LzmaDecode.c) were changed | |||
|  | - New additional version of ANSI-C LZMA Decoder with zlib-like interface: | |||
|  |     - LzmaStateDecode.h | |||
|  |     - LzmaStateDecode.c | |||
|  |     - LzmaStateTest.c | |||
|  | - ANSI-C LZMA Decoder now can decompress files larger than 4 GB | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.17           2005-04-18 | |||
|  | ------------------------- | |||
|  | - New example for RAM->RAM compressing/decompressing:  | |||
|  |   LZMA + BCJ (filter for x86 code): | |||
|  |     - LzmaRam.h | |||
|  |     - LzmaRam.cpp | |||
|  |     - LzmaRamDecode.h | |||
|  |     - LzmaRamDecode.c | |||
|  |     - -f86 switch for lzma.exe | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.16           2005-03-29 | |||
|  | ------------------------- | |||
|  | - The bug was fixed in LzmaDecode.c (ANSI-C LZMA Decoder):  | |||
|  |    If _LZMA_OUT_READ was defined, and if encoded stream was corrupted, | |||
|  |    decoder could access memory outside of allocated range. | |||
|  | - Speed optimization of ANSI-C LZMA Decoder (now it's about 20% faster). | |||
|  |   Old version of LZMA Decoder now is in file LzmaDecodeSize.c.  | |||
|  |   LzmaDecodeSize.c can provide slightly smaller code than LzmaDecode.c | |||
|  | - Small speed optimization in LZMA C++ code | |||
|  | - filter for SPARC's code was added | |||
|  | - Simplified version of .7z ANSI-C Decoder was included | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.06           2004-09-05 | |||
|  | ------------------------- | |||
|  | - The bug in v4.05 was fixed: | |||
|  |     LZMA-Encoder didn't release output stream in some cases. | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.05           2004-08-25 | |||
|  | ------------------------- | |||
|  | - Source code of filters for x86, IA-64, ARM, ARM-Thumb  | |||
|  |   and PowerPC code was included to SDK | |||
|  | - Some internal minor changes | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.04           2004-07-28 | |||
|  | ------------------------- | |||
|  | - More compatibility with some C++ compilers | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.03           2004-06-18 | |||
|  | ------------------------- | |||
|  | - "Benchmark" command was added. It measures compressing  | |||
|  |   and decompressing speed and shows rating values.  | |||
|  |   Also it checks hardware errors. | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.02           2004-06-10 | |||
|  | ------------------------- | |||
|  | - C++ LZMA Encoder/Decoder code now is more portable | |||
|  |   and it can be compiled by GCC on Linux. | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.01           2004-02-15 | |||
|  | ------------------------- | |||
|  | - Some detection of data corruption was enabled. | |||
|  |     LzmaDecode.c / RangeDecoderReadByte | |||
|  |     ..... | |||
|  |     { | |||
|  |       rd->ExtraBytes = 1; | |||
|  |       return 0xFF; | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  | 4.00           2004-02-13 | |||
|  | ------------------------- | |||
|  | - Original version of LZMA SDK | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | HISTORY of the LZMA | |||
|  | ------------------- | |||
|  |   2001-2008:  Improvements to LZMA compressing/decompressing code,  | |||
|  |               keeping compatibility with original LZMA format | |||
|  |   1996-2001:  Development of LZMA compression format | |||
|  | 
 | |||
|  |   Some milestones: | |||
|  | 
 | |||
|  |   2001-08-30: LZMA compression was added to 7-Zip | |||
|  |   1999-01-02: First version of 7-Zip was released | |||
|  |    | |||
|  | 
 | |||
|  | End of document |