-
Notifications
You must be signed in to change notification settings - Fork 25
Quickstart Strange Things
Some strange warnings with some compilers (too old, or too new), not MY fault
NOTE1: -, not -- (into switch)
NOTE2: switches ARE case sensitive. -maxsize <> -MAXSIZE
zpaqfranz can translate ZPAQL opcodes into "real" Intel (amd64 or x86+SSE2) code, by default
On other systems a -DNOJIT (arm CPUs for example) will enforce software interpration
Some CPUs does have SHA instructions (typically AMD, not very widespread on Intel).
So you can use a piece of 7-zip by Igor Pavlov (I am sure you know 7z) that is
not really useful, but just for fun (faster BUT with higher latency).
For performances reason, no run-time CPU compatibility checks, must be turn on
via optional -hw switch
On AMD 5950X runs ~1.86 GB/s vs ~951 MB/s
The obj can be assembled from the fixed source code with asmc64
https://github.com/nidud/asmc
asmc64.exe sha1ugo.asm
Then link the .obj and compile with -DHWSHA1
Short version: not worth the effort for the GA release
From build 58+ there is a new -DHWSHA2, without linking of asm, that accelerate SHA256 too
I like -static very much, there are a thousand arguments as to whether it is good or not. There are strengths and weaknesses. Normally I prefer it, you do as you prefer.
The -march=native is a switch that asks the compiler to activate all possible optimizations for the CPU on which zpaqfranz is being compiled. This is to obtain the maximum possible performance, while binding the executable to the processor. It should not be used if you intend, for some reason, to transfer the object program to a different system. If you are compiling from source you can safely use it.
Debian does not "like" anything embedded https://wiki.debian.org/EmbeddedCopies
zpaqfranz (on Windows) have two SFX modules (32 and 64)
and (every platform) a testfile (sha256.zpaq) for extraction autotest
(aka: weird CPUs)
It is possible to make a Debian-package-compliant source code
with some sed (or a single sed -e) (of course remove the |)
sed -i "/DEBIAN|START/,/\/\/\/DEBIA|NEND/d" zpaqfranz.cpp
sed -i "s/\/\/\/char ext|ract_test1/char ext|ract_test1/g" zpaqfranz.cpp
I strongly advise against using zpaqfranz on this Linux distro(s).
There is a bizarre policy on compiling executables.
Obviously no one forbids it (runs fine), but just don't ask for help.