lrzip ChangeLog

MAR 2008, Con Kolivas, kernel@kolivas.org
* Numerous changes all over to place restrictions on window
size to work with 32 bit limitations.
* Various bugfixes with respect to detecting buffer sizes and
likelihood of compressibility.
* Fixed the inappropriate straight copying uncompressed data for
files larger than 4GB.
* Re-initiated the 10MB window limits for non-lzma compression.
I was unable to reproduce any file size savings.
* Allow compression windows larger than ramsize if people really
really want them.
* Decrease thresholds for the test function to a minimum of 5%
compressibility since the hanging in lzma compression bug has been
fixed.

JAN 2008, version 0.22, Peter Hyman, pete@peterhyman.com
* version update
lzma/LZMALib.cpp
  Thanks to Lasse Collin for debugging the problem LZMA
  had with hanging on uncompressable files.
  Update for control parameters to both compress and
  decompress functions.
Makefile.in
* use of @top_srcdir@ (Lasse Collin). Also moved away
  more cruft.
main.c stream.c.rzip.h LZMALib.cpp lzmalib.h
* addition of three new control structure members.
  control.lc -- literal context bits
  control.lp -- literal post state bits
  control.pb -- post state bits
  These are needed to ensure decompression will work.
  These will now be stored along with control.compression_level
  in the lrz file beginning at offset 0x16 for three bytes.
  These will be passed to the functions lzma_compresses and
  lzma_uncompress. Currently, only compression level is
  needed or used, but the others are stored for possible future
  use.
  See magic file for more information.
stream.c
* Change to lzo_compresses function that will reject a chunk
  without testing it if the size of the chunk is greater
  than the compression window * threshold. This is to avoid
  a low probability that lzma would still be passed a chunk
  that contains uncompressible data or barely compressible
  data. If after rzip hashing the chunk size is still close
  to the window size, there is hardly anything worth
  compressing. While there is no reason lzma cannot get the
  chunk, this will save a lot of time.
magic.headers.txt
* updated file to show new layout that includes lzma
  parameters.
README-NOT-BACKWARD-COMPATIBLE
* added warning about using lrzip-0.22 with earlier versions.
WHATS-NEW
* highlight of new features.

DEC 2007, version 0.21. Peter Hyman, pete@peterhyman.com
* version update.
* Modified to use Assembler routines from lzma SDK for CRC
  computation when hashing streams in rzip.c and runzip.c.
  Added files 7zCrcT8.c and 7zCrcT8u.s to lzma tree.
  Cleaned up source tree. Moved unused files out of the way.
  Moved non-core docs to doc directory
configure.in
* correct AC_INIT to set program variables.
* modified to add check for nasm assembler.
* modified syntax of test for errno in error.h to use
  echo $ECHO_N/$ECHO_C instead of $ac_n/$ac_c which
  was incorrect.
Makefile.in, lzma/Makefile
* modified to add compile instructions for 7zCrcT8.c
  and 7zCrcT8U.s and Assembler. Cleaned up to remove
  targets that don't exist or sources that don't
  exist.
  Modified to properly set directories. Added doc install.
  Add link command to symlink lrunzip to lrzip.
*main.c
  Add CrcGenerateTable() function to init CRC tables.
  This is needed for all crc routines including those
  in MatchFinderMT.
rzip.c and runzip.c
* Updated source to change call to crc32_buffer to call
  CrcUpdate in the assembler code. Changed parameter order
  to conform.
stream.c
* Removed 10MB limit on streams for bzip, gzip, and lzo.
  This, to improve effeciency of long range analysis. For
  some files, this could improve results.
Current-Benchmarks.txt
* Added file to keep benchmarks current to version.
  (probably need to update README too).
README.Assembler
* Explain how to remove default compile of Assembler
  modules.
config.sub config.guess
* added files for system detection.

DEC 2007, version 0.20. Peter Hyman, pete@peterhyman.com

* Updated to LZMA SDK 4.57.
* Updated to p7zip POSIX version. (www.p7zip.org)
* Added multi-threading support (up to 2x speed with LZMA).
* Edited LZMADecompress.cpp for backward compatibility
  with decompress function. Needed SetPropertiesRaw function.
