diff options
| author | Igor Pavlov <87184205+ip7z@users.noreply.github.com> | 2023-06-21 00:00:00 +0000 |
|---|---|---|
| committer | Igor Pavlov <87184205+ip7z@users.noreply.github.com> | 2023-12-17 14:59:19 +0500 |
| commit | 5b39dc76f1bc82f941d5c800ab9f34407a06b53a (patch) | |
| tree | fe5e17420300b715021a76328444088d32047963 /DOC | |
| parent | 93be7d4abfd4233228f58ee1fbbcd76d91be66a4 (diff) | |
| download | 7zip-5b39dc76f1bc82f941d5c800ab9f34407a06b53a.tar.gz 7zip-5b39dc76f1bc82f941d5c800ab9f34407a06b53a.tar.bz2 7zip-5b39dc76f1bc82f941d5c800ab9f34407a06b53a.zip | |
23.0123.01
Diffstat (limited to 'DOC')
| -rw-r--r-- | DOC/7zip.wxs | 2 | ||||
| -rw-r--r-- | DOC/Methods.txt | 7 | ||||
| -rw-r--r-- | DOC/lzma.txt | 43 | ||||
| -rw-r--r-- | DOC/readme.txt | 49 | ||||
| -rw-r--r-- | DOC/src-history.txt | 22 |
5 files changed, 83 insertions, 40 deletions
diff --git a/DOC/7zip.wxs b/DOC/7zip.wxs index 123182e..df1d320 100644 --- a/DOC/7zip.wxs +++ b/DOC/7zip.wxs | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | <?xml version="1.0"?> | 1 | <?xml version="1.0"?> |
| 2 | 2 | ||
| 3 | <?define VerMajor = "22" ?> | 3 | <?define VerMajor = "23" ?> |
| 4 | <?define VerMinor = "01" ?> | 4 | <?define VerMinor = "01" ?> |
| 5 | <?define VerBuild = "00" ?> | 5 | <?define VerBuild = "00" ?> |
| 6 | <?define MmVer = "$(var.VerMajor).$(var.VerMinor)" ?> | 6 | <?define MmVer = "$(var.VerMajor).$(var.VerMinor)" ?> |
diff --git a/DOC/Methods.txt b/DOC/Methods.txt index d4a1b1d..541f1c1 100644 --- a/DOC/Methods.txt +++ b/DOC/Methods.txt | |||
| @@ -1,8 +1,8 @@ | |||
| 1 | 7-Zip method IDs for 7z and xz archives | 1 | 7-Zip method IDs for 7z and xz archives |
| 2 | --------------------------------------- | 2 | --------------------------------------- |
| 3 | 3 | ||
| 4 | Version: 18.06 | 4 | Version: 23.01 |
| 5 | Date: 2018-06-30 | 5 | Date: 2023-06-30 |
| 6 | 6 | ||
| 7 | Each compression or crypto method in 7z is associated with unique binary value (ID). | 7 | Each compression or crypto method in 7z is associated with unique binary value (ID). |
| 8 | The length of ID in bytes is arbitrary but it can not exceed 63 bits (8 bytes). | 8 | The length of ID in bytes is arbitrary but it can not exceed 63 bits (8 bytes). |
| @@ -37,6 +37,7 @@ List of defined IDs | |||
| 37 | 07 - ARM (little-endian) | 37 | 07 - ARM (little-endian) |
| 38 | 08 - ARMT (little-endian) | 38 | 08 - ARMT (little-endian) |
| 39 | 09 - SPARC | 39 | 09 - SPARC |
| 40 | 0A - ARM64 | ||
| 40 | 41 | ||
| 41 | 21 - LZMA2 | 42 | 21 - LZMA2 |
| 42 | 43 | ||
| @@ -88,6 +89,8 @@ List of defined IDs | |||
| 88 | 0A - Imploding | 89 | 0A - Imploding |
| 89 | 0C - BZip2 (not used. Use {040202} instead) | 90 | 0C - BZip2 (not used. Use {040202} instead) |
| 90 | 0E - LZMA (LZMA-zip) | 91 | 0E - LZMA (LZMA-zip) |
| 92 | |||
| 93 | 5D - ZSTD | ||
| 91 | 5F - xz | 94 | 5F - xz |
| 92 | 60 - Jpeg | 95 | 60 - Jpeg |
| 93 | 61 - WavPack | 96 | 61 - WavPack |
diff --git a/DOC/lzma.txt b/DOC/lzma.txt index a65988f..142feb1 100644 --- a/DOC/lzma.txt +++ b/DOC/lzma.txt | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | LZMA compression | 1 | LZMA compression |
| 2 | ---------------- | 2 | ---------------- |
| 3 | Version: 9.35 | 3 | Version: 23.01 |
| 4 | 4 | ||
| 5 | This file describes LZMA encoding and decoding functions written in C language. | 5 | This file describes LZMA encoding and decoding functions written in C language. |
| 6 | 6 | ||
| @@ -169,12 +169,14 @@ How To compress data | |||
| 169 | Compile files: | 169 | Compile files: |
| 170 | 7zTypes.h | 170 | 7zTypes.h |
| 171 | Threads.h | 171 | Threads.h |
| 172 | Threads.c | ||
| 172 | LzmaEnc.h | 173 | LzmaEnc.h |
| 173 | LzmaEnc.c | 174 | LzmaEnc.c |
| 174 | LzFind.h | 175 | LzFind.h |
| 175 | LzFind.c | 176 | LzFind.c |
| 176 | LzFindMt.h | 177 | LzFindMt.h |
| 177 | LzFindMt.c | 178 | LzFindMt.c |
| 179 | LzFindOpt.c | ||
| 178 | LzHash.h | 180 | LzHash.h |
| 179 | 181 | ||
| 180 | Memory Requirements: | 182 | Memory Requirements: |
| @@ -283,17 +285,26 @@ Return code: | |||
| 283 | Defines | 285 | Defines |
| 284 | ------- | 286 | ------- |
| 285 | 287 | ||
| 286 | _LZMA_SIZE_OPT - Enable some optimizations in LZMA Decoder to get smaller executable code. | 288 | Z7_LZMA_SIZE_OPT - Enable some code size optimizations in LZMA Decoder to get smaller executable code. |
| 287 | 289 | ||
| 288 | _LZMA_PROB32 - It can increase the speed on some 32-bit CPUs, but memory usage for | 290 | Z7_LZMA_PROB32 - It can increase the speed on some 32-bit CPUs, but memory usage for |
| 289 | some structures will be doubled in that case. | 291 | some structures will be doubled in that case. |
| 290 | 292 | ||
| 291 | _LZMA_UINT32_IS_ULONG - Define it if int is 16-bit on your compiler and long is 32-bit. | 293 | Z7_DECL_Int32_AS_long - Define it if int is 16-bit on your compiler and long is 32-bit. |
| 292 | 294 | ||
| 293 | _LZMA_NO_SYSTEM_SIZE_T - Define it if you don't want to use size_t type. | 295 | Z7_DECL_SizeT_AS_unsigned_int - Define it if you don't want to use size_t type. |
| 294 | 296 | ||
| 295 | 297 | ||
| 296 | _7ZIP_PPMD_SUPPPORT - Define it if you don't want to support PPMD method in AMSI-C .7z decoder. | 298 | Defines for 7z decoder written in C |
| 299 | ----------------------------------- | ||
| 300 | These defines are for 7zDec.c only (the decoder in C). | ||
| 301 | C++ 7z decoder doesn't uses these macros. | ||
| 302 | |||
| 303 | Z7_PPMD_SUPPORT - define it if you need PPMD method support. | ||
| 304 | Z7_NO_METHODS_FILTERS - do not use filters (except of BCJ2 filter). | ||
| 305 | Z7_USE_NATIVE_BRANCH_FILTER - use filter for native ISA: | ||
| 306 | use x86 filter, if compiled to x86 executable, | ||
| 307 | use arm64 filter, if compiled to arm64 executable. | ||
| 297 | 308 | ||
| 298 | 309 | ||
| 299 | C++ LZMA Encoder/Decoder | 310 | C++ LZMA Encoder/Decoder |
| @@ -305,20 +316,26 @@ C++ LZMA code is just wrapper over ANSI-C code. | |||
| 305 | 316 | ||
| 306 | C++ Notes | 317 | C++ Notes |
| 307 | ~~~~~~~~~~~~~~~~~~~~~~~~ | 318 | ~~~~~~~~~~~~~~~~~~~~~~~~ |
| 308 | If you use some C++ code folders in 7-Zip (for example, C++ code for .7z handling), | 319 | If you use some C++ code folders in 7-Zip (for example, C++ code for 7z archive handling), |
| 309 | you must check that you correctly work with "new" operator. | 320 | you must check that you correctly work with "new" operator. |
| 310 | 7-Zip can be compiled with MSVC 6.0 that doesn't throw "exception" from "new" operator. | 321 | 7-Zip can be compiled with MSVC 6.0 that doesn't throw "exception" from "new" operator. |
| 311 | So 7-Zip uses "CPP\Common\NewHandler.cpp" that redefines "new" operator: | 322 | So 7-Zip uses "CPP\Common\NewHandler.cpp" that redefines "new" operator, |
| 323 | if compiled by old MSVC compilers (MSVC before version VS 2010): | ||
| 324 | |||
| 312 | operator new(size_t size) | 325 | operator new(size_t size) |
| 313 | { | 326 | { |
| 314 | void *p = ::malloc(size); | 327 | void *p = ::malloc(size); |
| 315 | if (p == 0) | 328 | if (!p) |
| 316 | throw CNewException(); | 329 | throw CNewException(); |
| 317 | return p; | 330 | return p; |
| 318 | } | 331 | } |
| 319 | If you use MSCV that throws exception for "new" operator, you can compile without | 332 | |
| 320 | "NewHandler.cpp". So standard exception will be used. Actually some code of | 333 | If the compiler is VS 2010 or newer, NewHandler.cpp doesn't redefine "new" operator. |
| 321 | 7-Zip catches any exception in internal code and converts it to HRESULT code. | 334 | Sp if you use new compiler (VS 2010 or newer), you still can include "NewHandler.cpp" |
| 335 | to compilation, and it will not redefine operator new. | ||
| 336 | Also you can compile without "NewHandler.cpp" with new compilers. | ||
| 337 | If 7-zip doesn't redefine operator "new", standard exception will be used instead of CNewException. | ||
| 338 | Some code of 7-Zip catches any exception in internal code and converts it to HRESULT code. | ||
| 322 | So you don't need to catch CNewException, if you call COM interfaces of 7-Zip. | 339 | So you don't need to catch CNewException, if you call COM interfaces of 7-Zip. |
| 323 | 340 | ||
| 324 | --- | 341 | --- |
diff --git a/DOC/readme.txt b/DOC/readme.txt index faec8dc..5cd90c5 100644 --- a/DOC/readme.txt +++ b/DOC/readme.txt | |||
| @@ -1,17 +1,18 @@ | |||
| 1 | 7-Zip 22.01 Sources | 1 | 7-Zip 23.01 Sources |
| 2 | ------------------- | 2 | ------------------- |
| 3 | 3 | ||
| 4 | 7-Zip is a file archiver for Windows. | 4 | 7-Zip is a file archiver for Windows. |
| 5 | 5 | ||
| 6 | 7-Zip Copyright (C) 1999-2022 Igor Pavlov. | 6 | 7-Zip Copyright (C) 1999-2023 Igor Pavlov. |
| 7 | 7 | ||
| 8 | 8 | ||
| 9 | License Info | 9 | License Info |
| 10 | ------------ | 10 | ------------ |
| 11 | 11 | ||
| 12 | 7-Zip is free software distributed under the GNU LGPL | 12 | 7-Zip is free software distributed under the GNU LGPL |
| 13 | (except for unRar code). | 13 | (except for unRar code). Also some code |
| 14 | read License.txt for more infomation about license. | 14 | is licensed under the "BSD 3-clause License". |
| 15 | Read "License.txt" for more infomation about license. | ||
| 15 | 16 | ||
| 16 | Notes about unRAR license: | 17 | Notes about unRAR license: |
| 17 | 18 | ||
| @@ -46,13 +47,11 @@ How to compile in Windows | |||
| 46 | ------------------------- | 47 | ------------------------- |
| 47 | 48 | ||
| 48 | To compile the sources to Windows binaries you need Visual Studio compiler and/or Windows SDK. | 49 | To compile the sources to Windows binaries you need Visual Studio compiler and/or Windows SDK. |
| 49 | You can use latest Windows Studio 2017/2019 to compile binaries for x86, x64 and arm64 platforms. | 50 | You can use latest Windows Studio 2017/2019/2022 to compile binaries for x86, x64, arm64 and arm platforms. |
| 50 | Also you can use old compilers for some platforms: | 51 | Also you can use old compilers for some platforms: |
| 51 | x86 : Visual C++ 6.0 with Platform SDK | 52 | x86 : Visual C++ 6.0 with Platform SDK |
| 52 | x64 : Windows Server 2003 R2 Platform SDK | 53 | x64 : Windows Server 2003 R2 Platform SDK |
| 53 | arm64 : Windows Studio 2017 | 54 | ia64 (itanium) : Windows Server 2003 R2 Platform SDK |
| 54 | arm : Windows Studio 2017 | ||
| 55 | ia64 (itanium) : Windows Server 2003 R2 Platform SDK | ||
| 56 | arm for Windows CE : Standard SDK for Windows CE 5.0 | 55 | arm for Windows CE : Standard SDK for Windows CE 5.0 |
| 57 | 56 | ||
| 58 | If you use MSVC6, specify also Platform SDK directories at top of directories lists: | 57 | If you use MSVC6, specify also Platform SDK directories at top of directories lists: |
| @@ -70,7 +69,7 @@ There are two ways to compile 7-Zip binaries: | |||
| 70 | 2) via dsp file in Visual Studio. | 69 | 2) via dsp file in Visual Studio. |
| 71 | 70 | ||
| 72 | The dsp file compiling can be used for development and debug purposes. | 71 | The dsp file compiling can be used for development and debug purposes. |
| 73 | The final 7-Zip binaries are compiled via makefiles, that provide best | 72 | All final 7-Zip binaries are compiled via makefiles, that provide best |
| 74 | optimization options. | 73 | optimization options. |
| 75 | 74 | ||
| 76 | 75 | ||
| @@ -94,8 +93,8 @@ MY_DYNAMIC_LINK | |||
| 94 | Compiling 7-Zip for Unix/Linux | 93 | Compiling 7-Zip for Unix/Linux |
| 95 | ------------------------------ | 94 | ------------------------------ |
| 96 | 95 | ||
| 97 | There are several otpions to compile 7-Zip with different compilers: gcc and clang. | 96 | There are several options to compile 7-Zip with different compilers: gcc and clang. |
| 98 | Also 7-Zip code contains two versions for some critical parts of code: in C and in Assembeler. | 97 | Also 7-Zip code contains two versions for some parts of code: in C and in Assembeler. |
| 99 | So if you compile the version with Assembeler code, you will get faster 7-Zip binary. | 98 | So if you compile the version with Assembeler code, you will get faster 7-Zip binary. |
| 100 | 99 | ||
| 101 | 7-Zip's assembler code uses the following syntax for different platforms: | 100 | 7-Zip's assembler code uses the following syntax for different platforms: |
| @@ -109,13 +108,14 @@ So if you compile the version with Assembeler code, you will get faster 7-Zip bi | |||
| 109 | https://github.com/nidud/asmc | 108 | https://github.com/nidud/asmc |
| 110 | 109 | ||
| 111 | 2) arm64: GNU assembler for ARM64 with preprocessor. | 110 | 2) arm64: GNU assembler for ARM64 with preprocessor. |
| 112 | That systax of that arm64 assembler code in 7-Zip is supported by GCC and CLANG for ARM64. | 111 | That systax is supported by GCC and CLANG for ARM64. |
| 113 | 112 | ||
| 114 | There are different binaries that can be compiled from 7-Zip source. | 113 | There are different binaries that can be compiled from 7-Zip source. |
| 115 | There are 2 main files in folder for compiling: | 114 | There are 2 main files in folder for compiling: |
| 116 | makefile - that can be used for compiling Windows version of 7-Zip with nmake command | 115 | makefile - that can be used for compiling Windows version of 7-Zip with nmake command |
| 117 | makefile.gcc - that can be used for compiling Linux/macOS versions of 7-Zip with make command | 116 | makefile.gcc - that can be used for compiling Linux/macOS versions of 7-Zip or Windows version |
| 118 | 117 | with MINGW (GCC) with make command. | |
| 118 | |||
| 119 | At first you must change the current folder to folder that contains `makefile.gcc`: | 119 | At first you must change the current folder to folder that contains `makefile.gcc`: |
| 120 | 120 | ||
| 121 | cd CPP/7zip/Bundles/Alone2 | 121 | cd CPP/7zip/Bundles/Alone2 |
| @@ -143,7 +143,7 @@ To compile 7-Zip for arm64 with assembler: | |||
| 143 | To compile 7-Zip for arm64 for macOS: | 143 | To compile 7-Zip for arm64 for macOS: |
| 144 | make -j -f ../../cmpl_mac_arm64.mak | 144 | make -j -f ../../cmpl_mac_arm64.mak |
| 145 | 145 | ||
| 146 | Also you can change some compiler options in the mak files: | 146 | Also you can change some compiler options in the "mak" files: |
| 147 | cmpl_gcc.mak | 147 | cmpl_gcc.mak |
| 148 | var_gcc.mak | 148 | var_gcc.mak |
| 149 | warn_gcc.mak | 149 | warn_gcc.mak |
| @@ -207,16 +207,17 @@ Description of 7-Zip sources package | |||
| 207 | 207 | ||
| 208 | DOC Documentation | 208 | DOC Documentation |
| 209 | --- | 209 | --- |
| 210 | 7zFormat.txt - 7z format description | 210 | readme.txt - Readme file |
| 211 | copying.txt - GNU LGPL license | ||
| 212 | unRarLicense.txt - License for unRAR part of source code | ||
| 213 | src-history.txt - Sources history | 211 | src-history.txt - Sources history |
| 212 | 7zC.txt - 7z ANSI-C Decoder description | ||
| 213 | 7zFormat.txt - 7z format description | ||
| 214 | Methods.txt - Compression method IDs | 214 | Methods.txt - Compression method IDs |
| 215 | readme.txt - Readme file | ||
| 216 | lzma.txt - LZMA compression description | 215 | lzma.txt - LZMA compression description |
| 217 | 7zip.nsi - installer script for NSIS | 216 | License.txt - license information |
| 218 | 7zip.wix - installer script for WIX | 217 | copying.txt - GNU LGPL license |
| 219 | 218 | unRarLicense.txt - License for unRAR part of source code | |
| 219 | 7zip.wxs - installer script for WIX | ||
| 220 | 7zip.hhp - html help project file | ||
| 220 | 221 | ||
| 221 | Asm - Source code in Assembler : optimized code for CRC, SHA, AES, LZMA decoding. | 222 | Asm - Source code in Assembler : optimized code for CRC, SHA, AES, LZMA decoding. |
| 222 | 223 | ||
| @@ -250,9 +251,9 @@ Windows common files for Windows related code | |||
| 250 | SFXWin 7z.sfx: Windows 7z SFX module | 251 | SFXWin 7z.sfx: Windows 7z SFX module |
| 251 | SFXSetup 7zS.sfx: Windows 7z SFX module for Installers | 252 | SFXSetup 7zS.sfx: Windows 7z SFX module for Installers |
| 252 | 253 | ||
| 253 | Compress files for compression/decompression | 254 | Compress files for compression / decompression |
| 254 | 255 | ||
| 255 | Crypto files for encryption / decompression | 256 | Crypto files for encryption / decryption |
| 256 | 257 | ||
| 257 | UI | 258 | UI |
| 258 | 259 | ||
diff --git a/DOC/src-history.txt b/DOC/src-history.txt index f546c4e..c1c1b71 100644 --- a/DOC/src-history.txt +++ b/DOC/src-history.txt | |||
| @@ -1,6 +1,28 @@ | |||
| 1 | HISTORY of the 7-Zip source code | 1 | HISTORY of the 7-Zip source code |
| 2 | -------------------------------- | 2 | -------------------------------- |
| 3 | 3 | ||
| 4 | 23.01 2023-06-20 | ||
| 5 | ------------------------- | ||
| 6 | - All external macros for compiling C/C++ code of 7-Zip now have Z7_ prefix. | ||
| 7 | - 7-Zip COM interfaces now use new macros that allow to declare and implement COM interface. | ||
| 8 | - The code has been modified to compile with the maximum diagnostic warning level: | ||
| 9 | -Wall in MSVC and -Weverything in CLANG. | ||
| 10 | And some warning types are disabled in 2 files: | ||
| 11 | - C/Compiler.h for C/C++ code warnings. | ||
| 12 | - CPP/Common/Common.h for C++ code warnings. | ||
| 13 | - Linux/macOS versions of 7-Zip: IUnknown interface in new code doesn't use | ||
| 14 | virtual destructor that was used in previous 7-Zip and p7zip: | ||
| 15 | // virtual ~IUnknown() {} | ||
| 16 | So 7-Zip's dynamically linked shared libraries (codecs) are not compatible | ||
| 17 | between new 7-Zip for Linux/macOS and old 7-Zip (and p7zip). | ||
| 18 | - Some optimizations in filters code: BCJ, BCJ2, Swap* and opthers. | ||
| 19 | - If 7-Zip uses BCJ2 filter for big datasets compressing, it can use additional temp | ||
| 20 | files in system's TEMP folder. 7-Zip uses temp file for additional compressed | ||
| 21 | data stream, if size of such compressed stream is larger than predefined limit: | ||
| 22 | 16 MiB in 32-bit version, 4 GiB in 64-bit version. | ||
| 23 | - Some bugs were fixed. | ||
| 24 | |||
| 25 | |||
| 4 | 22.00 2022-06-16 | 26 | 22.00 2022-06-16 |
| 5 | ------------------------- | 27 | ------------------------- |
| 6 | - 7-Zip interfaces now support high precision (1 ns) timestamps with reserved | 28 | - 7-Zip interfaces now support high precision (1 ns) timestamps with reserved |
