TODO revision 207753
1271609Savg
2271609SavgXZ Utils To-Do List
3271609Savg===================
4271609Savg
5271609SavgKnown bugs
6271609Savg----------
7271609Savg
8271609Savg    The test suite is too incomplete.
9271609Savg
10271609Savg    If the memory usage limit is less than about 13 MiB, xz is unable to
11271609Savg    automatically scale down the compression settings enough even though
12271609Savg    it would be  possible by switching from BT2/BT3/BT4 match finder to
13271609Savg    HC3/HC4.
14271609Savg
15271609Savg    The code to detect number of CPU cores doesn't count hyperthreading
16271609Savg    as multiple cores. In context of xz, it probably should.
17271609Savg    Hyperthreading is good at least with p7zip.
18271609Savg
19271609Savg    XZ Utils compress some files significantly worse than LZMA Utils.
20271609Savg    This is due to faster compression presets used by XZ Utils, and
21271609Savg    can be worked around by using "xz --extreme". However, the presets
22271609Savg    need some tweaking and maybe this issue can be minimized without
23271609Savg    making the typical case too much slower.
24271609Savg
25271609Savg    xz doesn't quote unprintable characters when it displays file names
26271609Savg    given on the command line.
27271609Savg
28271609Savg    tuklib_exit() doesn't block signals => EINTR is possible.
29271609Savg
30271609Savg
31271609SavgMissing features
32271609Savg----------------
33271609Savg
34271609Savg    xz doesn't support copying extended attributes, access control
35271609Savg    lists etc. from source to target file.
36271609Savg
37271609Savg    Multithreaded compression
38271609Savg
39271609Savg    Multithreaded decompression
40271609Savg
41271609Savg    Buffer-to-buffer coding could use less RAM (especially when
42271609Savg    decompressing LZMA1 or LZMA2).
43271609Savg
44271609Savg    I/O library is not implemented. It will possibly be named libzzf.
45271609Savg
46271609Savg    lzma_strerror() to convert lzma_ret to human readable form?
47271609Savg    This is tricky, because the same error codes are used with
48271609Savg    slightly different meanings.
49271609Savg
50271609Savg
51271609SavgDocumentation
52271609Savg-------------
53271609Savg
54271609Savg    Some tutorial is needed for liblzma. I have planned to write some
55271609Savg    extremely well commented example programs, which would work as
56271609Savg    a tutorial. I suppose the Doxygen tags are quite OK as a quick
57271609Savg    reference once one is familiar with the liblzma API.
58271609Savg
59273142Sschweikh    Document the LZMA1 and LZMA2 algorithms.
60271609Savg
61271609Savg