]> git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Source/C/LzmaCompress/Sdk/DOC/lzma-history.txt
BaseTools: Various typo
[mirror_edk2.git] / BaseTools / Source / C / LzmaCompress / Sdk / DOC / lzma-history.txt
1 HISTORY of the LZMA SDK
2 -----------------------
3
4 18.05 2018-04-30
5 -------------------------
6 - The speed for LZMA/LZMA2 compressing was increased
7 by 8% for fastest/fast compression levels and
8 by 3% for normal/maximum compression levels.
9 - Previous versions of 7-Zip could work incorrectly in "Large memory pages" mode in
10 Windows 10 because of some BUG with "Large Pages" in Windows 10.
11 Now 7-Zip doesn't use "Large Pages" on Windows 10 up to revision 1709 (16299).
12 - The BUG was fixed in Lzma2Enc.c
13 Lzma2Enc_Encode2() function worked incorretly,
14 if (inStream == NULL) and the number of block threads is more than 1.
15
16
17 18.03 beta 2018-03-04
18 -------------------------
19 - Asm\x86\LzmaDecOpt.asm: new optimized LZMA decoder written in asm
20 for x64 with about 30% higher speed than main version of LZMA decoder written in C.
21 - The speed for single-thread LZMA/LZMA2 decoder written in C was increased by 3%.
22 - 7-Zip now can use multi-threading for 7z/LZMA2 decoding,
23 if there are multiple independent data chunks in LZMA2 stream.
24 - 7-Zip now can use multi-threading for xz decoding,
25 if there are multiple blocks in xz stream.
26
27
28 18.01 2019-01-28
29 -------------------------
30 - The BUG in 17.01 - 18.00 beta was fixed:
31 XzDec.c : random block unpacking and XzUnpacker_IsBlockFinished()
32 didn't work correctly for xz archives without checksum (CRC).
33
34
35 18.00 beta 2019-01-10
36 -------------------------
37 - The BUG in xz encoder was fixed:
38 There was memory leak of 16 KB for each file compressed with
39 xz compression method, if additional filter was used.
40
41
42 17.01 beta 2017-08-28
43 -------------------------
44 - Minor speed optimization for LZMA2 (xz and 7z) multi-threading compression.
45 7-Zip now uses additional memory buffers for multi-block LZMA2 compression.
46 CPU utilization was slightly improved.
47 - 7-zip now creates multi-block xz archives by default. Block size can be
48 specified with -ms[Size]{m|g} switch.
49 - xz decoder now can unpack random block from multi-block xz archives.
50 - 7-Zip command line: @listfile now doesn't work after -- switch.
51 Use -i@listfile before -- switch instead.
52 - The BUGs were fixed:
53 7-Zip 17.00 beta crashed for commands that write anti-item to 7z archive.
54
55
56 17.00 beta 2017-04-29
57 -------------------------
58 - NewHandler.h / NewHandler.cpp:
59 now it redefines operator new() only for old MSVC compilers (_MSC_VER < 1900).
60 - C/7zTypes.h : the names of variables in interface structures were changed (vt).
61 - Some bugs were fixed. 7-Zip could crash in some cases.
62 - Some internal changes in code.
63
64
65 16.04 2016-10-04
66 -------------------------
67 - The bug was fixed in DllSecur.c.
68
69
70 16.03 2016-09-28
71 -------------------------
72 - SFX modules now use some protection against DLL preloading attack.
73 - Some bugs in 7z code were fixed.
74
75
76 16.02 2016-05-21
77 -------------------------
78 - The BUG in 16.00 - 16.01 was fixed:
79 Split Handler (SplitHandler.cpp) returned incorrect
80 total size value (kpidSize) for split archives.
81
82
83 16.01 2016-05-19
84 -------------------------
85 - Some internal changes to reduce the number of compiler warnings.
86
87
88 16.00 2016-05-10
89 -------------------------
90 - Some bugs were fixed.
91
92
93 15.12 2015-11-19
94 -------------------------
95 - The BUG in C version of 7z decoder was fixed:
96 7zDec.c : SzDecodeLzma2()
97 7z decoder could mistakenly report about decoding error for some 7z archives
98 that use LZMA2 compression method.
99 The probability to get that mistaken decoding error report was about
100 one error per 16384 solid blocks for solid blocks larger than 16 KB (compressed size).
101 - The BUG (in 9.26-15.11) in C version of 7z decoder was fixed:
102 7zArcIn.c : SzReadHeader2()
103 7z decoder worked incorrectly for 7z archives that contain
104 empty solid blocks, that can be placed to 7z archive, if some file is
105 unavailable for reading during archive creation.
106
107
108 15.09 beta 2015-10-16
109 -------------------------
110 - The BUG in LZMA / LZMA2 encoding code was fixed.
111 The BUG in LzFind.c::MatchFinder_ReadBlock() function.
112 If input data size is larger than (4 GiB - dictionary_size),
113 the following code worked incorrectly:
114 - LZMA : LzmaEnc_MemEncode(), LzmaEncode() : LZMA encoding functions
115 for compressing from memory to memory.
116 That BUG is not related to LZMA encoder version that works via streams.
117 - LZMA2 : multi-threaded version of LZMA2 encoder worked incorrectly, if
118 default value of chunk size (CLzma2EncProps::blockSize) is changed
119 to value larger than (4 GiB - dictionary_size).
120
121
122 9.38 beta 2015-01-03
123 -------------------------
124 - The BUG in 9.31-9.37 was fixed:
125 IArchiveGetRawProps interface was disabled for 7z archives.
126 - The BUG in 9.26-9.36 was fixed:
127 Some code in CPP\7zip\Archive\7z\ worked correctly only under Windows.
128
129
130 9.36 beta 2014-12-26
131 -------------------------
132 - The BUG in command line version was fixed:
133 7-Zip created temporary archive in current folder during update archive
134 operation, if -w{Path} switch was not specified.
135 The fixed 7-Zip creates temporary archive in folder that contains updated archive.
136 - The BUG in 9.33-9.35 was fixed:
137 7-Zip silently ignored file reading errors during 7z or gz archive creation,
138 and the created archive contained only part of file that was read before error.
139 The fixed 7-Zip stops archive creation and it reports about error.
140
141
142 9.35 beta 2014-12-07
143 -------------------------
144 - 7zr.exe now support AES encryption.
145 - SFX modules were added to LZMA SDK
146 - Some bugs were fixed.
147
148
149 9.21 beta 2011-04-11
150 -------------------------
151 - New class FString for file names at file systems.
152 - Speed optimization in CRC code for big-endian CPUs.
153 - The BUG in Lzma2Dec.c was fixed:
154 Lzma2Decode function didn't work.
155
156
157 9.18 beta 2010-11-02
158 -------------------------
159 - New small SFX module for installers (SfxSetup).
160
161
162 9.12 beta 2010-03-24
163 -------------------------
164 - The BUG in LZMA SDK 9.* was fixed: LZMA2 codec didn't work,
165 if more than 10 threads were used (or more than 20 threads in some modes).
166
167
168 9.11 beta 2010-03-15
169 -------------------------
170 - PPMd compression method support
171
172
173 9.09 2009-12-12
174 -------------------------
175 - The bug was fixed:
176 Utf16_To_Utf8 funstions in UTFConvert.cpp and 7zMain.c
177 incorrectly converted surrogate characters (the code >= 0x10000) to UTF-8.
178 - Some bugs were fixed
179
180
181 9.06 2009-08-17
182 -------------------------
183 - Some changes in ANSI-C 7z Decoder interfaces.
184
185
186 9.04 2009-05-30
187 -------------------------
188 - LZMA2 compression method support
189 - xz format support
190
191
192 4.65 2009-02-03
193 -------------------------
194 - Some minor fixes
195
196
197 4.63 2008-12-31
198 -------------------------
199 - Some minor fixes
200
201
202 4.61 beta 2008-11-23
203 -------------------------
204 - The bug in ANSI-C LZMA Decoder was fixed:
205 If encoded stream was corrupted, decoder could access memory
206 outside of allocated range.
207 - Some changes in ANSI-C 7z Decoder interfaces.
208 - LZMA SDK is placed in the public domain.
209
210
211 4.60 beta 2008-08-19
212 -------------------------
213 - Some minor fixes.
214
215
216 4.59 beta 2008-08-13
217 -------------------------
218 - The bug was fixed:
219 LZMA Encoder in fast compression mode could access memory outside of
220 allocated range in some rare cases.
221
222
223 4.58 beta 2008-05-05
224 -------------------------
225 - ANSI-C LZMA Decoder was rewritten for speed optimizations.
226 - ANSI-C LZMA Encoder was included to LZMA SDK.
227 - C++ LZMA code now is just wrapper over ANSI-C code.
228
229
230 4.57 2007-12-12
231 -------------------------
232 - Speed optimizations in ?++ LZMA Decoder.
233 - Small changes for more compatibility with some C/C++ compilers.
234
235
236 4.49 beta 2007-07-05
237 -------------------------
238 - .7z ANSI-C Decoder:
239 - now it supports BCJ and BCJ2 filters
240 - now it supports files larger than 4 GB.
241 - now it supports "Last Write Time" field for files.
242 - C++ code for .7z archives compressing/decompressing from 7-zip
243 was included to LZMA SDK.
244
245
246 4.43 2006-06-04
247 -------------------------
248 - Small changes for more compatibility with some C/C++ compilers.
249
250
251 4.42 2006-05-15
252 -------------------------
253 - Small changes in .h files in ANSI-C version.
254
255
256 4.39 beta 2006-04-14
257 -------------------------
258 - The bug in versions 4.33b:4.38b was fixed:
259 C++ version of LZMA encoder could not correctly compress
260 files larger than 2 GB with HC4 match finder (-mfhc4).
261
262
263 4.37 beta 2005-04-06
264 -------------------------
265 - Fixes in C++ code: code could no be compiled if _NO_EXCEPTIONS was defined.
266
267
268 4.35 beta 2005-03-02
269 -------------------------
270 - The bug was fixed in C++ version of LZMA Decoder:
271 If encoded stream was corrupted, decoder could access memory
272 outside of allocated range.
273
274
275 4.34 beta 2006-02-27
276 -------------------------
277 - Compressing speed and memory requirements for compressing were increased
278 - LZMA now can use only these match finders: HC4, BT2, BT3, BT4
279
280
281 4.32 2005-12-09
282 -------------------------
283 - Java version of LZMA SDK was included
284
285
286 4.30 2005-11-20
287 -------------------------
288 - Compression ratio was improved in -a2 mode
289 - Speed optimizations for compressing in -a2 mode
290 - -fb switch now supports values up to 273
291 - The bug in 7z_C (7zIn.c) was fixed:
292 It used Alloc/Free functions from different memory pools.
293 So if program used two memory pools, it worked incorrectly.
294 - 7z_C: .7z format supporting was improved
295 - LZMA# SDK (C#.NET version) was included
296
297
298 4.27 (Updated) 2005-09-21
299 -------------------------
300 - Some GUIDs/interfaces in C++ were changed.
301 IStream.h:
302 ISequentialInStream::Read now works as old ReadPart
303 ISequentialOutStream::Write now works as old WritePart
304
305
306 4.27 2005-08-07
307 -------------------------
308 - The bug in LzmaDecodeSize.c was fixed:
309 if _LZMA_IN_CB and _LZMA_OUT_READ were defined,
310 decompressing worked incorrectly.
311
312
313 4.26 2005-08-05
314 -------------------------
315 - Fixes in 7z_C code and LzmaTest.c:
316 previous versions could work incorrectly,
317 if malloc(0) returns 0
318
319
320 4.23 2005-06-29
321 -------------------------
322 - Small fixes in C++ code
323
324
325 4.22 2005-06-10
326 -------------------------
327 - Small fixes
328
329
330 4.21 2005-06-08
331 -------------------------
332 - Interfaces for ANSI-C LZMA Decoder (LzmaDecode.c) were changed
333 - New additional version of ANSI-C LZMA Decoder with zlib-like interface:
334 - LzmaStateDecode.h
335 - LzmaStateDecode.c
336 - LzmaStateTest.c
337 - ANSI-C LZMA Decoder now can decompress files larger than 4 GB
338
339
340 4.17 2005-04-18
341 -------------------------
342 - New example for RAM->RAM compressing/decompressing:
343 LZMA + BCJ (filter for x86 code):
344 - LzmaRam.h
345 - LzmaRam.cpp
346 - LzmaRamDecode.h
347 - LzmaRamDecode.c
348 - -f86 switch for lzma.exe
349
350
351 4.16 2005-03-29
352 -------------------------
353 - The bug was fixed in LzmaDecode.c (ANSI-C LZMA Decoder):
354 If _LZMA_OUT_READ was defined, and if encoded stream was corrupted,
355 decoder could access memory outside of allocated range.
356 - Speed optimization of ANSI-C LZMA Decoder (now it's about 20% faster).
357 Old version of LZMA Decoder now is in file LzmaDecodeSize.c.
358 LzmaDecodeSize.c can provide slightly smaller code than LzmaDecode.c
359 - Small speed optimization in LZMA C++ code
360 - filter for SPARC's code was added
361 - Simplified version of .7z ANSI-C Decoder was included
362
363
364 4.06 2004-09-05
365 -------------------------
366 - The bug in v4.05 was fixed:
367 LZMA-Encoder didn't release output stream in some cases.
368
369
370 4.05 2004-08-25
371 -------------------------
372 - Source code of filters for x86, IA-64, ARM, ARM-Thumb
373 and PowerPC code was included to SDK
374 - Some internal minor changes
375
376
377 4.04 2004-07-28
378 -------------------------
379 - More compatibility with some C++ compilers
380
381
382 4.03 2004-06-18
383 -------------------------
384 - "Benchmark" command was added. It measures compressing
385 and decompressing speed and shows rating values.
386 Also it checks hardware errors.
387
388
389 4.02 2004-06-10
390 -------------------------
391 - C++ LZMA Encoder/Decoder code now is more portable
392 and it can be compiled by GCC on Linux.
393
394
395 4.01 2004-02-15
396 -------------------------
397 - Some detection of data corruption was enabled.
398 LzmaDecode.c / RangeDecoderReadByte
399 .....
400 {
401 rd->ExtraBytes = 1;
402 return 0xFF;
403 }
404
405
406 4.00 2004-02-13
407 -------------------------
408 - Original version of LZMA SDK
409
410
411
412 HISTORY of the LZMA
413 -------------------
414 2001-2008: Improvements to LZMA compressing/decompressing code,
415 keeping compatibility with original LZMA format
416 1996-2001: Development of LZMA compression format
417
418 Some milestones:
419
420 2001-08-30: LZMA compression was added to 7-Zip
421 1999-01-02: First version of 7-Zip was released
422
423
424 End of document