Adjust naming of (de)compression files
portability and compression cleanups - Split compiler.h into compiler.h and compiler-gcc.h - Compile with -std=c99. Some GCC extensions are still used but they are explicitly defined in compiler-gcc.h. - Add get_unaligned_uXX_le() and put_unaligned_uXX_le() helpers - Faster lz_copy() in some cases - Faster lz_extend() in some cases - New bitops.h header
Use LGPLv3+ for src/*.c
Compression updates - Faster searching for repeat offset matches - Lazy updates of adaptive state in near-optimal parsing - Faster LZX near-optimal parsing - Better LZX lazy parsing - Faster XPRESS near-optimal parsing - Faster LZMS near-optimal parsing - Faster LZMS match/literal output - Slightly faster LZMS decompression - Cleanups
lzx_decompress_block(): One-branch check for aligned offset case
lzx-decompress.c: Optimize lzx_read_codeword_lens()
lzx-decompress.c: Inline and optimize lzx_decode_match()
lzx-decompress.c: Don't allow using offsets of 0 This can happen if an uncompressed block is present, since then the match offset LRU queue is filled directly from the input buffer. Too-large offsets were already checked later, but offsets of 0 would cause uninitialized memory to remain in the output buffer.
Update input_bitstream - Very slightly more efficient - Don't access any internal members from LZX decompressor
LZX: Allow max_block_size not a power of 2 This should be treated as an internal of LZX.
LZX decompression: Cleanup No change in behavior.
Merge compression updates - New internal match-finding API (might release as stand-alone library sometime) - Add some new match-finding algorithms - Get rid of lz_hash.c / lz_analyze_block() - Add optimal parsing to XPRESS - Optimize get_matches() / skip_bytes() calls in XPRESS and LZX compressors - Get rid of decompressor parameters - Get rid of compressor parameters exposed in API (use compression levels instead)
{lzx,lzms}-decompress.c: Include wimlib/error.h, not wimlib.h
Speed up LZ77 match copying
{lzx,lzms-decompress.c}: Allocate context with DECODE_TABLE_ALIGNMENT
Share most e8 processing code between LZX compressor and decompressor
lzx-decompress.c: Simplify handling of recent offsets The recent offsets can all be handled by the same code. This should remove at least one branch from the generated code.
Remove unused 'num_syms' argument to read_huffsym() The updated decoder no longer requires that the number of symbols in the alphabet be provided when decoding each symbol.
Faster Huffman symbol decoding When decoding a codeword short enough for a direct mapping, we can read the codeword length at the same time we read the symbol itself. This speeds up Huffman decoding slightly. This commit also updates and improves the comments for make_huffman_decode_table().
lzx-decompress.c: One fewer branch in undo_call_insn_translation()