Lbzip2 Changelog

What's new in Lbzip2 2.5

Jun 16, 2015
  • Fix performance bug in sequential compressor code
  • src/compress.c (do_collect_seq): Release collect semaphore before compressing block. This improves performance a lot.

New in Lbzip2 2.3 (Sep 26, 2013)

  • This version adds a new feature: When decompressing with both --force and --stdout options given, lbzip2 will copy files which are not in bzip2 format, instead of reporting an invalid file format.
  • This release also fixes several minor bugs.

New in Lbzip2 2.0 (Nov 6, 2011)

  • In this release, lbzip2 writes a single compressed stream per bz2 file instead of multiple concatenated streams.
  • It doesn't decompress streams embedded within trailing garbage.
  • It detects and rejects more kinds of invalid bz2 files.
  • Relying on the independent bzip2 stack written by the new maintainer, lbzip2-2.0 features significantly improved (de)compression speed and robustness.
  • In verbose mode, the compression ratio and progress information is displayed for each file.
  • Decompression failures result in more detailed messages now.
  • Lbzip2-2.x is licensed under the GPL v3.0 or any later version.

New in Lbzip2 0.17 (Oct 29, 2009)

  • Uninitialized fields were accessed on the stack in a structure assignment expression.
  • Theoretically, this might have entailed read accesses to trap representations.
  • Since those fields weren't initialized because they weren't used at all in the first place, this portability bug was fixed by introducing a dedicated structure without those fields.

New in Lbzip2 0.16 RC1 (Oct 21, 2009)

  • Features like settable compression block size and working with file operands were implemented.
  • lbzip2 can now be considered a multi-threaded, command-line compatible replacement for bzip2 in most situations. Lbzip2 never deletes or overwrites files, however.
  • The workaround for an earlier GNU getconf bug was extended to EGLIBC in the large file support build script.
  • The development status was degraded to beta.

New in Lbzip2 0.15 (Apr 6, 2009)

  • A bug has been fixed where the single-worker decompressor could theoretically omit to decompress the last part of the compressed input and wrongfully signify premature EOF instead.
  • In this release, logically independent buffer sizes are detached from each other.
  • Several buffer sizes should be more IO-friendly now.
  • The splitterblock size of the multiple-workers decompressor was recalculated; an effort was made to deduce it formally in comments.
  • The"malloc_trace.pl" script tracks peak memory usage.
  • The documentation was refined.

New in Lbzip2 0.14 (Mar 16, 2009)

  • The single-worker decompressor's multiplexer, while passing back all accrued released input slots to the splitter, wrote out at most one decompressed sub-block per one iteration of its outermost loop. In case of a slowly progressing muxer, this could lead to skyrocketing memory allocation on part of the worker.
  • Now the SWD's muxer writes out all accrued decompressed sub-blocks per iteration. The documentation has been updated.
  • The build system has received a minuscule portability improvement.

New in Lbzip2 0.13 (Jan 29, 2009)

  • Besides some code cleanup, various portability and other workarounds were introduced to cope with bugs in C libraries, shells, and upstream bzip2.

New in Lbzip2 0.12 (Jan 26, 2009)

  • The shell script test.sh tests the installed instance of lbzip2, which can be different from the currently built one. pbzip2 is not a requirement for testing anymore, but test.sh will try to measure its performance if it's available.
  • The same applies to the bzip2 module of 7za (from p7zip).
  • Some GNU/Linux specific hints on enabling SUSv2 conformance (which is required for building and testing) were added to the README.

New in Lbzip2 0.11 (Jan 21, 2009)

  • This release adds support for testing by end-users in a portable way.

New in Lbzip2 0.10 (Jan 19, 2009)

  • Testing on a 128-core HP SuperDome showed a known bottleneck in the multiple-workers decompressor to be significant on many-core machines: whenever there were fewer input blocks than cores, the work was distributed unevenly.
  • Hence, the splitter-to-workers queue of "scan and decompress" tasks was replaced with two queues: a low priority, splitter-to-workers one of "scan" tasks, and a high priority, workers-to-workers one of "decompress" tasks.
  • Alas, this also increased the number of context switches.
  • The new worker broadcast conditions were formally proven in the comments.

New in Lbzip2 0.09 (Jan 6, 2009)

  • Now the Makefiles, with the help of the standard getconf utility, select a programming environment, if there is one, in which large files are supported.

New in Lbzip2 0.08 (Dec 5, 2008)

  • In the multiple-workers decompressor, the tail pointer of the splitter-to-workers queue proved to be private to the splitter. Accordingly, said pointer was eliminated as a shared resource, simplifying the code.

New in Lbzip2 0.07 (Nov 30, 2008)

  • A manual page that uses the man macro package was added.
  • The README file describes the compressed output and why there is only one exit status for all types of errors.
  • A more portable Makefile was created.
  • A little code was cleaned up.