Home | History | Annotate | Download | only in DOC
      1 HISTORY of the LZMA SDK
      2 -----------------------
      3 
      4 18.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 
     18 18.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 
     31 18.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 
     42 18.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 
     49 18.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 
     56 17.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 
     70 17.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 
     79 16.04          2016-10-04
     80 -------------------------
     81 - The bug was fixed in DllSecur.c.
     82 
     83 
     84 16.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 
     90 16.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 
     97 16.01          2016-05-19
     98 -------------------------	
     99 - Some internal changes to reduce the number of compiler warnings.
    100 
    101 
    102 16.00          2016-05-10
    103 -------------------------	
    104 - Some bugs were fixed.
    105 
    106 
    107 15.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 
    122 15.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 
    136 9.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 
    144 9.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 
    156 9.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 
    163 9.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 
    171 9.18 beta      2010-11-02
    172 -------------------------	
    173 - New small SFX module for installers (SfxSetup).
    174 
    175 
    176 9.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 
    182 9.11 beta      2010-03-15
    183 -------------------------
    184 - PPMd compression method support
    185    
    186 
    187 9.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 
    195 9.06           2009-08-17
    196 -------------------------
    197 - Some changes in ANSI-C 7z Decoder interfaces.
    198 
    199 
    200 9.04           2009-05-30
    201 -------------------------
    202 - LZMA2 compression method support
    203 - xz format support
    204 
    205 
    206 4.65           2009-02-03
    207 -------------------------
    208 - Some minor fixes
    209 
    210 
    211 4.63           2008-12-31
    212 -------------------------
    213 - Some minor fixes
    214 
    215 
    216 4.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 
    225 4.60 beta      2008-08-19
    226 -------------------------
    227 - Some minor fixes.
    228 
    229 
    230 4.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 
    237 4.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 
    244 4.57           2007-12-12
    245 -------------------------
    246 - Speed optimizations in ++ LZMA Decoder. 
    247 - Small changes for more compatibility with some C/C++ compilers.
    248 
    249 
    250 4.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 
    260 4.43           2006-06-04
    261 -------------------------
    262 - Small changes for more compatibility with some C/C++ compilers.
    263   
    264 
    265 4.42           2006-05-15
    266 -------------------------
    267 - Small changes in .h files in ANSI-C version.
    268   
    269 
    270 4.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 
    277 4.37 beta      2005-04-06
    278 -------------------------
    279 - Fixes in C++ code: code could no be compiled if _NO_EXCEPTIONS was defined. 
    280 
    281 
    282 4.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 
    289 4.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 
    295 4.32           2005-12-09
    296 -------------------------
    297 - Java version of LZMA SDK was included
    298 
    299 
    300 4.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 
    312 4.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 
    320 4.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 
    327 4.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 
    334 4.23           2005-06-29
    335 -------------------------
    336 - Small fixes in C++ code
    337 
    338 
    339 4.22           2005-06-10
    340 -------------------------
    341 - Small fixes
    342 
    343 
    344 4.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 
    354 4.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 
    365 4.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 
    378 4.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 
    384 4.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 
    391 4.04           2004-07-28
    392 -------------------------
    393 - More compatibility with some C++ compilers
    394 
    395 
    396 4.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 
    403 4.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 
    409 4.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 
    420 4.00           2004-02-13
    421 -------------------------
    422 - Original version of LZMA SDK
    423 
    424 
    425 
    426 HISTORY 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 
    438 End of document
    439