Bump version and update changelog for 1.3.0 release.

Fix issue #3.
This commit is contained in:
Moinak Ghosh 2013-01-29 21:42:54 +05:30
parent a03e3ba41b
commit 9983d79e62
3 changed files with 60 additions and 2 deletions

View file

@ -1,3 +1,48 @@
== 1.3.0 Major Performance Release ==
Fix return from parallel versions of Keccak_Hash() function.
Add parallel versions of various checksums for single-segment, single-thread compression.
Use BLAKE2 parallel version for single-chunk archives (whole file in one chunk).
Set decompression threads correctly for single-chunk archives.
Update default checksum to BLAKE256.
Add optimized BLAKE2 implementations with runtime detection of CPU capability (SSE/AVX).
Major changes to use Intel's optimized SHA512 code for SHA512 and SHA512/256.
Remove earlier SHA256 code which is slower than SHA512/256 (on 64-bit CPU).
Use HMAC from Alan Saddi's implementation for cleaner, faster code.
Changes for generalized runtime SSE/AVX/XOP detection.
Multi instruction set XXhash build with runtime selection.
Extend CPUID code to detect more instruction sets.
Add options for BLAKE2 hash.
Move GCC builtins into utils header.
Bump file format version number due to extended digest flags.
Add descriptions to digest list.
Rationalize XXHash implementation to deal with 32-byte blocks instead of 16-byte.
Fix XXHash performance degradation for small keys.
Modify a data analysis loop in adaptive compress to make it auto-vectorizable.
Improve Deduplication throughtput by 90%.
Use SSE4 register as sliding window for default 16-byte window size.
Use local variable for sliding window position to avoid spurios memory access in non-SIMD case.
Avoid computing breakpoint check value if processed length < minimum block length.
Improve SSE version detection.
Add SSE4 detection.
Fix setting of some opt flags in Makefile.in.
Many optimization tweaks
Optimize Rabin Deduplication and Bsdiff
Vectorize XXHash using SSE4
Add SSE2 improvements to CTR mode AES.
Add debug print of encryption and HMAC throughput.
Fix error message for invalid option.
Implement algo-specific minimum distance match for Delta Compression.
Fixes and performance improvements for Dedupe Delta Compression
Avoid using fingerprints in minhash computation and fix write amplification
Modify min-heap to use 64bit values
Improve bsdiff performance
Fix pointer comparison in bsdiff
Use 32bit offsets in bsdiff to reduce memory usage
Improve Zero RLE Encoder performance
Add more buffer overflow checks in Zero RLE Decoder
Use SSE3 lddqu in the matchfinder if SSE3 is enabled.
Remove outdated LZP note.
== 1.2.0 Major Stable Release == == 1.2.0 Major Stable Release ==
Fix issue #1 and issue #2. Fix issue #1 and issue #2.
Enable building with older openssl (at least 0.9.8e). Enable building with older openssl (at least 0.9.8e).

15
main.c
View file

@ -35,6 +35,7 @@
#include <strings.h> #include <strings.h>
#include <limits.h> #include <limits.h>
#include <unistd.h> #include <unistd.h>
#include <signal.h>
#if defined(sun) || defined(__sun) #if defined(sun) || defined(__sun)
#include <sys/byteorder.h> #include <sys/byteorder.h>
#else #else
@ -99,7 +100,7 @@ static int cksum_bytes, mac_bytes;
static int cksum = 0, t_errored = 0; static int cksum = 0, t_errored = 0;
static int rab_blk_size = 0; static int rab_blk_size = 0;
static crypto_ctx_t crypto_ctx; static crypto_ctx_t crypto_ctx;
static char *pwd_file = NULL; static char *pwd_file = NULL, *f_name = NULL;
static void static void
usage(void) usage(void)
@ -185,6 +186,15 @@ show_compression_stats(uint64_t chunksize)
bytes_to_size(avg_chunk), (double)avg_chunk/(double)chunksize*100); bytes_to_size(avg_chunk), (double)avg_chunk/(double)chunksize*100);
} }
void
Int_Handler(int signo)
{
if (f_name != NULL) {
unlink(f_name);
}
exit(1);
}
/* /*
* Wrapper functions to pre-process the buffer and then call the main compression routine. * Wrapper functions to pre-process the buffer and then call the main compression routine.
* At present only LZP pre-compression is used below. Some extra metadata is added: * At present only LZP pre-compression is used below. Some extra metadata is added:
@ -1658,6 +1668,9 @@ start_compress(const char *filename, uint64_t chunksize, int level)
perror("mkstemp "); perror("mkstemp ");
COMP_BAIL; COMP_BAIL;
} }
f_name = tmpfile1;
signal(SIGINT, Int_Handler);
signal(SIGTERM, Int_Handler);
} else { } else {
/* /*
* Use stdin/stdout for pipe mode. * Use stdin/stdout for pipe mode.

View file

@ -42,7 +42,7 @@ extern "C" {
#define FLAG_DEDUP 1 #define FLAG_DEDUP 1
#define FLAG_DEDUP_FIXED 2 #define FLAG_DEDUP_FIXED 2
#define FLAG_SINGLE_CHUNK 4 #define FLAG_SINGLE_CHUNK 4
#define UTILITY_VERSION "1.2.0" #define UTILITY_VERSION "1.3.0"
#define MASK_CRYPTO_ALG 0x30 #define MASK_CRYPTO_ALG 0x30
#define MAX_LEVEL 14 #define MAX_LEVEL 14