]> git.ipfire.org Git - thirdparty/xz.git/blame - TODO
Translations: Update the German translation.
[thirdparty/xz.git] / TODO
CommitLineData
5d018dc0 1
366e4360
LC
2XZ Utils To-Do List
3===================
5d018dc0 4
366e4360
LC
5Known bugs
6----------
5d018dc0 7
366e4360 8 The test suite is too incomplete.
5d018dc0 9
ee5ddb8b 10 If the memory usage limit is less than about 13 MiB, xz is unable to
366e4360
LC
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.
5d018dc0 14
35b29e44
LC
15 XZ Utils compress some files significantly worse than LZMA Utils.
16 This is due to faster compression presets used by XZ Utils, and
ce34ec4f
LC
17 can often be worked around by using "xz --extreme". With some files
18 --extreme isn't enough though: it's most likely with files that
19 compress extremely well, so going from compression ratio of 0.003
20 to 0.004 means big relative increase in the compressed file size.
35b29e44 21
5f6dddc6
LC
22 xz doesn't quote unprintable characters when it displays file names
23 given on the command line.
24
ee5ddb8b 25 tuklib_exit() doesn't block signals => EINTR is possible.
5d018dc0 26
bd9cc179
LC
27 If liblzma has created threads and fork() gets called, liblzma
28 code will break in the child process unless it calls exec() and
29 doesn't touch liblzma.
30
5d018dc0 31
ee5ddb8b
LC
32Missing features
33----------------
5d018dc0 34
642f856b
LC
35 Add support for storing metadata in .xz files. A preliminary
36 idea is to create a new Stream type for metadata. When both
37 metadata and data are wanted in the same .xz file, two or more
38 Streams would be concatenated.
39
40 The state stored in lzma_stream should be cloneable, which would
41 be mostly useful when using a preset dictionary in LZMA2, but
42 it may have other uses too. Compare to deflateCopy() in zlib.
43
bd9cc179
LC
44 Support LZMA_FINISH in raw decoder to indicate end of LZMA1 and
45 other streams that don't have an end of payload marker.
46
47 Adjust dictionary size when the input file size is known.
48 Maybe do this only if an option is given.
49
366e4360
LC
50 xz doesn't support copying extended attributes, access control
51 lists etc. from source to target file.
5d018dc0 52
14e6ad8c
LC
53 Multithreaded compression:
54 - Reduce memory usage of the current method.
55 - Implement threaded match finders.
56 - Implement pigz-style threading in LZMA2.
5d018dc0 57
366e4360
LC
58 Buffer-to-buffer coding could use less RAM (especially when
59 decompressing LZMA1 or LZMA2).
5d018dc0 60
ce34ec4f
LC
61 I/O library is not implemented (similar to gzopen() in zlib).
62 It will be a separate library that supports uncompressed, .gz,
63 .bz2, .lzma, and .xz files.
5d018dc0 64
14e6ad8c
LC
65 Support changing lzma_options_lzma.mode with lzma_filters_update().
66
67 Support LZMA_FULL_FLUSH for lzma_stream_decoder() to stop at
68 Block and Stream boundaries.
69
ee5ddb8b
LC
70 lzma_strerror() to convert lzma_ret to human readable form?
71 This is tricky, because the same error codes are used with
ce34ec4f 72 slightly different meanings, and this cannot be fixed anymore.
ee5ddb8b 73
642f856b
LC
74 Make it possible to adjust LZMA2 options in the middle of a Block
75 so that the encoding speed vs. compression ratio can be optimized
76 when the compressed data is streamed over network.
77
78 Improved BCJ filters. The current filters are small but they aren't
79 so great when compressing binary packages that contain various file
80 types. Specifically, they make things worse if there are static
81 libraries or Linux kernel modules. The filtering could also be
82 more effective (without getting overly complex), for example,
83 streamable variant BCJ2 from 7-Zip could be implemented.
84
85 Filter that autodetects specific data types in the input stream
86 and applies appropriate filters for the corrects parts of the input.
87 Perhaps combine this with the BCJ filter improvement point above.
88
89 Long-range LZ77 method as a separate filter or as a new LZMA2
90 match finder.
91
5d018dc0
LC
92
93Documentation
366e4360 94-------------
5d018dc0 95
642f856b 96 More tutorial programs are needed for liblzma.
5d018dc0 97
366e4360 98 Document the LZMA1 and LZMA2 algorithms.
5d018dc0 99
642f856b
LC
100
101Miscellaneous
102------------
103
104 Try to get the media type for .xz registered at IANA.
105