Pls explain in simple words what new option is for, I mean usage cases - "Memory usage for compressing" - what value should I choose there to compress file faster and / or without output filesize hurting (usually I use LZMA2 ultra by default with max dictionary size)
Last edit: necros 2021-11-26
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Default value with asterisk * (80%) is good enough for most cases. It means that system will have at least 20% of RAM for another purposes.
You can try to change "Memory usage for compressing" option , if your system is 32-bit, or if you use virtual machine with complicated memory allocation.
👍
1
Last edit: Igor Pavlov 2021-11-26
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
-mmemuse value in bytes must fit in 64-bit number.
You can use -mmemuse=100t to get big value 100 TiB.
So it will work as unlimited memory use options.
But real memory usage still will be limited by the number of threads and by dictionary size. So real memory usage will be smaller than specified 100 TiB.
👍
2
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
-mmemuse=p100 can use up to 100% of physical memory in 64-bit system.
The main purpose of that option, that we don't want memory swapping in 7-zip compression process. So we must set "memory usage" below of 100% of physical memory.
Also note, that -mmemuse reduces only the number of threads. It doesn't reduce the dictionary size. So 7-Zip still can use more memory than specified, if it's required for smaller thread number.
👍
2
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I enter via 7zip explorer to the 7zip installation folder, then I enter to the Lang folder, and I get trapped there, there is not ... to go upper in the folder of 7zip. That is happening in windows 8.1 operative system.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank Igor. Your work is much appreciated.
I think I have a Windows installer regression. I've recently installed 2104/2105 by directly invoking the installer without uninstalling a previous version. In both cases the windows "apps" listing cleaned the old uninstaller version. However when I ran the 2016 installer the 2105 AND 2106 entries remained in the apps list.
I know this used to happen and was pleased to see it fixed when I ran the 2104/2105 installers.
I should note that when I ran the 2104/2105 installers I ran the EXE version but when I ran 2106, I had the MSI installer. I will also note that I've had this issue with Win10 20H2 on BOTH 32 and 64 bits platforms.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I can control details of exe installer, but MSI installer is big "system magic". I suppose that it's difficult to keep MSI/EXE installers fully compatible between themselves. So I allow some different registry keys for them.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
By the way: you can use jwasm, it only chokes on AesOpt.asm but the rest assembles fine. So if you can't use asmc you need to compile the AES sources with asm disabled (better than having asm disabled entirely I guess).
make sure "asmc" is a link to "jwasm"
cd CPP/7zip/Bundles/Alone2
build with asm, ignore errors: USE_ASM=1 IS_X64=1 make -j4 -k -f makefile.gcc
rebuild AES files without asm: rm -f _o/Aes.o _o/MyAes.o && IS_X64=1 make -j4 -f makefile.gcc
link with ASM enabled: USE_ASM=1 IS_X64=1 make -j4 -f makefile.gcc
Last edit: Marshall 2021-11-28
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Would be great if installing MSI over an existing EXE installation removed references to the EXE installer (uninstaller, registry), and the other way around if installing EXE over MSI. Would make the life easier for sysadmins and package managers (like Winget and Patch My PC).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'll take a look at the makefiles and see if I can make unrar optional.
Update:
Here's a patch.
Now you can set USE_JWASM=1 to build with jwasm instead of asmc and set DISABLE_RAR=1 to disable rar entirely. I've also added a distclean target and I've added "-nologo" to the AFLAGS.
Maybe something will be done with the unrar setting (configuration as an option) so that it can be deactivated correctly. Arch Linux and OpenSUSE use the full package, but Debian actually removes rar files (not very elegantly).
Slackware maintainer (and BDFL) is reluctant to include 7-Zip as part of Slackware due to licensing issues. The possibility of deactivating unrar would help to accept the package.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks a lot for a release build with the newer code!
I'm very happy that I can still put the "CRC SHA" menu into the root of the context menu, feared for a second that wasn't possible.
Is it somehow possible to make 7zip->CRC SHA show the hash with upper case letters like in 19,00 instead of the new lower case letters? I find it harder to quickly look at hashes when they're lower case like now. I can't see any setting in 7zip to change it, so maybe a registry change or other options?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
lower case hex is common for sha-1 and sha-256 in another programs. So I tried to keep better compatibility with another programs.
Also I suppose that lower case is simpler to read because lower case letters are smaller than numbers . So it's simpler to keep focus position in long sequence. Also in lower case it's simpler to distinguish 0 vs D/d, and 8 vs B/ b.
Last edit: Igor Pavlov 2021-12-03
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
What is the maximum value for the "-memuse = {N} g" switch?
Maybe 16777215 ?
Pls explain in simple words what new option is for, I mean usage cases - "Memory usage for compressing" - what value should I choose there to compress file faster and / or without output filesize hurting (usually I use LZMA2 ultra by default with max dictionary size)
Last edit: necros 2021-11-26
Default value with asterisk
*
(80%) is good enough for most cases. It means that system will have at least 20% of RAM for another purposes.You can try to change "Memory usage for compressing" option , if your system is 32-bit, or if you use virtual machine with complicated memory allocation.
Last edit: Igor Pavlov 2021-11-26
What is the maximum value for the "-memuse = {N} g" switch?
word?
-mmemuse
value in bytes must fit in 64-bit number.You can use
-mmemuse=100t
to get big value 100 TiB.So it will work as unlimited memory use options.
But real memory usage still will be limited by the number of threads and by dictionary size. So real memory usage will be smaller than specified 100 TiB.
The "-mmemuse 100%" option uses 100% free memory only or virtual memory?
-mmemuse=p100
can use up to 100% of physical memory in 64-bit system.The main purpose of that option, that we don't want memory swapping in 7-zip compression process. So we must set "memory usage" below of 100% of physical memory.
Also note, that
-mmemuse
reduces only the number of threads. It doesn't reduce the dictionary size. So 7-Zip still can use more memory than specified, if it's required for smaller thread number.How do I set the "-mmemuse" options to be like version 19.00?
I enter via 7zip explorer to the 7zip installation folder, then I enter to the Lang folder, and I get trapped there, there is not ... to go upper in the folder of 7zip. That is happening in windows 8.1 operative system.
There is "up" button in top.
Also you can use keys:
Backspace
or
Ctrl + Page Up
Also you can enable ".." item in options, if you like that option.
Last edit: Igor Pavlov 2021-11-26
Thank Igor. Your work is much appreciated.
I think I have a Windows installer regression. I've recently installed 2104/2105 by directly invoking the installer without uninstalling a previous version. In both cases the windows "apps" listing cleaned the old uninstaller version. However when I ran the 2016 installer the 2105 AND 2106 entries remained in the apps list.
I know this used to happen and was pleased to see it fixed when I ran the 2104/2105 installers.
I should note that when I ran the 2104/2105 installers I ran the EXE version but when I ran 2106, I had the MSI installer. I will also note that I've had this issue with Win10 20H2 on BOTH 32 and 64 bits platforms.
I can control details of exe installer, but MSI installer is big "system magic". I suppose that it's difficult to keep MSI/EXE installers fully compatible between themselves. So I allow some different registry keys for them.
Sounds like a reason to avoid the "Magic System Installer" altogether!
switch -mmemuse={N}g / -mmemuse=p{N} for decompressing ?????????
ex: 7z x -mmemuse=64g
Last edit: PiotrMP006 2021-11-26
it's supported for decompression same way.
Problem solved thanks Igor....
By the way: you can use jwasm, it only chokes on AesOpt.asm but the rest assembles fine. So if you can't use asmc you need to compile the AES sources with asm disabled (better than having asm disabled entirely I guess).
make sure "asmc" is a link to "jwasm"
cd CPP/7zip/Bundles/Alone2
build with asm, ignore errors: USE_ASM=1 IS_X64=1 make -j4 -k -f makefile.gcc
rebuild AES files without asm: rm -f _o/Aes.o _o/MyAes.o && IS_X64=1 make -j4 -f makefile.gcc
link with ASM enabled: USE_ASM=1 IS_X64=1 make -j4 -f makefile.gcc
Last edit: Marshall 2021-11-28
Would be great if installing MSI over an existing EXE installation removed references to the EXE installer (uninstaller, registry), and the other way around if installing EXE over MSI. Would make the life easier for sysadmins and package managers (like Winget and Patch My PC).
Can 7-Zip 21.06 for Linux be compiled without unRAR support?
Yes, if you remove rar files from makefile.
I'll take a look at the makefiles and see if I can make unrar optional.
Update:
Here's a patch.
Now you can set USE_JWASM=1 to build with jwasm instead of asmc and set DISABLE_RAR=1 to disable rar entirely. I've also added a distclean target and I've added "-nologo" to the AFLAGS.
Last edit: Marshall 2021-11-30
Maybe something will be done with the unrar setting (configuration as an option) so that it can be deactivated correctly.
Arch Linux and OpenSUSE use the full package, but Debian actually removes rar files (not very elegantly).
Slackware maintainer (and BDFL) is reluctant to include 7-Zip as part of Slackware due to licensing issues. The possibility of deactivating unrar would help to accept the package.
Hi Igor.
Thanks a lot for a release build with the newer code!
I'm very happy that I can still put the "CRC SHA" menu into the root of the context menu, feared for a second that wasn't possible.
Is it somehow possible to make 7zip->CRC SHA show the hash with upper case letters like in 19,00 instead of the new lower case letters? I find it harder to quickly look at hashes when they're lower case like now. I can't see any setting in 7zip to change it, so maybe a registry change or other options?
lower case hex is common for sha-1 and sha-256 in another programs. So I tried to keep better compatibility with another programs.
Also I suppose that lower case is simpler to read because lower case letters are smaller than numbers . So it's simpler to keep focus position in long sequence. Also in lower case it's simpler to distinguish
0
vsD
/d
, and8
vsB
/b
.Last edit: Igor Pavlov 2021-12-03