1207753Smm
2207753SmmXZ Utils To-Do List
3207753Smm===================
4207753Smm
5207753SmmKnown bugs
6207753Smm----------
7207753Smm
8207753Smm    The test suite is too incomplete.
9207753Smm
10207753Smm    If the memory usage limit is less than about 13 MiB, xz is unable to
11207753Smm    automatically scale down the compression settings enough even though
12207753Smm    it would be  possible by switching from BT2/BT3/BT4 match finder to
13207753Smm    HC3/HC4.
14207753Smm
15207753Smm    The code to detect number of CPU cores doesn't count hyperthreading
16207753Smm    as multiple cores. In context of xz, it probably should.
17207753Smm    Hyperthreading is good at least with p7zip.
18207753Smm
19207753Smm    XZ Utils compress some files significantly worse than LZMA Utils.
20207753Smm    This is due to faster compression presets used by XZ Utils, and
21215187Smm    can often be worked around by using "xz --extreme". With some files
22215187Smm    --extreme isn't enough though: it's most likely with files that
23215187Smm    compress extremely well, so going from compression ratio of 0.003
24215187Smm    to 0.004 means big relative increase in the compressed file size.
25207753Smm
26207753Smm    xz doesn't quote unprintable characters when it displays file names
27207753Smm    given on the command line.
28207753Smm
29207753Smm    tuklib_exit() doesn't block signals => EINTR is possible.
30207753Smm
31215187Smm    SIGTSTP is not handled. If xz is stopped, the estimated remaining
32215187Smm    time and calculated (de)compression speed won't make sense in the
33215187Smm    progress indicator (xz --verbose).
34207753Smm
35215187Smm
36207753SmmMissing features
37207753Smm----------------
38207753Smm
39207753Smm    xz doesn't support copying extended attributes, access control
40207753Smm    lists etc. from source to target file.
41207753Smm
42207753Smm    Multithreaded compression
43207753Smm
44207753Smm    Multithreaded decompression
45207753Smm
46207753Smm    Buffer-to-buffer coding could use less RAM (especially when
47207753Smm    decompressing LZMA1 or LZMA2).
48207753Smm
49215187Smm    I/O library is not implemented (similar to gzopen() in zlib).
50215187Smm    It will be a separate library that supports uncompressed, .gz,
51215187Smm    .bz2, .lzma, and .xz files.
52207753Smm
53207753Smm    lzma_strerror() to convert lzma_ret to human readable form?
54207753Smm    This is tricky, because the same error codes are used with
55215187Smm    slightly different meanings, and this cannot be fixed anymore.
56207753Smm
57207753Smm
58207753SmmDocumentation
59207753Smm-------------
60207753Smm
61207753Smm    Some tutorial is needed for liblzma. I have planned to write some
62207753Smm    extremely well commented example programs, which would work as
63207753Smm    a tutorial. I suppose the Doxygen tags are quite OK as a quick
64207753Smm    reference once one is familiar with the liblzma API.
65207753Smm
66207753Smm    Document the LZMA1 and LZMA2 algorithms.
67207753Smm
68