TODO revision 256281
1189765Sgabor
2189765SgaborXZ Utils To-Do List
3189765Sgabor===================
4189765Sgabor
5189765SgaborKnown bugs
6189765Sgabor----------
7189765Sgabor
8189765Sgabor    The test suite is too incomplete.
9189765Sgabor
10189765Sgabor    If the memory usage limit is less than about 13 MiB, xz is unable to
11189765Sgabor    automatically scale down the compression settings enough even though
12189765Sgabor    it would be  possible by switching from BT2/BT3/BT4 match finder to
13189765Sgabor    HC3/HC4.
14189765Sgabor
15189765Sgabor    The code to detect number of CPU cores doesn't count hyperthreading
16189765Sgabor    as multiple cores. In context of xz, it probably should.
17189765Sgabor    Hyperthreading is good at least with p7zip.
18189765Sgabor
19189765Sgabor    XZ Utils compress some files significantly worse than LZMA Utils.
20189765Sgabor    This is due to faster compression presets used by XZ Utils, and
21189765Sgabor    can often be worked around by using "xz --extreme". With some files
22189765Sgabor    --extreme isn't enough though: it's most likely with files that
23189765Sgabor    compress extremely well, so going from compression ratio of 0.003
24189765Sgabor    to 0.004 means big relative increase in the compressed file size.
25189765Sgabor
26189765Sgabor    xz doesn't quote unprintable characters when it displays file names
27189765Sgabor    given on the command line.
28189765Sgabor
29189765Sgabor    tuklib_exit() doesn't block signals => EINTR is possible.
30189765Sgabor
31189765Sgabor    SIGTSTP is not handled. If xz is stopped, the estimated remaining
32189765Sgabor    time and calculated (de)compression speed won't make sense in the
33189765Sgabor    progress indicator (xz --verbose).
34189765Sgabor
35189765Sgabor
36189765SgaborMissing features
37189765Sgabor----------------
38189765Sgabor
39189765Sgabor    xz doesn't support copying extended attributes, access control
40189765Sgabor    lists etc. from source to target file.
41189765Sgabor
42189765Sgabor    Multithreaded compression
43189765Sgabor
44189765Sgabor    Multithreaded decompression
45189765Sgabor
46189765Sgabor    Buffer-to-buffer coding could use less RAM (especially when
47189765Sgabor    decompressing LZMA1 or LZMA2).
48189765Sgabor
49189765Sgabor    I/O library is not implemented (similar to gzopen() in zlib).
50189765Sgabor    It will be a separate library that supports uncompressed, .gz,
51189765Sgabor    .bz2, .lzma, and .xz files.
52189765Sgabor
53189765Sgabor    lzma_strerror() to convert lzma_ret to human readable form?
54189765Sgabor    This is tricky, because the same error codes are used with
55189765Sgabor    slightly different meanings, and this cannot be fixed anymore.
56189765Sgabor
57189765Sgabor
58189765SgaborDocumentation
59189765Sgabor-------------
60189765Sgabor
61189765Sgabor    Some tutorial is needed for liblzma. I have planned to write some
62189765Sgabor    extremely well commented example programs, which would work as
63189765Sgabor    a tutorial. I suppose the Doxygen tags are quite OK as a quick
64189765Sgabor    reference once one is familiar with the liblzma API.
65189765Sgabor
66189765Sgabor    Document the LZMA1 and LZMA2 algorithms.
67189765Sgabor
68189765Sgabor