Commit graph

249 commits

Author SHA1 Message Date
ckolivas
f9f880908c Remove the slightly fragile exponential growth buffer size.
It was only speeding up compression a small amount, yet adversely affected compression and would segfault due to the size not being consistent on successive passes.
2011-02-25 10:10:22 +11:00
ckolivas
3a818196cc Perform sanity testing on file information output which detects corrupted archives. 2011-02-25 09:31:35 +11:00
Con Kolivas
573aa534ac Display the offset of each block in verbose information as well. 2011-02-25 09:21:30 +11:00
Con Kolivas
eae38b8645 Move compiler flags to configure and add -O2 as a minimum default flag. 2011-02-24 12:35:42 +11:00
Con Kolivas
dcf62d11a0 Make sure not to make the bufsize larger than the limit.
Drop the page rounding since it is of no demonstrable benefit but adds complexity.
2011-02-24 12:20:06 +11:00
Con Kolivas
22ae326d01 Make it always clear that a failure to allocate a buffer has occurred on compression. 2011-02-24 11:52:30 +11:00
Con Kolivas
8bf60c3114 Don't round to page size if the entire buffer will fit, otherwise this generates one extra pass of a tiny chunk. 2011-02-24 11:38:31 +11:00
Con Kolivas
a0ab78ba8d Update lrzip.conf parser to respect -U, -H, -T, k, and -c options.
Further updates to documentation.
Changes by Peter Hyman <pete@peterhyman.com>
2011-02-24 03:07:57 +11:00
Con Kolivas
d90f670fbd The output from information is confusing on 32 bit when it cuts the available ram for internal use.
Display the actual amount of ram detected, and then decrease the value for calculating what the calculated window will be.
Move the variables to where they're only used locally.
2011-02-23 23:58:50 +11:00
Con Kolivas
402dbbed65 Make sure we don't start shrinking the buffer size. 2011-02-23 15:34:43 +11:00
Con Kolivas
48e7e31dad Make sure to not delete files that already exist and we've refused to overwrite! 2011-02-23 15:01:43 +11:00
Con Kolivas
9fef6ab803 Add verbose and max verbose modes for -i information.
This will give a breakdown of each rzip chunk and compressed block by jumping to each head offset and reading the header information.
2011-02-23 12:59:59 +11:00
Con Kolivas
8edc4bd052 Trivial 2011-02-23 01:29:17 +11:00
Con Kolivas
32ff6edf9a Only set the main process nice value to less when a back-end compression is enabled. 2011-02-23 01:26:51 +11:00
Con Kolivas
e79127ace8 Trivial changes. 2011-02-23 01:22:54 +11:00
Con Kolivas
94673d3fe3 Change the LZO testing option to be a bool on/off instead of taking a confusing parameter.
Make the lzo testing message simpler and only appear when max verbose mode is enabled.
2011-02-23 01:15:18 +11:00
Con Kolivas
fa34905d9d Update documentation. 2011-02-22 21:17:00 +11:00
Con Kolivas
b4bbb14ac4 Strip symbols by default and add -Wall and -W to CXXFLAGS. 2011-02-22 20:43:57 +11:00
Con Kolivas
a8065f2b86 Update version to 0.561. 2011-02-22 20:42:50 +11:00
Con Kolivas
aa9056b461 Minor output fix to prevent %% showing when one thread changes from 100% to be replaced with 10%. 2011-02-22 20:39:13 +11:00
Con Kolivas
9c8b1ee795 Deprecate the -M option as it is no longer of any significant utility compared to the -U option. 2011-02-22 20:38:39 +11:00
Con Kolivas
0f1d447541 Update benchmarks. 2011-02-22 20:26:55 +11:00
Con Kolivas
011344753a With lzma and zpaq, the compression overhead per thread is significant.
As we can work out what that compression overhead is, we can factor that into testing how much ram we can allocate.
There is no advantage to running multiple threads when there is no compression back end so drop to 1 only.
Limit ram for compression back end to 1/3 ram regardless for when OSs lie due to heavy overcommit.
2011-02-22 15:19:31 +11:00
Con Kolivas
bcb857d934 Don't add extra threads for single-threaded decompression case. 2011-02-22 00:58:55 +11:00
Con Kolivas
bb33f7571c Multi-threading speed ups.
Add one more thread on compression and decompression to account for the staggered nature of thread recruitment.
Make the initial buffer slightly smaller and make it progressively larger, thus recruiting threads sooner and more evenly.
This also speeds up decompression for the same reason.
Check the amount of memory being used by each thread on decompression to ensure we don't try to recruit too much ram.
2011-02-22 00:49:50 +11:00
Con Kolivas
88e3df6af1 Print perror before unlinking files.
Join common parts of fatal errors.
Update copyright notices.
Small improvement to visual output.
2011-02-21 16:11:59 +11:00
Con Kolivas
a7b4708bd2 Use a different failure mode for when perror is unlikely to be set.
Add 2 unlikely wrappers.
2011-02-21 14:51:20 +11:00
Con Kolivas
9f3256bda8 Do all file unlinking from the same function.
Delete temporary files generated when testing from stdin.
2011-02-21 14:17:05 +11:00
Con Kolivas
5c80a0957d Add usage() to failure to read stdin/out. 2011-02-21 13:29:45 +11:00
Con Kolivas
b06287cce5 Make it not read stdin from a terminal or write stdout to a terminal unless forced with -f. 2011-02-21 13:26:51 +11:00
Con Kolivas
29dfb16c7a Clean up the messy help output. 2011-02-21 12:49:44 +11:00
Con Kolivas
a85b17a463 Minor help change. 2011-02-21 12:06:49 +11:00
Con Kolivas
74df2b5973 Minor updates to man pages, lrzip.conf example file.
Update main help screen to include environment settings.
Update to respect $TMP environment variable for TMP files.
Updated control structure to include tmpdir pointer.
Update lrzip.conf parser to respect -U -M options.
Update lrzip.conf example to include new parameters.
Reorder main Switch loop in main.c for readability.
Have MAXRAM and control.window be exclusive. MAXRAM wins.
Have UNLIMITED and control.window be exclusive. UNLIMITED wins.
Have UNLIMITED and MAXRAM be exclusive. UNLIMITED wins.
Corrects heuristic computation in rzip.c which would override
MAXRAM or UNLIMITED if control.window set
Show heuristically computed control.window when computed.
Remove display compression level from control.window verbose output.
Update print_verbose format for Testing for incompressible data in stream.c
to omit extra \n.

