Skip to content

Windows 32/64 binaries, 64 bit-HW accelerated

Latest
Compare
Choose a tag to compare
@fcorbelli fcorbelli released this 13 Nov 18:31
0d6076e

-DNOJIT is now -nojit switch

Now the definition of compilation with -DNOJIT should be obsolete. zpaqfranz automatically detects whether the system supports JIT execution, both at the CPU instruction level and the operating system level. Some systems (e.g., NetBSD) prevent code execution from allocated memory areas (PROT_EXEC). Essentially, the CPU may support JIT, but the operating system doesn't quite agree. It’s not yet fully tested, especially on virtual systems, where the JIT might be incorrectly disabled. Managing all virtualization systems with "fake" CPUs is challenging. I’ll probably add a "forcejit" switch in the next release. In summary: there’s no need to use -DNOJIT during compilation. JIT, as a reminder, accelerates data extraction, while compression speed remains the same.

-tmp

The -tmp switch causes multipart files to be named ".tmp" instead of ".zpaq," renaming them only when they are completed. This allows for running tests and updates in parallel, and also makes it compatible with systems (like Syncthing) that detect file changes and automatically trigger remote updates.

Better password handling

Improved password input handling (with the -key switch), with support (at least theoretically!) for the delete key and cursor movement. When creating an archive, it now prompts for the password twice (which must obviously be the same). Example: zpaqfranz a z:\1.zpaq *.cpp -key.

1980

During creation, the files are stamped with the date 1/1/1980. This makes it easy to identify if the file is incomplete (for example, because the compression was interrupted for any reason, such as a full disk, process kill, and so on). The date is set when the final header, jidac, is written

More placehoderls

On Windows, it's possible to use "placeholders" in file names, such as $pcname, $computername, and $username, which will be automatically replaced. For example, zpaqfranz a z:\pippo_$username c:\nz.

New ZETA hasher / -backupzeta

Now there are (actually, two) new ZETA hashes. They are used to calculate pseudo XXHASH64 hashes in conjunction with the -backupzeta switch of the backup command. OK, it's a rather complicated thing, there's an explanation in the issues. Let me summarize.
When using the backup command, a text file is created (or updated) where MD5 hashes (default behavior) or XXH3 hashes (with the -backupxxh3 switch) are written for integrity checks (they actually also contain QUICK hashes). This requires a re-reading of the written data. That is, when the new chunk is created, for example, okane_00003456.zpaq, zpaqfranz will re-read the okane_00003456.zpaq file (after creating it) to update the index TXT file. Normally, this isn’t a big issue (multipart files are usually small). However, they can become very large (e.g., virtual disks). In this case, the -backupzeta switch will generate a pseudo XXHASH64 hash while generating the archive, WITHOUT needing to re-read the okane_00003456.zpaq file after writing it (it actually also calculates the CRC-32).
As of now, it doesn’t work with encrypted multipart archives (but it will in the future). If anything is unclear, feel free to ask.

-nomore

The -nomore switch disables the internal more command, making external text processing faster. For example, zpaqfranz h h -nomore | less. On 64-bit Windows systems, it also enables support for LargePages (experimental). In reality, it doesn’t improve anything, so I’ll probably remove it in the next release.

Minor fixes for very old compilers (slackware) and others

It’s difficult to maintain compatibility with very old compilers, 32-bit systems, and so on. However, I try to do so with a minimal number of differences compared to the more modern versions. I don’t always succeed, but after all, it’s a hobby project, so please be patient. On the other hand, if anyone has an unused Apple Mx machine, they can let me use it for testing on Apple Silicon

consolidatebackup command renamed to consolidate

List of common switches

You can quickly get with zpaqfranz h common

p7m

On Windows, there is the option to check the FEQ digital signature of hash files for updates. Here's the spiegone https://github.com/fcorbelli/zpaqfranz/wiki/Windows-update

Updated compatibility with HPPA CPUs

Fixed a potential issue with CRC-32 calculation on CPUs that require very strict memory alignment (slower computation, but should be fine for very old and unusual processors, such as 32-bit HP RISC).

IPv6 support (untested)

Using the compilation define -DIVP6 should, and I emphasize "should," make the upgrade command work on IPv6 systems as well. I don't have one available, so I cannot guarantee anything; it's impossible to test and debug. Maybe in the future.

HINT

You can often find small threads about the changes made within the issues, that is, at this link. You might find some "whys" about why certain things are done in a particular way.

https://github.com/fcorbelli/zpaqfranz/issues?q=is%3Aissue

Download zpaqfranz