Adjust naming of (de)compression files
LZMS: decompression optimizations
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
lzms-compress.c: Remove unused function
Use LGPLv3+ for src/*.c
A few minor compressor cleanups
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
Factor out lz_repsearch() and also use for LZMS
Make create_decompressor() checks of max_block_size consistent
lzms-compress.c: Fix crash on compression levels 1 through 4 lzms_get_near_optimal_item() assumes that nice_match_length >= min_match_length.
Remove some unneeded includes
cleanups
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)
Rename raw_match => lz_match
lzms-compress.c: Don't do redundant work in cost calculations
lzms-compress.c: Don't underrun window when checking recent offsets In LZMS, not all recent offsets are initialized to 1, unlike in LZX.
Merge branch 'lz_bt'
Switch from suffix array match-finder to binary tree match-finder This uses less memory (8 bytes overhead per position vs. 14), is faster, requires less code (no libdivsufsort), and in some tests actually results in a better compression ratio. A binary tree match-finder was used in wimlib v1.5.2 but it didn't seem as good then, probably because it was combined with a slow block division algorithm for LZX. Repeat offsets are now handled differently. The binary tree match-finder itself doesn't have any logic for repeat offsets at all; instead, the match-choosing code (now implemented separately for LZX and LZMS) now does special checks for matches at repeat offsets. Since less memory is used for match-finding now, increase the default LZMS pack chunk size from 2^25 (33554432) to 2^26 (67108864).
lzms-common.c, lzms-compress.c: Use pthread_once()
lzms-compress.c: Fix typo