Commit Graph
2203 Commits
Author SHA1 Message Date
Timofey Solomko 113972bcce [Deflate] Reduce nesting in lengthEncode
This should be a purely refactoring change with no effect on performance or functionality.
2021-10-18 18:30:15 +03:00
Timofey Solomko f2be0db44f [Tests] Add a small test for fixed incorrect matching in LZ4 compression 2021-10-17 15:45:11 +03:00
Timofey Solomko 3a54c54ecc [LZ4] Fix incorrect matching
We erroneously used match index as a cyclical index which was producing non well-formed/incorrect results in some rare cases.
2021-10-17 15:45:11 +03:00
Timofey Solomko 743b83e4cb [LZ4] Add default values for dictionary and blockSize arguments of LZ4.compress 2021-10-17 15:45:11 +03:00
Timofey Solomko 19eca839d9 Add LZ4-related references to README 2021-10-17 15:45:06 +03:00
Timofey Solomko b64c5b81e9 [LZ4] Fix more potential issues with indices when resetting dictionary in compression 2021-10-16 21:59:18 +03:00
Timofey Solomko 088ec34ca6 [Tests] Add a test for 7-Zip with LZ4 2021-10-16 21:58:02 +03:00
Timofey Solomko 6cdfc14f54 [7-Zip] Add support for LZ4 2021-10-16 21:57:46 +03:00
Timofey Solomko c44901547c Add a subspec for LZ4 2021-10-16 21:57:26 +03:00
Timofey Solomko 68f1428355 [swcomp] Add various compression options for LZ4
Also add a check that dict id is not present without a dictionary.
2021-10-16 21:33:03 +03:00
Timofey Solomko 212e1808e7 [swcomp] Add benchmark command for LZ4 compression with dependent blocks 2021-10-16 20:31:32 +03:00
Timofey Solomko 2a1b250061 [Tests] Print compression ratio only after successful redecompression 2021-10-16 20:25:17 +03:00
Timofey Solomko 2491d77bfc [LZ4] Fix incorrect usage of dictionaries in compression
Previously, the dictionary was effectively ignored, since it was never used to populate the table of matches. Additionally, we fixed another issue with dictionaries, which was hidden, because we never really used them.
2021-10-16 20:21:59 +03:00
Timofey Solomko abed04acf9 [Tests] Add dictionary tests for LZ4 compression 2021-10-16 19:32:24 +03:00
Timofey Solomko 9915e8a1d7 [LZ4] Account for the min match length when checking for end-of-block condition 2021-10-16 19:31:58 +03:00
Timofey Solomko dac1814c8d [LZ4] Simplify last sequence creation 2021-10-16 16:26:41 +03:00
Timofey Solomko 20544178a0 [LZ4] Fix potential index issues when setting dictionary for block decoding 2021-10-16 16:25:58 +03:00
Timofey Solomko be899bc355 [LZ4] Fix incorrect block checksums in case of incompressible blocks 2021-10-16 16:25:15 +03:00
Timofey Solomko 254fe0c848 [LZ4] Strictly check that the block is compressible 2021-10-16 16:24:36 +03:00
Timofey Solomko 2c36a886be [Tests] Add a randomized test for LZ4 compression options 2021-10-16 15:50:42 +03:00
Timofey Solomko f15270fc98 [Tests] Add a test for LZ4 decompression with small sized dictionary 2021-10-16 15:50:24 +03:00
Timofey Solomko 1a49f0543d [swcomp] Add benchmark command for LZ4 compression with independent blocks
LZ4 compression with block dependency will be added in the future (after SWCompression is fixed with regards to dependent blocks).
2021-10-15 22:44:55 +03:00
Timofey Solomko 377344197b [swcomp] Implement --compress option for the lz4 command 2021-10-15 22:40:55 +03:00
Timofey Solomko 9176d2fa35 [LZ4] Implement block encoding 2021-10-15 22:28:10 +03:00
Timofey Solomko f6c23987c4 [LZ4] Fix incorrect truncation checks in block decoding 2021-10-15 20:39:28 +03:00
Timofey Solomko cac1d635b9 [BZip2] Change BurrowsWheeler and SuffixArray from classes to enums 2021-10-15 20:14:21 +03:00
Timofey Solomko 6c063cd522 [LZ4] Fix compilation issues on Swift 5.1-5.3 2021-10-02 18:23:26 +03:00
Timofey Solomko 134ba8fe9d [Tests] Add a number of basic tests for LZ4 compression 2021-10-02 15:24:39 +03:00
Timofey Solomko d5d0abeff2 [LZ4] Implement a no-compression version of LZ4 compression
Basically, the frame format with all features has been implemented.
2021-10-02 15:24:11 +03:00
Timofey Solomko 68e46728af [LZ4] Slightly optimize xxHash32 2021-10-02 13:49:29 +03:00
Timofey Solomko 932153541d Add xcode test plan 2021-10-02 12:55:26 +03:00
Timofey Solomko fc0dfdf43a [LZ4] Add an empty implementation for compression 2021-10-02 11:22:45 +03:00
Timofey Solomko f0f4e133d8 Upgrade xcode project compatiblity version to 11.0
We can do this since we are no longer going to support Swift 5.0.
2021-10-02 11:22:16 +03:00
Timofey Solomko 7afec17967 Update README instructions about tests 2021-10-02 11:17:27 +03:00
Timofey Solomko c0574c96e3 CI: reenable macos jobs
Let's cross our fingers, that the caching works...
2021-10-01 18:40:41 +03:00
Timofey Solomko 149190eda5 CI: temporarily disable all but one macos jobs 2021-10-01 18:37:58 +03:00
Timofey Solomko ddbbab37e1 CI: rework macos config to cache test files froms git lfs
This should help with git lfs github quota issues.
2021-10-01 18:37:30 +03:00
Timofey Solomko 54863ccd87 utils.py: replace prepare-workspace command with download-bbd-macos, rename install-macos to install-git-lfs-macos 2021-10-01 18:36:56 +03:00
Timofey Solomko 39999257b2 CI changes: remove swift 5.0 2021-10-01 14:42:36 +03:00
Timofey Solomko 17bd85ba5d [Tests] Add a test for multiple concatenated LZ4 frames 2021-10-01 14:41:16 +03:00
Timofey Solomko ba15f96312 [LZ4] Implement decompression of multiple concatenated frames 2021-10-01 14:41:16 +03:00
Timofey Solomko 86c31f7462 [swcomp] Add options to lz4 command to support dictionary decompression 2021-09-27 14:29:30 +03:00
Timofey Solomko 8e31f60b10 [LZ4] Check that dictionary is supplied if dictID is present in the frame 2021-09-27 10:46:27 +03:00
Timofey Solomko 2603ca98ec [Tests] Add a test for LZ4 which has dictID 2021-09-27 10:45:54 +03:00
Timofey Solomko 4df0d5feb2 [LZ4] Change dictionaryID type to UInt32?
This allows us to verify the value on type level, instead of by using the precondition. It is also okay to use UInt32 instead of Int ("currency type"), since this API is supposed to be used by advanced users only.
2021-09-27 10:43:26 +03:00
Timofey Solomko 725a3b58bb [Tests] Add a test for LZ4 dictionary decompression 2021-09-26 19:52:01 +03:00
Timofey Solomko 4bc7d37d7d [LZ4] Implement dictionary decompression 2021-09-26 19:49:35 +03:00
Timofey Solomko d8f7b8a8f5 [swcomp] Add benchmark command for LZ4 decompression 2021-09-26 16:06:09 +03:00
Timofey Solomko 8b0715b5a2 [swcomp] Add lz4 command 2021-09-26 16:03:56 +03:00
Timofey Solomko 8f1a1e0517 [Tests] Add tests for LZ4 frames with various block sizes 2021-09-26 15:55:36 +03:00