* Repopulated source tree for distribution.
* Updated Makefile.in to reflect new source files.
  Updated to include command to link lrunzip to lrzip because
  lrzip will test if lrunzip was used on command line.
* Updated Makefile.in for new compile time and linking options.
* Updated LZMALibs.cpp to include new property members for
  LZMAEncoders as well as changed default dictionaries to
  level+16. This would make the default compression level
  of 7 translate to a dictionary number of 23. 
* Added output to show Nice Level when verbose mode set
  Initial add of support for zlib which seems to give quite
  excellent performance.
* configure.in added AC_CHECK for libz and libm.
  Added AC_PROG_LN_S for Makefile symlink section.
* lrzip.1 updated man page for -g option
* main.c added option test for gzip
  Added sysconf(_SC_NPROCESSORS_CONF) for CPU detection
  for threading.
  Updated verbose output to show whether or not
  Threading will be used.
  Added Timer for each file compressed.
* rzip.h added flags for GZIP compression.
  Added control member for threads. Arg passed to
  lzma_conpress.
* stream.c update to accomodate gzip compress and decompress
  functions. Cleaned up file by rearranging functions into
  groups.
  Removed include of lzmalib.h since it was causing a
  compile time warning with zlib.h. Prototyped functions
  manually.
  Cleanup output from lzo_compresses function so that
  unnecessary linefeeds are eliminated.
  lzma_compress function call now uses threads as argument.
* Added README.benchmarks file to explain a method of
  comparing results between different methods.
* LZMALib.cpp, lzmalib.h. Adjust function lzma_compress
  prototype and function to include new argument threads.
  This parameter is now placed in properties. 
* lzma/Makefile. Updated to reflect new API library.
  Updated to include Threading option.

DEC 2007, version 0.19. Con Kolivas.
* Added nice support, defaulting to nice 19.

DEC 2007, version 0.19. Peter Hyman, pete@peterhyman.com

* Major goal was to stop LZMA from hanging on some files.
  Accomplished this with a threhold setting that is used by
  the lzo_compresses function to better analyze chunk data.
  Threshold makes it less likely that uncompressible data
  will be passed to the LZMA compressor.

main.c
* Added Threshold option 1-10 to control LZMA compression attempt.
  Default value=2. This means that anything over 10% compression
  as reported by lzo_compresses will return a true value to
  the LZMA compression function.
* Added verbosity option and more verbosity option (-v[v]).
* Added -O option to specify output directory.
* Updated compress_file and decompress_file functions to handle.
  output directories and better handle multi files and filename
  extensions. Optimized some string handling routines.
  Improved flexibility in determining location of output files
  when using -O. Added fflush(stdout) to improve printf reliability.
* decompress_file will accept any filename and will automatically
  append .lrz if not present. Won't automatically fail.
* Added logic to protect against conflicting options such as
  -q and -v, -o and -O.
* Added printout to screen of options selected. Will display
  only when -v or -vv used.
* Adjusted several printf statements to avoid compiler
  warnings (use %ll for long long int types).

runzip.c
* Added decompression progress indicator.
  Will show percent decompressed along with bytes decompressed
  and total to be decompressed. Will show if -q option NOT used.

rzip.h
* Version incremented to 0.19.
* Added flag DEFINESs for verbosity and more verbosity.
* Updated control struct to include output directory and 
  threshold value. Removed verbosity member.

rzip.c
* Minor changes to handle display when verbosity set. Changed
  number format in some printf statements to properly handle
  unsigned data.

stream.c
* major overhaul of lzo_compresses function to use a threshold
  value when testing a data chunk to see if it is suitable for
  LZMA compression. Optimized test loop to improve performance
  and reduce number of passes. Improved output reporting depending
  on verbosity setting.
* Added print controls for verbosity option.
* Corrected if statements that tested for error condition of
  some lzo functions that only return a true value regardless.

lrzip.1
* updated man page to show new options and explain -T threshold.

README
* updated README to explain -T threshold option.

README.lzo_compresses.test.txt
* Added this file to help explain the theory behind the rewrite
  of the lzo_compresses function and how to use the -T option.

TODO
* wish list and future enhancements.

ChangeLog
* added file.
