| |
| LZMA Utils TODO List |
| -------------------- |
| |
| Major missing features |
| |
| Memory limits in the command line tool apply only to compression. |
| |
| Threading support in the lzma command line tool is still primitive. |
| It cannot split a file in pieces yet. |
| |
| The --list mode isn't implemented in the command line tool. |
| |
| Handling of Multi-Block Stream information should be separated |
| from Stream encoder and decoder. Those would be useful to implement |
| multi-threaded coding in applications. |
| |
| Buffer to buffer coding is not implemented in liblzma. Probably |
| a naive version should be written first, which would simply wrap |
| things around lzma_stream. Later, there should be separate buffer |
| coding functions, that are slightly faster (less memcpy()) and |
| have smaller memory usage than the functions using lzma_stream. |
| |
| libzfile is not implemented. |
| |
| LZMA filter doesn't support predefined history buffer. |
| |
| |
| Security |
| |
| Search for bugs, especially security related issues. Security is |
| important in every piece of code in LZMA Utils, but it is extremely |
| important in the decoder part of liblzma. |
| |
| Subblock: If there is LZMA as a Subfilter but without EOPM, can it |
| trigger infinite loop when Subblock's "Unset Subfilter" flag is hit? |
| |
| Similarly, can LZ decoder get stuck in infinite loop if the next |
| filter in the chain returns LZMA_STREAM_END but the decoded data |
| doesn't allow finishing the LZ decoding? |
| |
| |
| Reliability |
| |
| Create a test suite to be run with "make check". |
| |
| Should we use strlimit() and getrlimit() for memory usage limitting? |
| |
| |
| Performance |
| |
| Benchmark the CRC code on non-x86 CPUs. Won't have huge effect on |
| overall speed, but it would still be nice to know what algorithm |
| variant is the best on different CPUs. |
| |
| |
| Third party support |
| |
| Add support for LZMA to various applications. This naturally requires |
| cooperating with the authors of the specific applications. |
| * GNU grep and GNU diffutils: BSD grep already uses zlib directly |
| instead of ugly shell scripts. It would be nice to get similar |
| feature into relevant GNU tools. With libzfile, multiple |
| compression formats would be easy to support. |
| * kioslave for KDE |
| * Magic for the `file' command |
| * GNU Midnight Commander |
| * GNU Texinfo |
| * The `man' command |
| * Package managers |
| |
| Test the patches already written. The patches should be sent to |
| upstream developers _once_ LZMA Utils APIs are stable enough (so |
| people don't need to fix those patches all the time). |
| |
| Mandriva has quite a few patches. Some of them are OK, some need |
| adapting for new LZMA Utils. |
| |
| |
| Documentation |
| |
| Revise the man page of lzma command line tool. |
| |
| If the Doxygen docs aren't enough, write good Texinfo manual for |
| liblzma. It's been a long time I've even tried to build the Doxygen |
| docs, so they may look quite bad at the moment. |
| |
| Document LZMA as an algorithm. It would be great to have detailed |
| description of the algorithm in English. Many people think, that |
| reading the source code is not the optimal way to learn how LZMA |
| works. |
| |
| |
| Other |
| |
| Some things return LZMA_PROG_ERROR with invalid options, some |
| LZMA_HEADER_ERROR. These must be checked carefully and made so |
| that LZMA_HEADER_ERROR is used only when the given option could |
| make sense in future version of libzma. |
| |
| lzma_restrict vs. restrict |
| |
| Usage of LZMA_RUN vs. LZMA_FINISH with Metadata coders. |
| |
| Port the Deflate implementation from 7-Zip into liblzma. 7-Zip's |
| Deflate compresses better than zlib, gzip or Info-ZIP. I don't |
| know if Deflate will be included in .lzma format (probably not), |
| but it's still useful once we also add support for .gz file format. |
| |