plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

CHANGES (6251B)


      1 
      2 
      3 0.9.0
      4 ~~~~~
      5 First version.
      6 
      7 
      8 0.9.0a
      9 ~~~~~~
     10 Removed 'ranlib' from Makefile, since most modern Unix-es 
     11 don't need it, or even know about it.
     12 
     13 
     14 0.9.0b
     15 ~~~~~~
     16 Fixed a problem with error reporting in bzip2.c.  This does not effect
     17 the library in any way.  Problem is: versions 0.9.0 and 0.9.0a (of the
     18 program proper) compress and decompress correctly, but give misleading
     19 error messages (internal panics) when an I/O error occurs, instead of
     20 reporting the problem correctly.  This shouldn't give any data loss
     21 (as far as I can see), but is confusing.
     22 
     23 Made the inline declarations disappear for non-GCC compilers.
     24 
     25 
     26 0.9.0c
     27 ~~~~~~
     28 Fixed some problems in the library pertaining to some boundary cases.
     29 This makes the library behave more correctly in those situations.  The
     30 fixes apply only to features (calls and parameters) not used by
     31 bzip2.c, so the non-fixedness of them in previous versions has no
     32 effect on reliability of bzip2.c.
     33 
     34 In bzlib.c:
     35    * made zero-length BZ_FLUSH work correctly in bzCompress().
     36    * fixed bzWrite/bzRead to ignore zero-length requests.
     37    * fixed bzread to correctly handle read requests after EOF.
     38    * wrong parameter order in call to bzDecompressInit in
     39      bzBuffToBuffDecompress.  Fixed.
     40 
     41 In compress.c:
     42    * changed setting of nGroups in sendMTFValues() so as to 
     43      do a bit better on small files.  This _does_ effect
     44      bzip2.c.
     45 
     46 
     47 0.9.5a
     48 ~~~~~~
     49 Major change: add a fallback sorting algorithm (blocksort.c)
     50 to give reasonable behaviour even for very repetitive inputs.
     51 Nuked --repetitive-best and --repetitive-fast since they are
     52 no longer useful.
     53 
     54 Minor changes: mostly a whole bunch of small changes/
     55 bugfixes in the driver (bzip2.c).  Changes pertaining to the
     56 user interface are:
     57 
     58    allow decompression of symlink'd files to stdout
     59    decompress/test files even without .bz2 extension
     60    give more accurate error messages for I/O errors
     61    when compressing/decompressing to stdout, don't catch control-C
     62    read flags from BZIP2 and BZIP environment variables
     63    decline to break hard links to a file unless forced with -f
     64    allow -c flag even with no filenames
     65    preserve file ownerships as far as possible
     66    make -s -1 give the expected block size (100k)
     67    add a flag -q --quiet to suppress nonessential warnings
     68    stop decoding flags after --, so files beginning in - can be handled
     69    resolved inconsistent naming: bzcat or bz2cat ?
     70    bzip2 --help now returns 0
     71 
     72 Programming-level changes are:
     73 
     74    fixed syntax error in GET_LL4 for Borland C++ 5.02
     75    let bzBuffToBuffDecompress return BZ_DATA_ERROR{_MAGIC}
     76    fix overshoot of mode-string end in bzopen_or_bzdopen
     77    wrapped bzlib.h in #ifdef __cplusplus ... extern "C" { ... }
     78    close file handles under all error conditions
     79    added minor mods so it compiles with DJGPP out of the box
     80    fixed Makefile so it doesn't give problems with BSD make
     81    fix uninitialised memory reads in dlltest.c
     82 
     83 0.9.5b
     84 ~~~~~~
     85 Open stdin/stdout in binary mode for DJGPP.
     86 
     87 0.9.5c
     88 ~~~~~~
     89 Changed BZ_N_OVERSHOOT to be ... + 2 instead of ... + 1.  The + 1
     90 version could cause the sorted order to be wrong in some extremely
     91 obscure cases.  Also changed setting of quadrant in blocksort.c.
     92 
     93 0.9.5d
     94 ~~~~~~
     95 The only functional change is to make bzlibVersion() in the library
     96 return the correct string.  This has no effect whatsoever on the
     97 functioning of the bzip2 program or library.  Added a couple of casts
     98 so the library compiles without warnings at level 3 in MS Visual
     99 Studio 6.0.  Included a Y2K statement in the file Y2K_INFO.  All other
    100 changes are minor documentation changes.
    101 
    102 1.0
    103 ~~~
    104 Several minor bugfixes and enhancements:
    105 
    106 * Large file support.  The library uses 64-bit counters to
    107   count the volume of data passing through it.  bzip2.c 
    108   is now compiled with -D_FILE_OFFSET_BITS=64 to get large
    109   file support from the C library.  -v correctly prints out
    110   file sizes greater than 4 gigabytes.  All these changes have
    111   been made without assuming a 64-bit platform or a C compiler
    112   which supports 64-bit ints, so, except for the C library
    113   aspect, they are fully portable.
    114 
    115 * Decompression robustness.  The library/program should be
    116   robust to any corruption of compressed data, detecting and
    117   handling _all_ corruption, instead of merely relying on
    118   the CRCs.  What this means is that the program should 
    119   never crash, given corrupted data, and the library should
    120   always return BZ_DATA_ERROR.
    121 
    122 * Fixed an obscure race-condition bug only ever observed on
    123   Solaris, in which, if you were very unlucky and issued
    124   control-C at exactly the wrong time, both input and output
    125   files would be deleted.
    126 
    127 * Don't run out of file handles on test/decompression when
    128   large numbers of files have invalid magic numbers.
    129 
    130 * Avoid library namespace pollution.  Prefix all exported 
    131   symbols with BZ2_.
    132 
    133 * Minor sorting enhancements from my DCC2000 paper.
    134 
    135 * Advance the version number to 1.0, so as to counteract the
    136   (false-in-this-case) impression some people have that programs 
    137   with version numbers less than 1.0 are in someway, experimental,
    138   pre-release versions.
    139 
    140 * Create an initial Makefile-libbz2_so to build a shared library.
    141   Yes, I know I should really use libtool et al ...
    142 
    143 * Make the program exit with 2 instead of 0 when decompression
    144   fails due to a bad magic number (ie, an invalid bzip2 header).
    145   Also exit with 1 (as the manual claims :-) whenever a diagnostic
    146   message would have been printed AND the corresponding operation 
    147   is aborted, for example
    148      bzip2: Output file xx already exists.
    149   When a diagnostic message is printed but the operation is not 
    150   aborted, for example
    151      bzip2: Can't guess original name for wurble -- using wurble.out
    152   then the exit value 0 is returned, unless some other problem is
    153   also detected.
    154 
    155   I think it corresponds more closely to what the manual claims now.
    156 
    157 
    158 1.0.1
    159 ~~~~~
    160 * Modified dlltest.c so it uses the new BZ2_ naming scheme.
    161 * Modified makefile-msc to fix minor build probs on Win2k.
    162 * Updated README.COMPILATION.PROBLEMS.
    163 
    164 There are no functionality changes or bug fixes relative to version
    165 1.0.0.  This is just a documentation update + a fix for minor Win32
    166 build problems.  For almost everyone, upgrading from 1.0.0 to 1.0.1 is
    167 utterly pointless.  Don't bother.