mirror of
https://github.com/tsolomko/SWCompression.git
synced 2026-06-23 14:56:41 +00:00
Merge branch 'release-4.3.0' into develop
This commit is contained in:
+2
-2
@@ -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
|
||||
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
|
||||
theme: fullwidth
|
||||
|
||||
custom_categories:
|
||||
|
||||
@@ -1,5 +1,25 @@
|
||||
# Changelog
|
||||
|
||||
## 4.3.0
|
||||
|
||||
- Updated to support Swift 4.1.
|
||||
- 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.
|
||||
- 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.
|
||||
|
||||
@@ -1 +1 @@
|
||||
github "tsolomko/BitByteData" "1.2.0-test.3"
|
||||
github "tsolomko/BitByteData" ~> 1.2
|
||||
|
||||
+2
-2
@@ -11,9 +11,9 @@ 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: "1.2.0"),
|
||||
],
|
||||
targets: [
|
||||
// SWCOMP: Uncomment the lines below to build swcomp example program.
|
||||
|
||||
@@ -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`.
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Pod::Spec.new do |s|
|
||||
|
||||
s.name = "SWCompression"
|
||||
s.version = "4.2.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."
|
||||
@@ -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"
|
||||
|
||||
s.subspec "Deflate" do |sp|
|
||||
sp.source_files = "Sources/{Deflate/*,Common/*}.swift"
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>4.2.2</string>
|
||||
<string>4.3.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>59</string>
|
||||
<string>62</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright © 2018 Timofey Solomko. All rights reserved.</string>
|
||||
</dict>
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>4.2.2</string>
|
||||
<string>4.3.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>59</string>
|
||||
<string>62</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -1159,7 +1159,7 @@
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CURRENT_PROJECT_VERSION = 59;
|
||||
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 = 59;
|
||||
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 = 59;
|
||||
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 = 59;
|
||||
DYLIB_CURRENT_VERSION = 62;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = SWCompression.xcodeproj/SWCompression.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
|
||||
@@ -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",
|
||||
description: """
|
||||
swcomp - small command-line client for SWCompression framework.
|
||||
Serves as an example of SWCompression usage.
|
||||
|
||||
+49
-38
@@ -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,52 +27,58 @@ 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
|
||||
|
||||
|SWCompression<br>version|BitByteData<br>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|
|
||||
|SWCompression<br>version|BitByteData<br>version|Swift<br>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<br>version|BitByteData<br>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|
|
||||
|SWCompression<br>version|BitByteData<br>version|Swift<br>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<br>version|BitByteData<br>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|
|
||||
|SWCompression<br>version|BitByteData<br>version|Swift<br>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<br>version|BitByteData<br>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|
|
||||
|SWCompression<br>version|BitByteData<br>version|Swift<br>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<br>version|BitByteData<br>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|
|
||||
|SWCompression<br>version|BitByteData<br>version|Swift<br>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<br>version|BitByteData<br>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|
|
||||
|SWCompression<br>version|BitByteData<br>version|Swift<br>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|
|
||||
|
||||
Reference in New Issue
Block a user