Home | History | Annotate | Line # | Download | only in dist
      1      1.1     joerg 
      2      1.1     joerg XZ Utils To-Do List
      3      1.1     joerg ===================
      4      1.1     joerg 
      5      1.1     joerg Known bugs
      6      1.1     joerg ----------
      7      1.1     joerg 
      8  1.1.1.3  christos     The test suite is incomplete.
      9      1.1     joerg 
     10      1.1     joerg     XZ Utils compress some files significantly worse than LZMA Utils.
     11      1.1     joerg     This is due to faster compression presets used by XZ Utils, and
     12      1.1     joerg     can often be worked around by using "xz --extreme". With some files
     13      1.1     joerg     --extreme isn't enough though: it's most likely with files that
     14      1.1     joerg     compress extremely well, so going from compression ratio of 0.003
     15      1.1     joerg     to 0.004 means big relative increase in the compressed file size.
     16      1.1     joerg 
     17      1.1     joerg     tuklib_exit() doesn't block signals => EINTR is possible.
     18      1.1     joerg 
     19  1.1.1.2  christos     If liblzma has created threads and fork() gets called, liblzma
     20  1.1.1.2  christos     code will break in the child process unless it calls exec() and
     21  1.1.1.2  christos     doesn't touch liblzma.
     22  1.1.1.2  christos 
     23      1.1     joerg 
     24      1.1     joerg Missing features
     25      1.1     joerg ----------------
     26      1.1     joerg 
     27  1.1.1.2  christos     Add support for storing metadata in .xz files. A preliminary
     28  1.1.1.2  christos     idea is to create a new Stream type for metadata. When both
     29  1.1.1.2  christos     metadata and data are wanted in the same .xz file, two or more
     30  1.1.1.2  christos     Streams would be concatenated.
     31  1.1.1.2  christos 
     32  1.1.1.2  christos     The state stored in lzma_stream should be cloneable, which would
     33  1.1.1.2  christos     be mostly useful when using a preset dictionary in LZMA2, but
     34  1.1.1.2  christos     it may have other uses too. Compare to deflateCopy() in zlib.
     35  1.1.1.2  christos 
     36  1.1.1.2  christos     Adjust dictionary size when the input file size is known.
     37  1.1.1.2  christos     Maybe do this only if an option is given.
     38  1.1.1.2  christos 
     39      1.1     joerg     xz doesn't support copying extended attributes, access control
     40      1.1     joerg     lists etc. from source to target file.
     41      1.1     joerg 
     42  1.1.1.2  christos     Multithreaded compression:
     43  1.1.1.2  christos       - Reduce memory usage of the current method.
     44  1.1.1.2  christos       - Implement threaded match finders.
     45  1.1.1.2  christos       - Implement pigz-style threading in LZMA2.
     46      1.1     joerg 
     47      1.1     joerg     Buffer-to-buffer coding could use less RAM (especially when
     48      1.1     joerg     decompressing LZMA1 or LZMA2).
     49      1.1     joerg 
     50      1.1     joerg     I/O library is not implemented (similar to gzopen() in zlib).
     51      1.1     joerg     It will be a separate library that supports uncompressed, .gz,
     52      1.1     joerg     .bz2, .lzma, and .xz files.
     53      1.1     joerg 
     54  1.1.1.2  christos     Support changing lzma_options_lzma.mode with lzma_filters_update().
     55  1.1.1.2  christos 
     56  1.1.1.2  christos     Support LZMA_FULL_FLUSH for lzma_stream_decoder() to stop at
     57  1.1.1.2  christos     Block and Stream boundaries.
     58  1.1.1.2  christos 
     59  1.1.1.3  christos     Error codes from lzma_code() aren't very specific. A more detailed
     60  1.1.1.3  christos     error message (string) could be provided too. It could be returned
     61  1.1.1.3  christos     by a new function or use a currently-reserved member of lzma_stream.
     62      1.1     joerg 
     63  1.1.1.2  christos     Make it possible to adjust LZMA2 options in the middle of a Block
     64  1.1.1.2  christos     so that the encoding speed vs. compression ratio can be optimized
     65  1.1.1.2  christos     when the compressed data is streamed over network.
     66  1.1.1.2  christos 
     67  1.1.1.2  christos     Improved BCJ filters. The current filters are small but they aren't
     68  1.1.1.2  christos     so great when compressing binary packages that contain various file
     69  1.1.1.2  christos     types. Specifically, they make things worse if there are static
     70  1.1.1.2  christos     libraries or Linux kernel modules. The filtering could also be
     71  1.1.1.2  christos     more effective (without getting overly complex), for example,
     72  1.1.1.2  christos     streamable variant BCJ2 from 7-Zip could be implemented.
     73  1.1.1.2  christos 
     74  1.1.1.2  christos     Filter that autodetects specific data types in the input stream
     75  1.1.1.2  christos     and applies appropriate filters for the corrects parts of the input.
     76  1.1.1.2  christos     Perhaps combine this with the BCJ filter improvement point above.
     77  1.1.1.2  christos 
     78  1.1.1.2  christos     Long-range LZ77 method as a separate filter or as a new LZMA2
     79  1.1.1.2  christos     match finder.
     80  1.1.1.2  christos 
     81      1.1     joerg 
     82      1.1     joerg Documentation
     83      1.1     joerg -------------
     84      1.1     joerg 
     85  1.1.1.2  christos     More tutorial programs are needed for liblzma.
     86      1.1     joerg 
     87      1.1     joerg     Document the LZMA1 and LZMA2 algorithms.
     88      1.1     joerg 
     89