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.