
XZ Utils To-Do List
===================

Known bugs
----------

    The test suite is too incomplete.

    If the memory usage limit is less than about 13 MiB, xz is unable to
    automatically scale down the compression settings enough even though
    it would be  possible by switching from BT2/BT3/BT4 match finder to
    HC3/HC4.

    XZ Utils compress some files significantly worse than LZMA Utils.
    This is due to faster compression presets used by XZ Utils, and
    can often be worked around by using "xz --extreme". With some files
    --extreme isn't enough though: it's most likely with files that
    compress extremely well, so going from compression ratio of 0.003
    to 0.004 means big relative increase in the compressed file size.

    xz doesn't quote unprintable characters when it displays file names
    given on the command line.

    tuklib_exit() doesn't block signals => EINTR is possible.

    SIGTSTP is not handled. If xz is stopped, the estimated remaining
    time and calculated (de)compression speed won't make sense in the
    progress indicator (xz --verbose).


Missing features
----------------

    xz doesn't support copying extended attributes, access control
    lists etc. from source to target file.

    Multithreaded compression

    Multithreaded decompression

    Buffer-to-buffer coding could use less RAM (especially when
    decompressing LZMA1 or LZMA2).

    I/O library is not implemented (similar to gzopen() in zlib).
    It will be a separate library that supports uncompressed, .gz,
    .bz2, .lzma, and .xz files.

    lzma_strerror() to convert lzma_ret to human readable form?
    This is tricky, because the same error codes are used with
    slightly different meanings, and this cannot be fixed anymore.


Documentation
-------------

    Some tutorial is needed for liblzma. I have planned to write some
    extremely well commented example programs, which would work as
    a tutorial. I suppose the Doxygen tags are quite OK as a quick
    reference once one is familiar with the liblzma API.

    Document the LZMA1 and LZMA2 algorithms.

