From f0cee44064ec190b34d59fc7da78eaf52ead1999 Mon Sep 17 00:00:00 2001 From: Timofey Solomko Date: Wed, 11 Apr 2018 00:32:54 +0300 Subject: [PATCH 1/9] Use 4.3 version in README --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 17d230e5..ad77dd44 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ let package = Package( name: "PackageName", dependencies: [ .package(url: "https://github.com/tsolomko/SWCompression.git", - from: "4.2.0") + from: "4.3.0") ], targets: [ .target( @@ -66,7 +66,7 @@ More details you can find in [Swift Package Manager's Documentation](https://git ### CocoaPods -Add `pod 'SWCompression', '~> 4.2'` and `use_frameworks!` to your Podfile. +Add `pod 'SWCompression', '~> 4.3'` and `use_frameworks!` to your Podfile. To complete installation, run `pod install`. @@ -112,7 +112,7 @@ __Note:__ If you use Swift Package Manager or Carthage you always have everythin ### Carthage -Add to your Cartfile `github "tsolomko/SWCompression" ~> 4.2`. +Add to your Cartfile `github "tsolomko/SWCompression" ~> 4.3`. Then run `carthage update`. From 156f0a05166d362a44b0ada3a899d43c2358fef1 Mon Sep 17 00:00:00 2001 From: Timofey Solomko Date: Wed, 11 Apr 2018 00:43:08 +0300 Subject: [PATCH 2/9] Prepare for first test release of 4.3.0 --- .jazzy.yaml | 4 ++-- CHANGELOG.md | 17 +++++++++++++++++ SWCompression.podspec | 4 ++-- SWCompression.xcodeproj/SWCompression.plist | 4 ++-- SWCompression.xcodeproj/TestSWCompression.plist | 4 ++-- SWCompression.xcodeproj/project.pbxproj | 8 ++++---- Sources/swcomp/main.swift | 2 +- 7 files changed, 30 insertions(+), 13 deletions(-) diff --git a/.jazzy.yaml b/.jazzy.yaml index db7d4de5..bab8bf6b 100644 --- a/.jazzy.yaml +++ b/.jazzy.yaml @@ -3,11 +3,11 @@ sourcekitten_sourcefile: docs.json clean: true author: Timofey Solomko module: SWCompression -module_version: 4.2.2 +module_version: 4.3.0-test.1 copyright: '© 2018 Timofey Solomko' readme: README.md github_url: https://github.com/tsolomko/SWCompression -github_file_prefix: https://github.com/tsolomko/SWCompression/tree/4.2.2 +github_file_prefix: https://github.com/tsolomko/SWCompression/tree/4.3.0-test.1 theme: fullwidth custom_categories: diff --git a/CHANGELOG.md b/CHANGELOG.md index dddbb2e9..58d2419f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## 4.3.0 + +### Test 1 + +- Updated to support Swift 4.1. +- Minuimum required version of BitByteData is now 1.2.0-test.3. +- Added APIs to enable support of custom ZIP Extra Fields. + - Added `ZipExtraField` protocol. + - Added `ZipExtraFieldLocation` enum. + - Added `ZipContainer.customExtraFields` property. + - Added `ZipEntryInfo.customExtraFields` property. +- Added `TarEntryInfo.compressionMethod` property which is always equal to `.copy`. +- Reverted "disable symbol stripping" change from 4.2.0 update, since underlying problem was fixed in Carthage. +- Benchmarks changes: + - Iterations number increased from 6 to 10. + - There is now a zeroth iteration which is excluded from averages. + ## 4.2.2 - Fixed skipping entries in `SevenZipContainer.open(container:)` in some rare cases. diff --git a/SWCompression.podspec b/SWCompression.podspec index 0a68532f..4f53c122 100644 --- a/SWCompression.podspec +++ b/SWCompression.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "SWCompression" - s.version = "4.2.2" + s.version = "4.3.0-test.1" s.summary = "A framework with functions for working with compression, archives and containers." s.description = "A framework with (de)compression algorithms and functions for processing various archives and containers." @@ -22,7 +22,7 @@ Pod::Spec.new do |s| s.swift_version = "4.1" - s.dependency "BitByteData", "~> 1.1" + s.dependency "BitByteData", "~> 1.2.0-test.3" s.subspec "Deflate" do |sp| sp.source_files = "Sources/{Deflate/*,Common/*}.swift" diff --git a/SWCompression.xcodeproj/SWCompression.plist b/SWCompression.xcodeproj/SWCompression.plist index 328506ea..4f4168aa 100644 --- a/SWCompression.xcodeproj/SWCompression.plist +++ b/SWCompression.xcodeproj/SWCompression.plist @@ -15,9 +15,9 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.2.2 + 4.3.0-test.1 CFBundleVersion - 59 + 60 NSHumanReadableCopyright Copyright © 2018 Timofey Solomko. All rights reserved. diff --git a/SWCompression.xcodeproj/TestSWCompression.plist b/SWCompression.xcodeproj/TestSWCompression.plist index 8b00954d..f69d89da 100644 --- a/SWCompression.xcodeproj/TestSWCompression.plist +++ b/SWCompression.xcodeproj/TestSWCompression.plist @@ -15,8 +15,8 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 4.2.2 + 4.3.0-test.1 CFBundleVersion - 59 + 60 diff --git a/SWCompression.xcodeproj/project.pbxproj b/SWCompression.xcodeproj/project.pbxproj index dd797a5d..bb4480ac 100644 --- a/SWCompression.xcodeproj/project.pbxproj +++ b/SWCompression.xcodeproj/project.pbxproj @@ -1163,7 +1163,7 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CURRENT_PROJECT_VERSION = 59; + CURRENT_PROJECT_VERSION = 60; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; @@ -1220,7 +1220,7 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CURRENT_PROJECT_VERSION = 59; + CURRENT_PROJECT_VERSION = 60; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_STRICT_OBJC_MSGSEND = YES; "FRAMEWORK_SEARCH_PATHS[sdk=appletvos*]" = "\"$(SRCROOT)/Carthage/Build/tvOS\""; @@ -1258,7 +1258,7 @@ APPLICATION_EXTENSION_API_ONLY = YES; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 59; + DYLIB_CURRENT_VERSION = 60; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = SWCompression.xcodeproj/SWCompression.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -1286,7 +1286,7 @@ APPLICATION_EXTENSION_API_ONLY = YES; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 59; + DYLIB_CURRENT_VERSION = 60; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = SWCompression.xcodeproj/SWCompression.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; diff --git a/Sources/swcomp/main.swift b/Sources/swcomp/main.swift index 5634f3eb..5517add8 100644 --- a/Sources/swcomp/main.swift +++ b/Sources/swcomp/main.swift @@ -7,7 +7,7 @@ import Foundation import SWCompression import SwiftCLI -let cli = CLI(name: "swcomp", version: "4.2.2", +let cli = CLI(name: "swcomp", version: "4.3.0-test.1", description: """ swcomp - small command-line client for SWCompression framework. Serves as an example of SWCompression usage. From 3b8989549e340ed2bdf192c022760cb5d8815670 Mon Sep 17 00:00:00 2001 From: Timofey Solomko Date: Fri, 20 Apr 2018 19:23:29 +0300 Subject: [PATCH 3/9] Prepare for the second test release of 4.3.0 --- .jazzy.yaml | 4 ++-- CHANGELOG.md | 8 ++++++++ SWCompression.podspec | 2 +- SWCompression.xcodeproj/SWCompression.plist | 4 ++-- SWCompression.xcodeproj/TestSWCompression.plist | 4 ++-- SWCompression.xcodeproj/project.pbxproj | 8 ++++---- Sources/swcomp/main.swift | 2 +- 7 files changed, 20 insertions(+), 12 deletions(-) diff --git a/.jazzy.yaml b/.jazzy.yaml index adf07293..e361976b 100644 --- a/.jazzy.yaml +++ b/.jazzy.yaml @@ -3,11 +3,11 @@ sourcekitten_sourcefile: docs.json clean: true author: Timofey Solomko module: SWCompression -module_version: 4.3.0-test.1 +module_version: 4.3.0-test.2 copyright: '© 2018 Timofey Solomko' readme: README.md github_url: https://github.com/tsolomko/SWCompression -github_file_prefix: https://github.com/tsolomko/SWCompression/tree/4.3.0-test.1 +github_file_prefix: https://github.com/tsolomko/SWCompression/tree/4.3.0-test.2 theme: fullwidth custom_categories: diff --git a/CHANGELOG.md b/CHANGELOG.md index 58d2419f..ec4a9532 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ ## 4.3.0 +### Test 2 + +- Added `TarContainer.Format` enum which represents various formats of TAR containers. +- Added `TarContainer.formatOf(container:)` function which returns format for the container. +- Added `-f`, `--format` option to `tar` command which prints format of TAR container. +- Added documenation for `Container.Entry` and `ContainerEntry.Info` associated types. +- [Test] Documentation pages for `ZipExtraField` and `ZipExtraFieldLocation` are now located in "Containers" category. + ### Test 1 - Updated to support Swift 4.1. diff --git a/SWCompression.podspec b/SWCompression.podspec index 4f53c122..b122cba1 100644 --- a/SWCompression.podspec +++ b/SWCompression.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "SWCompression" - s.version = "4.3.0-test.1" + s.version = "4.3.0-test.2" s.summary = "A framework with functions for working with compression, archives and containers." s.description = "A framework with (de)compression algorithms and functions for processing various archives and containers." diff --git a/SWCompression.xcodeproj/SWCompression.plist b/SWCompression.xcodeproj/SWCompression.plist index 4f4168aa..42b5e6b7 100644 --- a/SWCompression.xcodeproj/SWCompression.plist +++ b/SWCompression.xcodeproj/SWCompression.plist @@ -15,9 +15,9 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.3.0-test.1 + 4.3.0-test.2 CFBundleVersion - 60 + 61 NSHumanReadableCopyright Copyright © 2018 Timofey Solomko. All rights reserved. diff --git a/SWCompression.xcodeproj/TestSWCompression.plist b/SWCompression.xcodeproj/TestSWCompression.plist index f69d89da..7d5b57aa 100644 --- a/SWCompression.xcodeproj/TestSWCompression.plist +++ b/SWCompression.xcodeproj/TestSWCompression.plist @@ -15,8 +15,8 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 4.3.0-test.1 + 4.3.0-test.2 CFBundleVersion - 60 + 61 diff --git a/SWCompression.xcodeproj/project.pbxproj b/SWCompression.xcodeproj/project.pbxproj index 79073354..ebf5cd29 100644 --- a/SWCompression.xcodeproj/project.pbxproj +++ b/SWCompression.xcodeproj/project.pbxproj @@ -1159,7 +1159,7 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CURRENT_PROJECT_VERSION = 60; + CURRENT_PROJECT_VERSION = 61; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; @@ -1216,7 +1216,7 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CURRENT_PROJECT_VERSION = 60; + CURRENT_PROJECT_VERSION = 61; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_STRICT_OBJC_MSGSEND = YES; "FRAMEWORK_SEARCH_PATHS[sdk=appletvos*]" = "\"$(SRCROOT)/Carthage/Build/tvOS\""; @@ -1254,7 +1254,7 @@ APPLICATION_EXTENSION_API_ONLY = YES; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 60; + DYLIB_CURRENT_VERSION = 61; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = SWCompression.xcodeproj/SWCompression.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -1282,7 +1282,7 @@ APPLICATION_EXTENSION_API_ONLY = YES; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 60; + DYLIB_CURRENT_VERSION = 61; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = SWCompression.xcodeproj/SWCompression.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; diff --git a/Sources/swcomp/main.swift b/Sources/swcomp/main.swift index 5517add8..b1efa384 100644 --- a/Sources/swcomp/main.swift +++ b/Sources/swcomp/main.swift @@ -7,7 +7,7 @@ import Foundation import SWCompression import SwiftCLI -let cli = CLI(name: "swcomp", version: "4.3.0-test.1", +let cli = CLI(name: "swcomp", version: "4.3.0-test.2", description: """ swcomp - small command-line client for SWCompression framework. Serves as an example of SWCompression usage. From ed56b7d8bf18faae499e7a8c95e356087a653b39 Mon Sep 17 00:00:00 2001 From: Timofey Solomko Date: Sat, 21 Apr 2018 13:45:04 +0300 Subject: [PATCH 4/9] Add benchmark results for 4.3.0 --- Tests/Results.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Tests/Results.md b/Tests/Results.md index 3a7d19a2..a944bec6 100644 --- a/Tests/Results.md +++ b/Tests/Results.md @@ -31,6 +31,7 @@ __Note:__ All results are averages over 6 iterations. |4.0.0|—|6.821 ± 0.042|54.214 ± 1.398|7.255 ± 0.117| |4.0.1|—|6.797 ± 0.080|54.046 ± 1.070|7.177 ± 0.029| |4.1.0|1.0.1|4.452 ± 0.125|36.768 ± 0.382|4.880 ± 0.094| +|4.3.0|1.2.0|3.481 ± 0.038|27.187 ± 0.152|3.914 ± 0.091| ## XZ Unarchive (LZMA/LZMA2 Decompress) @@ -39,6 +40,7 @@ __Note:__ All results are averages over 6 iterations. |4.0.0|—|error|24.663 ± 2.349|2.904 ± 0.076| |4.0.1|—|2.475 ± 0.067|23.507 ± 0.423|2.901 ± 0.049| |4.1.0|1.0.1|2.480 ± 0.091|24.126 ± 1.239|2.892 ± 0.052| +|4.3.0|1.2.0|2.664 ± 0.031|26.030 ± 1.200|3.111 ± 0.053| ## GZip Unarchive (Deflate Decompress) @@ -47,6 +49,7 @@ __Note:__ All results are averages over 6 iterations. |4.0.0|—|4.007 ± 0.196|32.043 ± 0.581|4.303 ± 0.045| |4.0.1|—|3.886 ± 0.100|32.390 ± 0.896|4.295 ± 0.040| |4.1.0|1.0.1|2.886 ± 0.571|22.134 ± 1.473|2.700 ± 0.168| +|4.3.0|1.2.0|1.622 ± 0.016|13.641 ± 0.069|1.804 ± 0.028| ## 7-Zip Info Function @@ -55,6 +58,7 @@ __Note:__ All results are averages over 6 iterations. |4.0.0|—|0.270 ± 0.010|crash|0.601 ± 0.057| |4.0.1|—|0.258 ± 0.003|0.601 ± 0.010|0.473 ± 0.008| |4.1.0|1.0.1|0.062 ± 0.008|0.208 ± 0.010|0.122 ± 0.003| +|4.3.0|1.2.0|0.060 ± 0.006|0.208 ± 0.008|0.123 ± 0.008| ## TAR Info Function @@ -63,6 +67,7 @@ __Note:__ All results are averages over 6 iterations. |4.0.0|—|0.248 ± 0.172|1.563 ± 0.442|1.254 ± 0.277| |4.0.1|—|0.187 ± 0.177|1.257 ± 0.404|1.016 ± 0.325| |4.1.0|1.0.1|0.194 ± 0.190|1.335 ± 0.475|1.062 ± 0.353| +|4.3.0|1.2.0|0.111 ± 0.008|1.014 ± 0.016|0.813 ± 0.015| ## ZIP Info Function @@ -71,3 +76,4 @@ __Note:__ All results are averages over 6 iterations. |4.0.0|—|0.072 ± 0.065|0.669 ± 0.147|0.120 ± 0.081| |4.0.1|—|0.076 ± 0.064|0.670 ± 0.142|0.123 ± 0.080| |4.1.0|1.0.1|0.063 ± 0.076|0.148 ± 0.107|0.105 ± 0.089| +|4.3.0|1.2.0|0.044 ± 0.007|0.122 ± 0.009|0.086 ± 0.008| From dfa4aeb478e6b337a930d819a0eb621cfb1eca30 Mon Sep 17 00:00:00 2001 From: Timofey Solomko Date: Sat, 21 Apr 2018 13:45:35 +0300 Subject: [PATCH 5/9] Use 5.0.0 version of cli framework --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index 805d1fee..a713dc46 100644 --- a/Package.swift +++ b/Package.swift @@ -11,7 +11,7 @@ let package = Package( dependencies: [ // SWCOMP: Uncomment the line below to build swcomp example program. // .package(url: "https://github.com/jakeheis/SwiftCLI", - // from: "4.2.0"), + // from: "5.0.0"), .package(url: "https://github.com/tsolomko/BitByteData", from: "1.2.0-test"), ], From e152c3b2c49bc230a1ebfcc4f0591f6eaa038bc9 Mon Sep 17 00:00:00 2001 From: Timofey Solomko Date: Sat, 21 Apr 2018 13:48:06 +0300 Subject: [PATCH 6/9] Add Swift version column to benchmark results --- Tests/Results.md | 72 ++++++++++++++++++++++++------------------------ 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/Tests/Results.md b/Tests/Results.md index a944bec6..7d4ed0dd 100644 --- a/Tests/Results.md +++ b/Tests/Results.md @@ -26,54 +26,54 @@ __Note:__ All results are averages over 6 iterations. ## BZip2 Decompress -|SWCompression
version|BitByteData
version|Test 1|Test 2|Test 3| -|:---:|:---:|---|---|---| -|4.0.0|—|6.821 ± 0.042|54.214 ± 1.398|7.255 ± 0.117| -|4.0.1|—|6.797 ± 0.080|54.046 ± 1.070|7.177 ± 0.029| -|4.1.0|1.0.1|4.452 ± 0.125|36.768 ± 0.382|4.880 ± 0.094| -|4.3.0|1.2.0|3.481 ± 0.038|27.187 ± 0.152|3.914 ± 0.091| +|SWCompression
version|BitByteData
version|Swift
version|Test 1|Test 2|Test 3| +|:---:|:---:|:---:|---|---|---| +|4.0.0|—|4.0.X|6.821 ± 0.042|54.214 ± 1.398|7.255 ± 0.117| +|4.0.1|—|4.0.X|6.797 ± 0.080|54.046 ± 1.070|7.177 ± 0.029| +|4.1.0|1.0.1|4.0.X|4.452 ± 0.125|36.768 ± 0.382|4.880 ± 0.094| +|4.3.0|1.2.0|4.1.0|3.481 ± 0.038|27.187 ± 0.152|3.914 ± 0.091| ## XZ Unarchive (LZMA/LZMA2 Decompress) -|SWCompression
version|BitByteData
version|Test 1|Test 2|Test 3| -|:---:|:---:|---|---|---| -|4.0.0|—|error|24.663 ± 2.349|2.904 ± 0.076| -|4.0.1|—|2.475 ± 0.067|23.507 ± 0.423|2.901 ± 0.049| -|4.1.0|1.0.1|2.480 ± 0.091|24.126 ± 1.239|2.892 ± 0.052| -|4.3.0|1.2.0|2.664 ± 0.031|26.030 ± 1.200|3.111 ± 0.053| +|SWCompression
version|BitByteData
version|Swift
version|Test 1|Test 2|Test 3| +|:---:|:---:|:---:|---|---|---| +|4.0.0|—|4.0.X|error|24.663 ± 2.349|2.904 ± 0.076| +|4.0.1|—|4.0.X|2.475 ± 0.067|23.507 ± 0.423|2.901 ± 0.049| +|4.1.0|1.0.1|4.0.X|2.480 ± 0.091|24.126 ± 1.239|2.892 ± 0.052| +|4.3.0|1.2.0|4.1.0|2.664 ± 0.031|26.030 ± 1.200|3.111 ± 0.053| ## GZip Unarchive (Deflate Decompress) -|SWCompression
version|BitByteData
version|Test 1|Test 2|Test 3| -|:---:|:---:|---|---|---| -|4.0.0|—|4.007 ± 0.196|32.043 ± 0.581|4.303 ± 0.045| -|4.0.1|—|3.886 ± 0.100|32.390 ± 0.896|4.295 ± 0.040| -|4.1.0|1.0.1|2.886 ± 0.571|22.134 ± 1.473|2.700 ± 0.168| -|4.3.0|1.2.0|1.622 ± 0.016|13.641 ± 0.069|1.804 ± 0.028| +|SWCompression
version|BitByteData
version|Swift
version|Test 1|Test 2|Test 3| +|:---:|:---:|:---:|---|---|---| +|4.0.0|—|4.0.X|4.007 ± 0.196|32.043 ± 0.581|4.303 ± 0.045| +|4.0.1|—|4.0.X|3.886 ± 0.100|32.390 ± 0.896|4.295 ± 0.040| +|4.1.0|1.0.1|4.0.X|2.886 ± 0.571|22.134 ± 1.473|2.700 ± 0.168| +|4.3.0|1.2.0|4.1.0|1.622 ± 0.016|13.641 ± 0.069|1.804 ± 0.028| ## 7-Zip Info Function -|SWCompression
version|BitByteData
version|Test 1|Test 2|Test 3| -|:---:|:---:|---|---|---| -|4.0.0|—|0.270 ± 0.010|crash|0.601 ± 0.057| -|4.0.1|—|0.258 ± 0.003|0.601 ± 0.010|0.473 ± 0.008| -|4.1.0|1.0.1|0.062 ± 0.008|0.208 ± 0.010|0.122 ± 0.003| -|4.3.0|1.2.0|0.060 ± 0.006|0.208 ± 0.008|0.123 ± 0.008| +|SWCompression
version|BitByteData
version|Swift
version|Test 1|Test 2|Test 3| +|:---:|:---:|:---:|---|---|---| +|4.0.0|—|4.0.X|0.270 ± 0.010|crash|0.601 ± 0.057| +|4.0.1|—|4.0.X|0.258 ± 0.003|0.601 ± 0.010|0.473 ± 0.008| +|4.1.0|1.0.1|4.0.X|0.062 ± 0.008|0.208 ± 0.010|0.122 ± 0.003| +|4.3.0|1.2.0|4.1.0|0.060 ± 0.006|0.208 ± 0.008|0.123 ± 0.008| ## TAR Info Function -|SWCompression
version|BitByteData
version|Test 1|Test 2|Test 3| -|:---:|:---:|---|---|---| -|4.0.0|—|0.248 ± 0.172|1.563 ± 0.442|1.254 ± 0.277| -|4.0.1|—|0.187 ± 0.177|1.257 ± 0.404|1.016 ± 0.325| -|4.1.0|1.0.1|0.194 ± 0.190|1.335 ± 0.475|1.062 ± 0.353| -|4.3.0|1.2.0|0.111 ± 0.008|1.014 ± 0.016|0.813 ± 0.015| +|SWCompression
version|BitByteData
version|Swift
version|Test 1|Test 2|Test 3| +|:---:|:---:|:---:|---|---|---| +|4.0.0|—|4.0.X|0.248 ± 0.172|1.563 ± 0.442|1.254 ± 0.277| +|4.0.1|—|4.0.X|0.187 ± 0.177|1.257 ± 0.404|1.016 ± 0.325| +|4.1.0|1.0.1|4.0.X|0.194 ± 0.190|1.335 ± 0.475|1.062 ± 0.353| +|4.3.0|1.2.0|4.1.0|0.111 ± 0.008|1.014 ± 0.016|0.813 ± 0.015| ## ZIP Info Function -|SWCompression
version|BitByteData
version|Test 1|Test 2|Test 3| -|:---:|:---:|---|---|---| -|4.0.0|—|0.072 ± 0.065|0.669 ± 0.147|0.120 ± 0.081| -|4.0.1|—|0.076 ± 0.064|0.670 ± 0.142|0.123 ± 0.080| -|4.1.0|1.0.1|0.063 ± 0.076|0.148 ± 0.107|0.105 ± 0.089| -|4.3.0|1.2.0|0.044 ± 0.007|0.122 ± 0.009|0.086 ± 0.008| +|SWCompression
version|BitByteData
version|Swift
version|Test 1|Test 2|Test 3| +|:---:|:---:|:---:|---|---|---| +|4.0.0|—|4.0.X|0.072 ± 0.065|0.669 ± 0.147|0.120 ± 0.081| +|4.0.1|—|4.0.X|0.076 ± 0.064|0.670 ± 0.142|0.123 ± 0.080| +|4.1.0|1.0.1|4.0.X|0.063 ± 0.076|0.148 ± 0.107|0.105 ± 0.089| +|4.3.0|1.2.0|4.1.0|0.044 ± 0.007|0.122 ± 0.009|0.086 ± 0.008| From e0cba7f4209bb33b084a6c4db51298b3ced61581 Mon Sep 17 00:00:00 2001 From: Timofey Solomko Date: Sat, 21 Apr 2018 14:02:20 +0300 Subject: [PATCH 7/9] Mention iteration changes in benchmark results --- Tests/Results.md | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/Tests/Results.md b/Tests/Results.md index 7d4ed0dd..0f749650 100644 --- a/Tests/Results.md +++ b/Tests/Results.md @@ -1,17 +1,22 @@ # Test Results -In this document you can find the results of benchmarking which were run on Macbook Pro, Late 2011. -The main purpose of these results is to track the progress from version to version. +In this document you can find the results of benchmarking which was performed on Macbook Pro, Late 2011. The main +purpose of these results is to track progress from version to version. -__Note:__ Since version 4.1.0 of SWCompression internal functionality related to reading/writing bits and bytes +__Note:__ Since 4.1.0 version of SWCompression internal functionality related to reading/writing bits and bytes is published as a separate framework, [BitByteData](https://github.com/tsolomko/BitByteData). -It is worth mentioning that overall performance depends on the speed of reading and writing, -and thus BitByteData's version (which is specified in a separate column in the tables below) -becomes relevant to benchmarking, since newer version can contain speed improvements. +The overall performance heavily depends on the speed of reading and writing, and thus BitByteData's version, which is +specified in a separate column in the tables below, becomes relevant to benchmarking, since newer versions can contain +performance improvements. + +__Note:__ Since 4.3.0 version of SWCompression the first (zeroth, actually) iteration is excluded from averages +calculation since this iteration has abnormally longer execution time than any of the following iterations. This +exclusion led not only to (artificially) improved results, but also to the increased quality of the results by reducing +calculated uncertainty. ## Tests description -There are three different datasets for testing. When choosing them I was trying to have something, +There are three different datasets for testing. When choosing them the intention was to have something that represents real life situations. For obvious reasons these test files aren't provided anywhere in the repository. @@ -22,7 +27,7 @@ in the repository. All tests were run using swcomp's "benchmark" command. SWCompression (and swcomp) were compiled using "Release" configuration. -__Note:__ All results are averages over 6 iterations. +__Note:__ All results are averages over 10 iterations (6 iterations until 4.3.0 version). ## BZip2 Decompress From f248862a79576aea094871cee8af853e9d83e80f Mon Sep 17 00:00:00 2001 From: Timofey Solomko Date: Sun, 29 Apr 2018 11:26:28 +0300 Subject: [PATCH 8/9] Use final version of BBD 1.2.0 --- Cartfile | 2 +- Package.swift | 2 +- SWCompression.podspec | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cartfile b/Cartfile index 02555728..20558217 100644 --- a/Cartfile +++ b/Cartfile @@ -1 +1 @@ -github "tsolomko/BitByteData" "1.2.0-test.3" +github "tsolomko/BitByteData" ~> 1.2 diff --git a/Package.swift b/Package.swift index a713dc46..0da00ff9 100644 --- a/Package.swift +++ b/Package.swift @@ -13,7 +13,7 @@ let package = Package( // .package(url: "https://github.com/jakeheis/SwiftCLI", // from: "5.0.0"), .package(url: "https://github.com/tsolomko/BitByteData", - from: "1.2.0-test"), + from: "1.2.0"), ], targets: [ // SWCOMP: Uncomment the lines below to build swcomp example program. diff --git a/SWCompression.podspec b/SWCompression.podspec index b122cba1..878df27a 100644 --- a/SWCompression.podspec +++ b/SWCompression.podspec @@ -22,7 +22,7 @@ Pod::Spec.new do |s| s.swift_version = "4.1" - s.dependency "BitByteData", "~> 1.2.0-test.3" + s.dependency "BitByteData", "~> 1.2.0" s.subspec "Deflate" do |sp| sp.source_files = "Sources/{Deflate/*,Common/*}.swift" From d55607dd0669ca27db2f3874bb4c59bb4c015ee1 Mon Sep 17 00:00:00 2001 From: Timofey Solomko Date: Sun, 29 Apr 2018 11:27:40 +0300 Subject: [PATCH 9/9] Prepare for 4.3.0 release --- .jazzy.yaml | 4 ++-- CHANGELOG.md | 19 +++++++------------ SWCompression.podspec | 2 +- SWCompression.xcodeproj/SWCompression.plist | 4 ++-- .../TestSWCompression.plist | 4 ++-- SWCompression.xcodeproj/project.pbxproj | 8 ++++---- Sources/swcomp/main.swift | 2 +- 7 files changed, 19 insertions(+), 24 deletions(-) diff --git a/.jazzy.yaml b/.jazzy.yaml index e361976b..9eddaeb7 100644 --- a/.jazzy.yaml +++ b/.jazzy.yaml @@ -3,11 +3,11 @@ sourcekitten_sourcefile: docs.json clean: true author: Timofey Solomko module: SWCompression -module_version: 4.3.0-test.2 +module_version: 4.3.0 copyright: '© 2018 Timofey Solomko' readme: README.md github_url: https://github.com/tsolomko/SWCompression -github_file_prefix: https://github.com/tsolomko/SWCompression/tree/4.3.0-test.2 +github_file_prefix: https://github.com/tsolomko/SWCompression/tree/4.3.0 theme: fullwidth custom_categories: diff --git a/CHANGELOG.md b/CHANGELOG.md index ec4a9532..bba766f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,24 +2,19 @@ ## 4.3.0 -### Test 2 - -- Added `TarContainer.Format` enum which represents various formats of TAR containers. -- Added `TarContainer.formatOf(container:)` function which returns format for the container. -- Added `-f`, `--format` option to `tar` command which prints format of TAR container. -- Added documenation for `Container.Entry` and `ContainerEntry.Info` associated types. -- [Test] Documentation pages for `ZipExtraField` and `ZipExtraFieldLocation` are now located in "Containers" category. - -### Test 1 - - Updated to support Swift 4.1. -- Minuimum required version of BitByteData is now 1.2.0-test.3. -- Added APIs to enable support of custom ZIP Extra Fields. +- Minuimum required version of BitByteData is now 1.2.0. +- Added APIs which allow to use custom ZIP Extra Fields. - Added `ZipExtraField` protocol. - Added `ZipExtraFieldLocation` enum. - Added `ZipContainer.customExtraFields` property. - Added `ZipEntryInfo.customExtraFields` property. +- Added APIs which allow to get information about TAR's format: + - Added `TarContainer.Format` enum which represents various formats of TAR containers. + - Added `TarContainer.formatOf(container:)` function which returns format of the container. + - Added `-f`, `--format` option to swcomp's `tar` command which prints format of TAR container. - Added `TarEntryInfo.compressionMethod` property which is always equal to `.copy`. +- Added documenation for `Container.Entry` and `ContainerEntry.Info` associated types. - Reverted "disable symbol stripping" change from 4.2.0 update, since underlying problem was fixed in Carthage. - Benchmarks changes: - Iterations number increased from 6 to 10. diff --git a/SWCompression.podspec b/SWCompression.podspec index 878df27a..a0309604 100644 --- a/SWCompression.podspec +++ b/SWCompression.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "SWCompression" - s.version = "4.3.0-test.2" + s.version = "4.3.0" s.summary = "A framework with functions for working with compression, archives and containers." s.description = "A framework with (de)compression algorithms and functions for processing various archives and containers." diff --git a/SWCompression.xcodeproj/SWCompression.plist b/SWCompression.xcodeproj/SWCompression.plist index 42b5e6b7..f2425192 100644 --- a/SWCompression.xcodeproj/SWCompression.plist +++ b/SWCompression.xcodeproj/SWCompression.plist @@ -15,9 +15,9 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.3.0-test.2 + 4.3.0 CFBundleVersion - 61 + 62 NSHumanReadableCopyright Copyright © 2018 Timofey Solomko. All rights reserved. diff --git a/SWCompression.xcodeproj/TestSWCompression.plist b/SWCompression.xcodeproj/TestSWCompression.plist index 7d5b57aa..41412361 100644 --- a/SWCompression.xcodeproj/TestSWCompression.plist +++ b/SWCompression.xcodeproj/TestSWCompression.plist @@ -15,8 +15,8 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 4.3.0-test.2 + 4.3.0 CFBundleVersion - 61 + 62 diff --git a/SWCompression.xcodeproj/project.pbxproj b/SWCompression.xcodeproj/project.pbxproj index ebf5cd29..800d1067 100644 --- a/SWCompression.xcodeproj/project.pbxproj +++ b/SWCompression.xcodeproj/project.pbxproj @@ -1159,7 +1159,7 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CURRENT_PROJECT_VERSION = 61; + CURRENT_PROJECT_VERSION = 62; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; @@ -1216,7 +1216,7 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CURRENT_PROJECT_VERSION = 61; + CURRENT_PROJECT_VERSION = 62; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_STRICT_OBJC_MSGSEND = YES; "FRAMEWORK_SEARCH_PATHS[sdk=appletvos*]" = "\"$(SRCROOT)/Carthage/Build/tvOS\""; @@ -1254,7 +1254,7 @@ APPLICATION_EXTENSION_API_ONLY = YES; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 61; + DYLIB_CURRENT_VERSION = 62; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = SWCompression.xcodeproj/SWCompression.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -1282,7 +1282,7 @@ APPLICATION_EXTENSION_API_ONLY = YES; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 61; + DYLIB_CURRENT_VERSION = 62; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = SWCompression.xcodeproj/SWCompression.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; diff --git a/Sources/swcomp/main.swift b/Sources/swcomp/main.swift index b1efa384..86714538 100644 --- a/Sources/swcomp/main.swift +++ b/Sources/swcomp/main.swift @@ -7,7 +7,7 @@ import Foundation import SWCompression import SwiftCLI -let cli = CLI(name: "swcomp", version: "4.3.0-test.2", +let cli = CLI(name: "swcomp", version: "4.3.0", description: """ swcomp - small command-line client for SWCompression framework. Serves as an example of SWCompression usage.