diff options
Diffstat (limited to 'contrib/xz/TODO')
-rw-r--r-- | contrib/xz/TODO | 58 |
1 files changed, 53 insertions, 5 deletions
diff --git a/contrib/xz/TODO b/contrib/xz/TODO index 4d9b6b51ced3..45ba433a5832 100644 --- a/contrib/xz/TODO +++ b/contrib/xz/TODO @@ -28,14 +28,36 @@ Known bugs time and calculated (de)compression speed won't make sense in the progress indicator (xz --verbose). + If liblzma has created threads and fork() gets called, liblzma + code will break in the child process unless it calls exec() and + doesn't touch liblzma. + Missing features ---------------- + Add support for storing metadata in .xz files. A preliminary + idea is to create a new Stream type for metadata. When both + metadata and data are wanted in the same .xz file, two or more + Streams would be concatenated. + + The state stored in lzma_stream should be cloneable, which would + be mostly useful when using a preset dictionary in LZMA2, but + it may have other uses too. Compare to deflateCopy() in zlib. + + Support LZMA_FINISH in raw decoder to indicate end of LZMA1 and + other streams that don't have an end of payload marker. + + Adjust dictionary size when the input file size is known. + Maybe do this only if an option is given. + xz doesn't support copying extended attributes, access control lists etc. from source to target file. - Multithreaded compression + Multithreaded compression: + - Reduce memory usage of the current method. + - Implement threaded match finders. + - Implement pigz-style threading in LZMA2. Multithreaded decompression @@ -46,18 +68,44 @@ Missing features It will be a separate library that supports uncompressed, .gz, .bz2, .lzma, and .xz files. + Support changing lzma_options_lzma.mode with lzma_filters_update(). + + Support LZMA_FULL_FLUSH for lzma_stream_decoder() to stop at + Block and Stream boundaries. + lzma_strerror() to convert lzma_ret to human readable form? This is tricky, because the same error codes are used with slightly different meanings, and this cannot be fixed anymore. + Make it possible to adjust LZMA2 options in the middle of a Block + so that the encoding speed vs. compression ratio can be optimized + when the compressed data is streamed over network. + + Improved BCJ filters. The current filters are small but they aren't + so great when compressing binary packages that contain various file + types. Specifically, they make things worse if there are static + libraries or Linux kernel modules. The filtering could also be + more effective (without getting overly complex), for example, + streamable variant BCJ2 from 7-Zip could be implemented. + + Filter that autodetects specific data types in the input stream + and applies appropriate filters for the corrects parts of the input. + Perhaps combine this with the BCJ filter improvement point above. + + Long-range LZ77 method as a separate filter or as a new LZMA2 + match finder. + Documentation ------------- - Some tutorial is needed for liblzma. I have planned to write some - extremely well commented example programs, which would work as - a tutorial. I suppose the Doxygen tags are quite OK as a quick - reference once one is familiar with the liblzma API. + More tutorial programs are needed for liblzma. Document the LZMA1 and LZMA2 algorithms. + +Miscellaneous +------------ + + Try to get the media type for .xz registered at IANA. + |