1539 Commits

Author SHA1 Message Date
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