7-Zip now writes additional field for filename in UTF-8 encoding to zip archives.
It allows to extract correct file name from zip archives on different systems.
The command line version of 7-Zip for macOS was released.
The speed for LZMA and LZMA2 decompression in arm64 versions for macOS and Linux was increased by 20%-60%.
Some changes and improvements in ZIP, TAR and NSIS code.
Compiling 7-Zip in Linux.
The fastest and optimized code in 7-Zip for x86/amd64 uses MASM-compatible assembler code. If you need that fastest version, you must install Asmc Macro Assembler in Linux: https://github.com/nidud/asmc
To compile 7-Zip for Linux with Asmc for x86-64:
cd CPP/7zip/Bundles/Alone2
make -j -f ../../cmpl_gcc_x64.mak
To compile 7-Zip without assembler:
cd CPP/7zip/Bundles/Alone2
make -j -f ../../cmpl_gcc.mak
You can use another file instead of cmpl_gcc.mak or rewrite that file or rewrite the file var_gcc.mak. cmpl_gcc.mak - compiling without assembler cmpl_gcc_arm64.mak - compiling with GNU assembler for ARM64 with preprocessor cmpl_gcc_x64.mak - compiling with assembler Asmc cmpl_gcc_x86.mak - compiling with assembler Asmc
note:
7-Zip 21.02 alpha for ARM64 for Windows contained the bug for SHA-1 calculation that worked incorrectly, if processor supports SHA-1 hardware instructions.
7-Zip 21.00 alpha works correctly.
So please use 7-Zip 21.00 alpha for ARM64 instead of versions 20.01 and 20.02.
That problem also will be fixed in next version of 7-Zip 20.03 for ARM64.
❤
3
🎉
2
👍
3
Last edit: Igor Pavlov 2021-05-10
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
SHA-512 for DOT NET RUNTIME:
378dd2a216f4274fdddea6c385dba859ed7dad884214e48cca6e088529e0082486866c5d5e59e30d15baca0ea638963b6e4fb72bee1cac77ef6e12d3bb6f99b2
It will really be needed in future to verify downloads and it is a useful feature for many people to check integrity.
👍
3
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Please try to reduce file set and localize the problem file.
Maybe 7-Zip tries to use the filter for some file.
Or there is the problem with name or symbolic link.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I don't think there's a problem with the files. Only the delta filter is used for the last 1 %. Does not contain a symbolic link.
Runs:
1. error by 10%
2. error by 23%
3. error by 20%
4. all done
It is still not the same file.
Maybe there is a problem with the new solid block.
The 64 KB dictionary uses 32 MB blocks.
With a 1 MB dictionary you will see an error of 50-60%.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
What OS and CPU?
try 7-zip benchmark to check hardware for errors:
7zb20
try some another method instead of lzma2: lzma and deflate
try lzma2 with -mmt1 switch.
try smaller or larger solid blockj sizes.
So try different actions that can reduce set of possible reasons of that failure.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi, thanks for the updated, i'm curious to know if you intend to support the same formats supported by this version of 7zip in the future? Several of those arent in winrar or 7zip.
Igor,
thanks for the release and the source code published. As for the Linux console tool, could you provide an instruction on how to build it on Linux?
Or, perhaps, you cross-compile it from Win, and there's no way to build it right now without writing a custom makefile?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
OK.
I've removed download links to these failed windows-arm64 versions.
hardware SHA-1 in 7-Zip 21.01 and 21.02 works incorrectly with hardware sha-1 instructions.
It's because of compiler bug of VS 2019 for sha-1 code.
The new version of VS compiler probably fixes the problem.
Also I'll change the code. So it will work with "bad" VS compilers too.
Last edit: Igor Pavlov 2021-05-10
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Important correction to previous messages.
My benchmark commands in previous messages were not correct. These commands checked only the speed. The correct command is without -md18 switch.
Please run the following commands with arm and arm64 versions:
7zb-mmt=1"-mm=hash"-mtic=30
Last edit: Igor Pavlov 2021-05-07
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks for tests .
It's MSVS compiler failure for arm64 code.
I'll change the code or/and maybe I'll switch to new version of MSVS, that fixes that problem.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
7-Zip 21.02 alpha was released.
7-Zip for 64-bit Windows x64:
https://7-zip.org/a/7z2102-x64.exe
7-Zip for 32-bit Windows x86:
https://7-zip.org/a/7z2102.exe
7-Zip for 64-bit Windows ARM64 (21.00):
https://7-zip.org/a/7z2100-arm64.exe
7-Zip (console version) for 64-bit Linux x86-64 (AMD64):
https://7-zip.org/a/7z2102-linux-x64.tar.xz
7-Zip (console version) for 32-bit Linux x86:
https://7-zip.org/a/7z2102-linux-x86.tar.xz
7-Zip (console version) for 64-bit Linux ARM64:
https://7-zip.org/a/7z2102-linux-arm64.tar.xz
7-Zip (console version) for 64-bit macOS (x86-64 and ARM64):
https://7-zip.org/a/7z2102-mac.tar.xz
Source code:
https://7-zip.org/a/7z2102-src.7z
What's new after 7-Zip 21.01 alpha:
It allows to extract correct file name from zip archives on different systems.
Compiling 7-Zip in Linux.
The fastest and optimized code in 7-Zip for x86/amd64 uses MASM-compatible assembler code. If you need that fastest version, you must install Asmc Macro Assembler in Linux:
https://github.com/nidud/asmc
To compile 7-Zip for Linux with Asmc for x86-64:
To compile 7-Zip without assembler:
You can use another file instead of
cmpl_gcc.makor rewrite that file or rewrite the filevar_gcc.mak.cmpl_gcc.mak- compiling without assemblercmpl_gcc_arm64.mak- compiling with GNU assembler for ARM64 with preprocessorcmpl_gcc_x64.mak- compiling with assembler Asmccmpl_gcc_x86.mak- compiling with assembler Asmcnote:
7-Zip 21.02 alpha for ARM64 for Windows contained the bug for SHA-1 calculation that worked incorrectly, if processor supports SHA-1 hardware instructions.
7-Zip 21.00 alpha works correctly.
So please use 7-Zip 21.00 alpha for ARM64 instead of versions 20.01 and 20.02.
That problem also will be fixed in next version of 7-Zip 20.03 for ARM64.
Last edit: Igor Pavlov 2021-05-10
Hi Igor,
thank you for the new version.
Is it safe to use it for normal data (Linux version)? Or is it better to wait for the stable version?
Still need:
https://sourceforge.net/p/sevenzip/discussion/45797/thread/dd4edab390/#76d4/718c
Please add SHA-512 in hashing tab!
Microsoft has moved to only provide SHA-512 hashes for some downloads e.g.:
https://dotnet.microsoft.com/download/dotnet/thank-you/sdk-5.0.102-windows-x64-installer
SHA-512 for DOT NET RUNTIME:
378dd2a216f4274fdddea6c385dba859ed7dad884214e48cca6e088529e0082486866c5d5e59e30d15baca0ea638963b6e4fb72bee1cac77ef6e12d3bb6f99b2
It will really be needed in future to verify downloads and it is a useful feature for many people to check integrity.
Hi Igor,
7zz (linux version) returns error after use "7zz a -m0=lzma2 -md64k -mqs":
System ERROR:
E_FAIL : Unspecified error
after reaching 10 %, sometimes more percentage
Log:
Please try to reduce file set and localize the problem file.
Maybe 7-Zip tries to use the filter for some file.
Or there is the problem with name or symbolic link.
I don't think there's a problem with the files. Only the delta filter is used for the last 1 %. Does not contain a symbolic link.
Runs:
1. error by 10%
2. error by 23%
3. error by 20%
4. all done
It is still not the same file.
Maybe there is a problem with the new solid block.
The 64 KB dictionary uses 32 MB blocks.
With a 1 MB dictionary you will see an error of 50-60%.
What OS and CPU?
try 7-zip benchmark to check hardware for errors:
try some another method instead of lzma2:
lzmaanddeflatetry
lzma2with-mmt1switch.try smaller or larger solid blockj sizes.
So try different actions that can reduce set of possible reasons of that failure.
OS: Xubuntu 20.04
CPU: Intel i7-4790K
After many tests, have a new bug (Unauthorized access to memory (SIGSEGV)) with dump.
7zz crashes with small solid blocks or one large solid block.
Try to simplify situation and reduce file set,
Try also
also try to copy the files to another computer (linux or windows), and compress same files with same command in both systems to compare results.
Last edit: Igor Pavlov 2021-05-26
Hi, thanks for the updated, i'm curious to know if you intend to support the same formats supported by this version of 7zip in the future? Several of those arent in winrar or 7zip.
https://mcmilk.de/projects/7-Zip-zstd/
Many thanks for the update!
Speed gain is noticeable with my VM backups.
Last edit: Saltarelli 2021-05-06
Hi Igor,
thanks for the latest update. Do you plan to sign all EXEs anytime soon?
Igor,
thanks for the release and the source code published. As for the Linux console tool, could you provide an instruction on how to build it on Linux?
Or, perhaps, you cross-compile it from Win, and there's no way to build it right now without writing a custom makefile?
https://sourceforge.net/p/sevenzip/discussion/45797/thread/cec5e63147/#94e9/2017/0774
Is it just me or is SHA-1 hashing broken in arm64 (Windows) release?
How did you get it?
I have no windows arm64 device. So I can't test it myself now.
Last edit: Igor Pavlov 2021-05-07
I was wondering why new version could not open a wim file anymore.
"7z h -scrc*" gives wrong SHA1 Hash value (others are correct).
The emulated x64 version does not have the problem, but also does not seems to use the hardware accelerated hashing.
Last edit: JackF 2021-05-07
Please extract previous arm64 versions of 7-Zip .
And check sha-1 with "7z h" with all 3 versions:
https://7-zip.org/a/7z2100-arm64.exe
https://7-zip.org/a/7z2101-arm64.exe
https://7-zip.org/a/7z2102-arm64.exe
also please try different file sizes for test file for "7z h":
0 bytes
1 byte
64 bytes
do you have wrong sha1 for any file size?
Yes, file size does seem not matter.
7z2100-arm64 always print correct SHA1.
Both 7z2101 and 7z2102 always printout equal but a wrong SHA1.
Last edit: JackF 2021-05-07
OK.
I've removed download links to these failed windows-arm64 versions.
hardware SHA-1 in 7-Zip 21.01 and 21.02 works incorrectly with hardware sha-1 instructions.
It's because of compiler bug of VS 2019 for sha-1 code.
The new version of VS compiler probably fixes the problem.
Also I'll change the code. So it will work with "bad" VS compilers too.
Last edit: Igor Pavlov 2021-05-10
please try also 32-bit arm
with sha-1 "7z h".
Last edit: Igor Pavlov 2021-05-07
Important correction to previous messages.
My benchmark commands in previous messages were not correct. These commands checked only the speed. The correct command is without
-md18switch.Please run the following commands with arm and arm64 versions:
Last edit: Igor Pavlov 2021-05-07
The 32bit 7z2102-arm gives correct hash values!
For arm64 the benchmark stops with "Decoding ERROR" message.
Last edit: JackF 2021-05-10
Thanks for tests .
It's MSVS compiler failure for arm64 code.
I'll change the code or/and maybe I'll switch to new version of MSVS, that fixes that problem.