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