aboutsummaryrefslogtreecommitdiff
path: root/DOC
diff options
context:
space:
mode:
authorIgor Pavlov <87184205+ip7z@users.noreply.github.com>2023-06-21 00:00:00 +0000
committerIgor Pavlov <87184205+ip7z@users.noreply.github.com>2023-12-17 14:59:19 +0500
commit5b39dc76f1bc82f941d5c800ab9f34407a06b53a (patch)
treefe5e17420300b715021a76328444088d32047963 /DOC
parent93be7d4abfd4233228f58ee1fbbcd76d91be66a4 (diff)
download7zip-5b39dc76f1bc82f941d5c800ab9f34407a06b53a.tar.gz
7zip-5b39dc76f1bc82f941d5c800ab9f34407a06b53a.tar.bz2
7zip-5b39dc76f1bc82f941d5c800ab9f34407a06b53a.zip
23.0123.01
Diffstat (limited to 'DOC')
-rw-r--r--DOC/7zip.wxs2
-rw-r--r--DOC/Methods.txt7
-rw-r--r--DOC/lzma.txt43
-rw-r--r--DOC/readme.txt49
-rw-r--r--DOC/src-history.txt22
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 @@
17-Zip method IDs for 7z and xz archives 17-Zip method IDs for 7z and xz archives
2--------------------------------------- 2---------------------------------------
3 3
4Version: 18.06 4Version: 23.01
5Date: 2018-06-30 5Date: 2023-06-30
6 6
7Each compression or crypto method in 7z is associated with unique binary value (ID). 7Each compression or crypto method in 7z is associated with unique binary value (ID).
8The length of ID in bytes is arbitrary but it can not exceed 63 bits (8 bytes). 8The length of ID in bytes is arbitrary but it can not exceed 63 bits (8 bytes).
@@ -37,6 +37,7 @@ List of defined IDs
3707 - ARM (little-endian) 3707 - ARM (little-endian)
3808 - ARMT (little-endian) 3808 - ARMT (little-endian)
3909 - SPARC 3909 - SPARC
400A - ARM64
40 41
4121 - LZMA2 4221 - 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 @@
1LZMA compression 1LZMA compression
2---------------- 2----------------
3Version: 9.35 3Version: 23.01
4 4
5This file describes LZMA encoding and decoding functions written in C language. 5This file describes LZMA encoding and decoding functions written in C language.
6 6
@@ -169,12 +169,14 @@ How To compress data
169Compile files: 169Compile 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
180Memory Requirements: 182Memory Requirements:
@@ -283,17 +285,26 @@ Return code:
283Defines 285Defines
284------- 286-------
285 287
286_LZMA_SIZE_OPT - Enable some optimizations in LZMA Decoder to get smaller executable code. 288Z7_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 290Z7_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. 293Z7_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. 295Z7_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. 298Defines for 7z decoder written in C
299-----------------------------------
300These defines are for 7zDec.c only (the decoder in C).
301C++ 7z decoder doesn't uses these macros.
302
303Z7_PPMD_SUPPORT - define it if you need PPMD method support.
304Z7_NO_METHODS_FILTERS - do not use filters (except of BCJ2 filter).
305Z7_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
299C++ LZMA Encoder/Decoder 310C++ LZMA Encoder/Decoder
@@ -305,20 +316,26 @@ C++ LZMA code is just wrapper over ANSI-C code.
305 316
306C++ Notes 317C++ Notes
307~~~~~~~~~~~~~~~~~~~~~~~~ 318~~~~~~~~~~~~~~~~~~~~~~~~
308If you use some C++ code folders in 7-Zip (for example, C++ code for .7z handling), 319If you use some C++ code folders in 7-Zip (for example, C++ code for 7z archive handling),
309you must check that you correctly work with "new" operator. 320you must check that you correctly work with "new" operator.
3107-Zip can be compiled with MSVC 6.0 that doesn't throw "exception" from "new" operator. 3217-Zip can be compiled with MSVC 6.0 that doesn't throw "exception" from "new" operator.
311So 7-Zip uses "CPP\Common\NewHandler.cpp" that redefines "new" operator: 322So 7-Zip uses "CPP\Common\NewHandler.cpp" that redefines "new" operator,
323if compiled by old MSVC compilers (MSVC before version VS 2010):
324
312operator new(size_t size) 325operator 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}
319If 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 333If the compiler is VS 2010 or newer, NewHandler.cpp doesn't redefine "new" operator.
3217-Zip catches any exception in internal code and converts it to HRESULT code. 334Sp if you use new compiler (VS 2010 or newer), you still can include "NewHandler.cpp"
335to compilation, and it will not redefine operator new.
336Also you can compile without "NewHandler.cpp" with new compilers.
337If 7-zip doesn't redefine operator "new", standard exception will be used instead of CNewException.
338Some code of 7-Zip catches any exception in internal code and converts it to HRESULT code.
322So you don't need to catch CNewException, if you call COM interfaces of 7-Zip. 339So 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 @@
17-Zip 22.01 Sources 17-Zip 23.01 Sources
2------------------- 2-------------------
3 3
47-Zip is a file archiver for Windows. 47-Zip is a file archiver for Windows.
5 5
67-Zip Copyright (C) 1999-2022 Igor Pavlov. 67-Zip Copyright (C) 1999-2023 Igor Pavlov.
7 7
8 8
9License Info 9License Info
10------------ 10------------
11 11
127-Zip is free software distributed under the GNU LGPL 127-Zip is free software distributed under the GNU LGPL
13(except for unRar code). 13(except for unRar code). Also some code
14read License.txt for more infomation about license. 14is licensed under the "BSD 3-clause License".
15Read "License.txt" for more infomation about license.
15 16
16Notes about unRAR license: 17Notes about unRAR license:
17 18
@@ -46,13 +47,11 @@ How to compile in Windows
46------------------------- 47-------------------------
47 48
48To compile the sources to Windows binaries you need Visual Studio compiler and/or Windows SDK. 49To compile the sources to Windows binaries you need Visual Studio compiler and/or Windows SDK.
49You can use latest Windows Studio 2017/2019 to compile binaries for x86, x64 and arm64 platforms. 50You can use latest Windows Studio 2017/2019/2022 to compile binaries for x86, x64, arm64 and arm platforms.
50Also you can use old compilers for some platforms: 51Also 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
58If you use MSVC6, specify also Platform SDK directories at top of directories lists: 57If 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:
702) via dsp file in Visual Studio. 692) via dsp file in Visual Studio.
71 70
72The dsp file compiling can be used for development and debug purposes. 71The dsp file compiling can be used for development and debug purposes.
73The final 7-Zip binaries are compiled via makefiles, that provide best 72All final 7-Zip binaries are compiled via makefiles, that provide best
74optimization options. 73optimization options.
75 74
76 75
@@ -94,8 +93,8 @@ MY_DYNAMIC_LINK
94Compiling 7-Zip for Unix/Linux 93Compiling 7-Zip for Unix/Linux
95------------------------------ 94------------------------------
96 95
97There are several otpions to compile 7-Zip with different compilers: gcc and clang. 96There are several options to compile 7-Zip with different compilers: gcc and clang.
98Also 7-Zip code contains two versions for some critical parts of code: in C and in Assembeler. 97Also 7-Zip code contains two versions for some parts of code: in C and in Assembeler.
99So if you compile the version with Assembeler code, you will get faster 7-Zip binary. 98So if you compile the version with Assembeler code, you will get faster 7-Zip binary.
100 99
1017-Zip's assembler code uses the following syntax for different platforms: 1007-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
1112) arm64: GNU assembler for ARM64 with preprocessor. 1102) 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
114There are different binaries that can be compiled from 7-Zip source. 113There are different binaries that can be compiled from 7-Zip source.
115There are 2 main files in folder for compiling: 114There 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
119At first you must change the current folder to folder that contains `makefile.gcc`: 119At 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:
143To compile 7-Zip for arm64 for macOS: 143To 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
146Also you can change some compiler options in the mak files: 146Also 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
208DOC Documentation 208DOC 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
221Asm - Source code in Assembler : optimized code for CRC, SHA, AES, LZMA decoding. 222Asm - 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 @@
1HISTORY of the 7-Zip source code 1HISTORY of the 7-Zip source code
2-------------------------------- 2--------------------------------
3 3
423.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
422.00 2022-06-16 2622.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