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
Timofey Solomko
e321f4a49e
[Tests] Add a test for LZ4 legacy frame with multiple blocks
2021-09-26 15:26:27 +03:00
Timofey Solomko
7440d3c95e
[Tests] Add tests for LZ4 legacy frame format
2021-09-26 15:19:46 +03:00
Timofey Solomko
8e32397e7c
[LZ4] Implement legacy frame processing
2021-09-26 15:18:57 +03:00
Timofey Solomko
c6bf66fbad
[Tests] Add a test for LZ4 with a skippable frame in the beginning
2021-09-26 14:37:50 +03:00
Timofey Solomko
d430e939f8
[LZ4] Implement skipping of skippable frames
2021-09-26 14:37:31 +03:00
Timofey Solomko
cfe0416547
[LZ4] Reorganize implementation to support other frame types
2021-09-26 14:24:59 +03:00
Timofey Solomko
8715136094
[Tests] Add "bad file" tests for LZ4
2021-09-26 14:14:14 +03:00
Timofey Solomko
490d5ad816
Make DataError conform to Equatable
2021-09-26 14:03:38 +03:00
Timofey Solomko
cb89e77857
[LZ4] Add truncation checks in block processing
2021-09-26 13:52:34 +03:00
Timofey Solomko
c4946a00a3
[LZ4] Add checks for end of block restrictions
2021-09-26 13:43:47 +03:00
Timofey Solomko
f44fd90b2c
[Tests] Add a test for LZ4 with dependent blocks
2021-09-26 13:33:32 +03:00
Timofey Solomko
0b2dd279a9
[LZ4] Implement dependent blocks
2021-09-26 13:32:32 +03:00
Timofey Solomko
f27e0eef7c
Add LZ4 to SPM package manifest
2021-09-26 12:55:20 +03:00
Timofey Solomko
c6addda952
[LZ4] Implement decoding of independent blocks
2021-09-25 22:56:51 +03:00
Timofey Solomko
39d36a6805
[LZ4] Implement block loop and some checks for truncated data
2021-09-25 21:44:53 +03:00
Timofey Solomko
bb39e6e36d
Remove DataError.encrypted
...
I think, this case is covered by DataError.unsupportedFeature, and we don't want redundant cases, since we're trying to minimize the amount of different error types.
2021-09-25 15:50:21 +03:00
Timofey Solomko
2daf285539
[LZ4] Implement content checks
2021-09-24 20:55:39 +03:00
Timofey Solomko
a233ec8d08
[LZ4] Skip magic number when computing header checksum
2021-09-24 20:41:39 +03:00
Timofey Solomko
c2278f781f
[LZ4] Fix issues related to data slicing in xxHash32
2021-09-24 20:41:19 +03:00
Timofey Solomko
9e14fa159f
[XZ] Make rotation operator fileprivate and simplify its implementation
2021-09-24 20:05:42 +03:00
Timofey Solomko
7fcd5a7554
[Tests] Add tests for xxHash32
2021-09-24 20:05:15 +03:00
Timofey Solomko
885d2e3828
[LZ4] Implement xxHash32
2021-09-24 20:04:36 +03:00