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
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
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
8e32397e7c
[LZ4] Implement legacy frame processing
2021-09-26 15:18:57 +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
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
0b2dd279a9
[LZ4] Implement dependent blocks
2021-09-26 13:32:32 +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
885d2e3828
[LZ4] Implement xxHash32
2021-09-24 20:04:36 +03:00
Timofey Solomko
c8b4020a9b
[LZ4] Implement Frame Descriptor processing
2021-09-24 18:55:41 +03:00
Timofey Solomko
3cb6cac20b
Add two more cases to DataError
2021-09-24 18:55:31 +03:00
Timofey Solomko
46590ad631
[LZ4] Add an empty implementation of xxHash-32
2021-09-24 18:55:28 +03:00
Timofey Solomko
de4fcb29cf
[LZ4] Add an empty implementation of LZ4
2021-09-23 21:50:35 +03:00
Timofey Solomko
135f4c3bcd
Add DataError enum
...
This enum will be used going forward instead of algorithm-specific error enums.
2021-09-23 21:46:30 +03:00
Timofey Solomko
2efdb3ef8c
Prepare for 4.6.1 release
2021-09-21 13:29:03 +03:00
Timofey Solomko
7c6c98b3a3
[ZIP] Remove unused import
2021-09-20 12:00:12 +03:00
Timofey Solomko
86a9caf337
[ZIP] Unify the code for finding CP437 enconding
2021-09-19 18:28:25 +03:00
Timofey Solomko
aefacf3e16
[7-Zip] Change SevenZipProperty from class to struct
2021-09-19 17:17:57 +03:00
Timofey Solomko
791beca597
[LZMA2] Fix a crash when trying to process empty data
...
Now it throws LZMAError.rangeDecoderInitError instead.
2021-09-19 15:49:09 +03:00
Timofey Solomko
15a99d1448
[swcomp] Replace ContainerCommand.Entry with ContainerType
2021-09-19 15:15:55 +03:00
Timofey Solomko
19c788eb30
[swcomp] Output uncertainty of the bench speed using avg speed units
2021-09-13 17:33:09 +03:00
Timofey Solomko
d7824df50c
[swcomp] Move most bench commands into BenchmarkGroup file
2021-09-13 17:32:16 +03:00
Timofey Solomko
3eed2595be
[swcomp] Output results as a speed
2021-09-12 23:50:46 +03:00
Timofey Solomko
03af95fb96
[swcomp] Add CreateTar benchmarking command
2021-09-12 19:12:27 +03:00
Timofey Solomko
322fe5aaa8
[swcomp] Move createEntries function into a separate extension
2021-09-12 19:12:04 +03:00
Timofey Solomko
2fa22370dc
[swcomp] Generalize BenchmarkCommand protocol
2021-09-12 19:11:39 +03:00
Timofey Solomko
97323fa76a
Prepare for 4.6.0 release
2021-08-04 15:50:55 +03:00
Timofey Solomko
0ac48ae704
[docs] Add documentation for TarContainer.create(from:force:)
2021-08-04 10:52:31 +03:00
Timofey Solomko
4e8be1d4fc
[TAR] Remove TarEntryInfo.format in favor of working with header format directly
2021-08-03 18:39:03 +03:00
Timofey Solomko
925986b9ed
[TAR] Add an assertion that verifies that base-256 encoding will always succeed
2021-07-31 12:23:37 +03:00
Timofey Solomko
d335ed450e
[TAR] Counters for special entries are now UInt to prevent overflowing into negatives
2021-07-31 12:23:00 +03:00
Timofey Solomko
fe672f29dd
Prepare for the test release of 4.6.0
2021-07-28 11:21:59 +03:00
Timofey Solomko
417ef7ded8
[TAR] Small code comments changes
2021-07-28 11:17:49 +03:00
Timofey Solomko
e8e7bf1a72
[swcomp] Remove extra "try" in TarCommand
2021-07-28 11:14:32 +03:00
Timofey Solomko
ff269e3ffe
[ZIP] Rename ByteReader+Zip to LittleEndianByteReader+Zip
2021-07-27 16:19:06 +03:00
Timofey Solomko
2a8fe7d37f
[TAR] Remove an extra check in TarContainer functions for very small files
...
This situation is already covered by the check in TarParser, which results in ParsingResult.truncated. In addition, we repurposed TarError.tooSmallFileIsPassed for this cases (updated documentation).
2021-07-26 21:37:00 +03:00