Timofey Solomko
67c906840d
[swcomp] Add commands for performance testing deflate and bzip2 compression
2018-01-17 12:57:45 +03:00
Timofey Solomko
baa16b00b5
[swcomp] Add block size options to bzip2 command
2018-01-17 12:54:33 +03:00
Timofey Solomko
8fa195d560
[TAR] Replace Int.roundTo512() function with bitwise inlinable version in common Extensions file
2018-01-17 12:12:29 +03:00
Timofey Solomko
7d99ab176a
[BZip2] Use not-reduced block size for decompression
2018-01-17 12:01:00 +03:00
Timofey Solomko
6781ff5e96
[swcomp] Implement ZipCommand and SevenZipCommand using ContainerCommand
2018-01-16 22:52:27 +03:00
Timofey Solomko
ab7c65249d
[swcomp] Add ContainerCommand protocol
...
This protocol represents common functionality for container-related commands (7z and zip). Extension to this protocol implements execute() function which is the same for both 7z and Zip commands.
2018-01-16 22:52:20 +03:00
Timofey Solomko
ca41cc3b5f
[BZip2] Additionally reduce block sizes by 1.25
...
This is required, because, apparently, original bzip2 implementation doesn't account for the fact that the initial RLE can cause expansion of the data.
2018-01-16 22:28:35 +03:00
Timofey Solomko
6b6ece5b6e
[swcomp] Protect against non-set (set to 0) permissions in containers
...
Such permissions made files unaccessable by everyone except root.
2018-01-15 22:37:04 +03:00
Timofey Solomko
726cc8a828
[swcomp] Update description of extract option of 7z, tar and zip commands
2018-01-15 22:35:59 +03:00
Timofey Solomko
344421f49c
Exclude SPM's .build directory from swiftlint and swiftlint
2018-01-15 21:49:54 +03:00
Timofey Solomko
d8a47efd44
[BZip2] Slightly optimise initial RLE in compress
2018-01-14 23:07:09 +03:00
Timofey Solomko
02fb0c2886
[BZip2] Fix incorrect block sizes in compression
...
I previously thought that 1KB = 1024 bytes, but apparently in this case it is just 1000 bytes.
2018-01-14 18:17:44 +03:00
Timofey Solomko
955ab734c8
[swcomp] Add info option to GZipCommand, which prints GZip header
2018-01-14 13:12:03 +03:00
Timofey Solomko
714de31f5d
[swcomp] Add CustomStringConvertible extensions for several SWCompression's types
2018-01-14 13:11:35 +03:00
Timofey Solomko
6fafd9d729
[swcomp] Remove redundant checks covered by exactlyOne OptionGroups
2018-01-14 12:53:57 +03:00
Timofey Solomko
81a6cba5ff
Swiftlinted with two new rules
2018-01-14 11:12:27 +03:00
Timofey Solomko
fe3f1df588
[TAR] Remove Int.octalToDecimal() extension function, since it isn't used anymore
2018-01-12 21:41:19 +03:00
Timofey Solomko
ac2f097049
[TAR] Use stdlib's Int from String initializer with radix parameter where possible
2018-01-12 21:40:43 +03:00
Timofey Solomko
44f33bf02a
Make bit reader and writer functions' parameters concrete classes
...
Previously, it was almost always protocols, which in some cases didn't make sense.
2018-01-07 22:27:36 +03:00
Timofey Solomko
bb45735132
Merge BurrowsWheeler.reverse and transofrm functions
...
The latter was used only for reverse transformation despite its name.
2018-01-07 20:09:34 +03:00
Timofey Solomko
b9440aac9f
Rework inverse BWT by removing sorting stage
...
This change has a significant impact on performance in a good way.
2018-01-07 15:16:18 +03:00
Timofey Solomko
2be06c8c0a
Use ByteReader in all ZIP-related code
...
We can do this since we don't have asynchronous concerns anymore.
2018-01-07 15:12:59 +03:00
Timofey Solomko
536b5dcb49
Extract reverse local function of HuffmanTrees' inits as Int extension
2018-01-07 15:12:59 +03:00
Timofey Solomko
1dbc64a615
Remove switch from BZip2.BlockSize.headerByte
2018-01-07 15:12:59 +03:00
Timofey Solomko
7a09d5fde8
Preallocate bytes arrays in BZip2
2018-01-07 15:12:54 +03:00
Timofey Solomko
b035d910a0
Rewrite BZip2.BlockSize.headerByte() as computed properties
2018-01-05 15:03:47 +03:00
Timofey Solomko
9f4884adc8
Refactor bzip2 block size parsing
2018-01-03 23:41:20 +03:00
Timofey Solomko
22372cb6e9
Prepare for first test release of 4.1.0
2018-01-03 19:44:38 +03:00
Timofey Solomko
e714dc308b
Updated copyright year to 2018
2018-01-03 19:44:18 +03:00
Timofey Solomko
e986561487
Replace Int() conversions with toInt() functions
2018-01-03 19:22:15 +03:00
Timofey Solomko
d2d74d52b9
Remove unused extensions
2018-01-03 19:22:15 +03:00
Timofey Solomko
c8d92e56d3
Replace BitReader and ByteReader with BitByteData's implementations
2018-01-03 19:22:15 +03:00
Timofey Solomko
bb39c4016c
Replace SWCompression.BitWriter with BitByteData's one
2018-01-03 19:22:15 +03:00
Timofey Solomko
20ab480737
Complete renaming of DataWithPointer to ByteReader
...
This includes renaming pointerData variables to byteReader as well as renaming of files with extensions to ByteReader.
2018-01-03 19:22:14 +03:00
Timofey Solomko
1293cf15a0
Make BitReader.bitMask completely private
2018-01-03 19:22:14 +03:00
Timofey Solomko
22bd529b3c
Change return type of BitReader.bit() to UInt8
2018-01-03 19:22:13 +03:00
Timofey Solomko
dcf18c73d6
Rename ByteReader.isAtTheEnd to isFinished
2018-01-03 19:22:13 +03:00
Timofey Solomko
cef8ab12a2
Rename BitWriter.finish() to align
2018-01-03 19:22:13 +03:00
Timofey Solomko
15c06843b1
Replace BitWriter.buffer with Data
2018-01-03 19:22:13 +03:00
Timofey Solomko
b9eeb1bc7c
Rename ByteReader.index to offset
2018-01-03 19:22:13 +03:00
Timofey Solomko
3751e25c4f
Rename DataWithPointer to ByteReader
...
This and following commits should ease switch to BitByteData usage.
2018-01-03 19:22:13 +03:00
Timofey Solomko
6b0dd666ce
Several modifications to xcode projects
...
Organization name set to "Timofey Solomko"; reset some settings to its default values; remove separate test project and workspace by merging them into main project; move plist files inside xcode project; use project-wide settings as much as possible; set project version 50 (total amount of releases on github) and CFBundleShortVersion to 4.0.1; versions in xcode project are now managed by agvtool: project version is increased by 1 whenever there is a new release, CFBundleShortVersion will continue to be semantically versioned; remove some unused settings; remove header file and empty build phases.
2018-01-03 19:21:14 +03:00
Timofey Solomko
e05f917210
Improve compile time
2017-12-24 14:57:35 +03:00
Timofey Solomko
13d411e47c
Optimise zip's needsUtf8 function
2017-12-24 14:57:34 +03:00
Timofey Solomko
d7bb712031
Return Data instead of bytes array in Deflate.encodeHuffmanBlock
2017-12-24 14:49:32 +03:00
Timofey Solomko
cce4d35ab7
Remove bitOrder argument from BitWriter.write(number:bitCount:)
2017-12-21 15:26:00 +03:00
Timofey Solomko
d63d2977fb
Only reverse bit order of codes in EncHuffmanTree if necessary
...
And it is necessary only for Deflate. This will allow us to remove bitOrder argument of BitWriter.write, which has very unclear semantics
2017-12-21 15:24:54 +03:00
Timofey Solomko
07d9d41db2
Remove BitReader and DWP initialisers from byte array
2017-12-05 22:21:52 +03:00
Timofey Solomko
cd9bd4eec4
Remove DWP.previousByte
2017-12-05 22:21:32 +03:00
Timofey Solomko
c090d37c43
Set versions to 4.0.2-dev
2017-11-27 21:33:30 +03:00