TODO revision 267654
1
2XZ Utils To-Do List
3===================
4
5Known bugs
6----------
7
8    The test suite is too incomplete.
9
10    If the memory usage limit is less than about 13 MiB, xz is unable to
11    automatically scale down the compression settings enough even though
12    it would be  possible by switching from BT2/BT3/BT4 match finder to
13    HC3/HC4.
14
15    The code to detect number of CPU cores doesn't count hyperthreading
16    as multiple cores. In context of xz, it probably should.
17    Hyperthreading is good at least with p7zip.
18
19    XZ Utils compress some files significantly worse than LZMA Utils.
20    This is due to faster compression presets used by XZ Utils, and
21    can often be worked around by using "xz --extreme". With some files
22    --extreme isn't enough though: it's most likely with files that
23    compress extremely well, so going from compression ratio of 0.003
24    to 0.004 means big relative increase in the compressed file size.
25
26    xz doesn't quote unprintable characters when it displays file names
27    given on the command line.
28
29    tuklib_exit() doesn't block signals => EINTR is possible.
30
31    SIGTSTP is not handled. If xz is stopped, the estimated remaining
32    time and calculated (de)compression speed won't make sense in the
33    progress indicator (xz --verbose).
34
35
36Missing features
37----------------
38
39    xz doesn't support copying extended attributes, access control
40    lists etc. from source to target file.
41
42    Multithreaded compression
43
44    Multithreaded decompression
45
46    Buffer-to-buffer coding could use less RAM (especially when
47    decompressing LZMA1 or LZMA2).
48
49    I/O library is not implemented (similar to gzopen() in zlib).
50    It will be a separate library that supports uncompressed, .gz,
51    .bz2, .lzma, and .xz files.
52
53    lzma_strerror() to convert lzma_ret to human readable form?
54    This is tricky, because the same error codes are used with
55    slightly different meanings, and this cannot be fixed anymore.
56
57
58Documentation
59-------------
60
61    Some tutorial is needed for liblzma. I have planned to write some
62    extremely well commented example programs, which would work as
63    a tutorial. I suppose the Doxygen tags are quite OK as a quick
64    reference once one is familiar with the liblzma API.
65
66    Document the LZMA1 and LZMA2 algorithms.
67
68