1 HISTORY of the LZMA SDK
2 -----------------------
5 -------------------------
6 - The bug was fixed in DllSecur.c.
10 -------------------------
11 - SFX modules now use some protection against DLL preloading attack.
12 - Some bugs in 7z code were fixed.
16 -------------------------
17 - The BUG in 16.00 - 16.01 was fixed:
18 Split Handler (SplitHandler.cpp) returned incorrect
19 total size value (kpidSize) for split archives.
23 -------------------------
24 - Some internal changes to reduce the number of compiler warnings.
28 -------------------------
29 - Some bugs were fixed.
33 -------------------------
34 - The BUG in C version of 7z decoder was fixed:
35 7zDec.c : SzDecodeLzma2()
36 7z decoder could mistakenly report about decoding error for some 7z archives
37 that use LZMA2 compression method.
38 The probability to get that mistaken decoding error report was about
39 one error per 16384 solid blocks for solid blocks larger than 16 KB (compressed size).
40 - The BUG (in 9.26-15.11) in C version of 7z decoder was fixed:
41 7zArcIn.c : SzReadHeader2()
42 7z decoder worked incorrectly for 7z archives that contain
43 empty solid blocks, that can be placed to 7z archive, if some file is
44 unavailable for reading during archive creation.
48 -------------------------
49 - The BUG in LZMA / LZMA2 encoding code was fixed.
50 The BUG in LzFind.c::MatchFinder_ReadBlock() function.
51 If input data size is larger than (4 GiB - dictionary_size),
52 the following code worked incorrectly:
53 - LZMA : LzmaEnc_MemEncode(), LzmaEncode() : LZMA encoding functions
54 for compressing from memory to memory.
55 That BUG is not related to LZMA encoder version that works via streams.
56 - LZMA2 : multi-threaded version of LZMA2 encoder worked incorrectly, if
57 default value of chunk size (CLzma2EncProps::blockSize) is changed
58 to value larger than (4 GiB - dictionary_size).
62 -------------------------
63 - The BUG in 9.31-9.37 was fixed:
64 IArchiveGetRawProps interface was disabled for 7z archives.
65 - The BUG in 9.26-9.36 was fixed:
66 Some code in CPP\7zip\Archive\7z\ worked correctly only under Windows.
70 -------------------------
71 - The BUG in command line version was fixed:
72 7-Zip created temporary archive in current folder during update archive
73 operation, if -w{Path} switch was not specified.
74 The fixed 7-Zip creates temporary archive in folder that contains updated archive.
75 - The BUG in 9.33-9.35 was fixed:
76 7-Zip silently ignored file reading errors during 7z or gz archive creation,
77 and the created archive contained only part of file that was read before error.
78 The fixed 7-Zip stops archive creation and it reports about error.
82 -------------------------
83 - 7zr.exe now support AES encryption.
84 - SFX mudules were added to LZMA SDK
85 - Some bugs were fixed.
89 -------------------------
90 - New class FString for file names at file systems.
91 - Speed optimization in CRC code for big-endian CPUs.
92 - The BUG in Lzma2Dec.c was fixed:
93 Lzma2Decode function didn't work.
97 -------------------------
98 - New small SFX module for installers (SfxSetup).
102 -------------------------
103 - The BUG in LZMA SDK 9.* was fixed: LZMA2 codec didn't work,
104 if more than 10 threads were used (or more than 20 threads in some modes).
108 -------------------------
109 - PPMd compression method support
113 -------------------------
115 Utf16_To_Utf8 funstions in UTFConvert.cpp and 7zMain.c
116 incorrectly converted surrogate characters (the code >= 0x10000) to UTF-8.
117 - Some bugs were fixed
121 -------------------------
122 - Some changes in ANSI-C 7z Decoder interfaces.
126 -------------------------
127 - LZMA2 compression method support
132 -------------------------
137 -------------------------
142 -------------------------
143 - The bug in ANSI-C LZMA Decoder was fixed:
144 If encoded stream was corrupted, decoder could access memory
145 outside of allocated range.
146 - Some changes in ANSI-C 7z Decoder interfaces.
147 - LZMA SDK is placed in the public domain.
151 -------------------------
156 -------------------------
158 LZMA Encoder in fast compression mode could access memory outside of
159 allocated range in some rare cases.
163 -------------------------
164 - ANSI-C LZMA Decoder was rewritten for speed optimizations.
165 - ANSI-C LZMA Encoder was included to LZMA SDK.
166 - C++ LZMA code now is just wrapper over ANSI-C code.
170 -------------------------
171 - Speed optimizations in C++ LZMA Decoder.
172 - Small changes for more compatibility with some C/C++ compilers.
176 -------------------------
177 - .7z ANSI-C Decoder:
178 - now it supports BCJ and BCJ2 filters
179 - now it supports files larger than 4 GB.
180 - now it supports "Last Write Time" field for files.
181 - C++ code for .7z archives compressing/decompressing from 7-zip
182 was included to LZMA SDK.
186 -------------------------
187 - Small changes for more compatibility with some C/C++ compilers.
191 -------------------------
192 - Small changes in .h files in ANSI-C version.
196 -------------------------
197 - The bug in versions 4.33b:4.38b was fixed:
198 C++ version of LZMA encoder could not correctly compress
199 files larger than 2 GB with HC4 match finder (-mfhc4).
203 -------------------------
204 - Fixes in C++ code: code could no be compiled if _NO_EXCEPTIONS was defined.
208 -------------------------
209 - The bug was fixed in C++ version of LZMA Decoder:
210 If encoded stream was corrupted, decoder could access memory
211 outside of allocated range.
215 -------------------------
216 - Compressing speed and memory requirements for compressing were increased
217 - LZMA now can use only these match finders: HC4, BT2, BT3, BT4
221 -------------------------
222 - Java version of LZMA SDK was included
226 -------------------------
227 - Compression ratio was improved in -a2 mode
228 - Speed optimizations for compressing in -a2 mode
229 - -fb switch now supports values up to 273
230 - The bug in 7z_C (7zIn.c) was fixed:
231 It used Alloc/Free functions from different memory pools.
232 So if program used two memory pools, it worked incorrectly.
233 - 7z_C: .7z format supporting was improved
234 - LZMA# SDK (C#.NET version) was included
237 4.27 (Updated) 2005-09-21
238 -------------------------
239 - Some GUIDs/interfaces in C++ were changed.
241 ISequentialInStream::Read now works as old ReadPart
242 ISequentialOutStream::Write now works as old WritePart
246 -------------------------
247 - The bug in LzmaDecodeSize.c was fixed:
248 if _LZMA_IN_CB and _LZMA_OUT_READ were defined,
249 decompressing worked incorrectly.
253 -------------------------
254 - Fixes in 7z_C code and LzmaTest.c:
255 previous versions could work incorrectly,
256 if malloc(0) returns 0
260 -------------------------
261 - Small fixes in C++ code
265 -------------------------
270 -------------------------
271 - Interfaces for ANSI-C LZMA Decoder (LzmaDecode.c) were changed
272 - New additional version of ANSI-C LZMA Decoder with zlib-like interface:
276 - ANSI-C LZMA Decoder now can decompress files larger than 4 GB
280 -------------------------
281 - New example for RAM->RAM compressing/decompressing:
282 LZMA + BCJ (filter for x86 code):
287 - -f86 switch for lzma.exe
291 -------------------------
292 - The bug was fixed in LzmaDecode.c (ANSI-C LZMA Decoder):
293 If _LZMA_OUT_READ was defined, and if encoded stream was corrupted,
294 decoder could access memory outside of allocated range.
295 - Speed optimization of ANSI-C LZMA Decoder (now it's about 20% faster).
296 Old version of LZMA Decoder now is in file LzmaDecodeSize.c.
297 LzmaDecodeSize.c can provide slightly smaller code than LzmaDecode.c
298 - Small speed optimization in LZMA C++ code
299 - filter for SPARC's code was added
300 - Simplified version of .7z ANSI-C Decoder was included
304 -------------------------
305 - The bug in v4.05 was fixed:
306 LZMA-Encoder didn't release output stream in some cases.
310 -------------------------
311 - Source code of filters for x86, IA-64, ARM, ARM-Thumb
312 and PowerPC code was included to SDK
313 - Some internal minor changes
317 -------------------------
318 - More compatibility with some C++ compilers
322 -------------------------
323 - "Benchmark" command was added. It measures compressing
324 and decompressing speed and shows rating values.
325 Also it checks hardware errors.
329 -------------------------
330 - C++ LZMA Encoder/Decoder code now is more portable
331 and it can be compiled by GCC on Linux.
335 -------------------------
336 - Some detection of data corruption was enabled.
337 LzmaDecode.c / RangeDecoderReadByte
346 -------------------------
347 - Original version of LZMA SDK
353 2001-2008: Improvements to LZMA compressing/decompressing code,
354 keeping compatibility with original LZMA format
355 1996-2001: Development of LZMA compression format
359 2001-08-30: LZMA compression was added to 7-Zip
360 1999-01-02: First version of 7-Zip was released