Changes by Peter Hyman <pete@peterhyman.com>
2011-02-21 12:03:08 +11:00
Con Kolivas
98d264fac8 Update more documentation. 2011-02-21 00:33:23 +11:00
Con Kolivas
3119986634 Update lrztar to take new options in version 0.560 2011-02-21 00:20:41 +11:00
Con Kolivas
0b81d38259 Update version to 0.560 2011-02-21 00:14:03 +11:00
Con Kolivas
f056000f7c Update documentation. 2011-02-21 00:02:14 +11:00
Con Kolivas
d4fb4d025b Update manpage. 2011-02-20 23:22:45 +11:00
Con Kolivas
57e25da244 Update copyright yeah in updated files. 2011-02-20 23:04:44 +11:00
Con Kolivas
c9863e0e60 Change default behaviour to deleting broken or damaged files that occur by interrupting lrzip or that fail integrity testing.
Implement the -k option to optionally keep broken or damaged files.
2011-02-20 23:02:15 +11:00
Con Kolivas
7b073160a3 Can't always open fd_out in runzip for integrity testing, so use fd_hist. 2011-02-20 22:44:10 +11:00
Con Kolivas
9b264959f5 Implement the ability to test the integrity of the file written to disk on decompression. 2011-02-20 22:29:49 +11:00
Con Kolivas
a9881db04a Revert "Remove unused md5_stream function."
This reverts commit b94f68ba41.

Reinstate the md5_stream function enabling file verification.
2011-02-20 21:39:30 +11:00
Con Kolivas
3fa7e75296 Update copyright notices for md5.* 2011-02-20 20:20:21 +11:00
Con Kolivas
8a27dc5057 Changes to make md5 be used for integrity testing.
Add the md5 value to the end of each archive.
This can then be used for integrity testing instead of crc32.
Keep crc in new archives to maintain compatibility with version 0.5 files.
Use md5 integrity testing on decompression when available in preference, and disable calculation of crc32.
Display the choice of integrity testing in verbose output and when -i is used.
Display the md5 and crc values when max verbosity, file info, or display hash is enabled.
Store a new flag in the magic header to show that the md5 value is stored at the end of the file.
Update the magic header information document.
2011-02-20 18:01:19 +11:00
Con Kolivas
44a279579e Add option to display hash information without enabling verbose mode. 2011-02-20 12:20:05 +11:00
Con Kolivas
4036125f94 Make the buffer passed to hash checking page sized which gives a minor speedup. 2011-02-20 12:16:45 +11:00
Con Kolivas
b94f68ba41 Remove unused md5_stream function. 2011-02-19 22:14:47 +11:00
Con Kolivas
744202a47f Remove unused variable. 2011-02-19 10:39:07 +11:00
Con Kolivas
9e589b3d2e Revert "Forgot the md5.x changes to support md5 on decompression."
This reverts commit 006691ca8e.

md5_midstream no longer needed with decompression using existing buffers too now.
2011-02-19 10:35:24 +11:00