Timofey Solomko
6fe73cb9a0
Merge branch 'develop'
4.8.3
2022-10-22 20:06:45 +03:00
Timofey Solomko
c7f4665394
Prepare for 4.8.3 release
2022-10-22 20:06:24 +03:00
Timofey Solomko
d445479b82
Gitignore API baselines
2022-10-22 20:04:56 +03:00
Timofey Solomko
9263cd3284
[swcomp] Correctly extract hard links from TAR containers
...
Note that creating containers with hard links is still not supported (I do not know how to detect hard links with FileManager).
2022-10-22 19:29:04 +03:00
Timofey Solomko
747035ffe1
[Tests] Add a test for a PAX header with a newline character inside a record value
2022-10-22 18:44:46 +03:00
Timofey Solomko
efd67feb07
[TAR] Handle PAX headers with non-utf8 values and values with newline characters
...
For example, Apple's implementation of TAR on macOS produces such containers, which technically do not conform to the (informal) specifications.
2022-10-22 18:42:44 +03:00
Timofey Solomko
8c58f1840e
Add a warning about swcomp to README
2022-10-22 15:05:53 +03:00
Timofey Solomko
f191db2494
[swcomp] Use saved (relative) paths when extracting symlinks
2022-10-21 21:27:47 +03:00
Timofey Solomko
5b590803b8
[TAR] Remove outdated code comment
2022-10-21 19:33:50 +03:00
Timofey Solomko
0c80ccedf2
[Tests] Correctly check for error type in Deflate truncation testing
2022-10-21 19:28:13 +03:00
Timofey Solomko
df55c2e4e2
[Tests] Add tests for truncation GZip-specific parts
2022-10-21 19:27:53 +03:00
Timofey Solomko
32d6dc8ae6
[GZip] Improve truncation detection in the footer and optional parts of the header
2022-10-21 19:27:25 +03:00
Timofey Solomko
facedfd3a1
[Tests] Expand extra field in extra field GZip test
...
In addition, prevent potential crashes in tests when an extra field incorrectly parsed.
2022-10-21 18:58:03 +03:00
Timofey Solomko
d0479a19e7
[Tests] Change gzip archive test to also generate a random extra field
2022-10-14 20:26:04 +03:00
Timofey Solomko
dafd474b96
[GZip] Add a new parameter with a default value to GzipArchive.archive which allows to set any extra fields
2022-10-14 20:23:19 +03:00
Timofey Solomko
31d5839e71
[Tests] Add tests for gzip header's extra fields and other optional format features
2022-10-14 20:02:02 +03:00
Timofey Solomko
03e23231fa
[GZip] Add processing of extra fields in GzipHeader
2022-10-14 19:59:18 +03:00
Timofey Solomko
241e523ba7
[GZip] Add a struct that represents header's extra field
2022-10-14 19:57:20 +03:00
Timofey Solomko
c5362651dd
[GZip] Change GzipHeader properties to var instead of let
2022-10-14 19:32:23 +03:00
Timofey Solomko
f9297d96a1
[GZip] Reject non byte-aligned members
...
The reasoning here is that GZip format is "byte-oriented" and not "bit-oriented", so seemingly GZip members (headers) that begin not on a byte boundary should be disallowed.
2022-10-14 19:30:39 +03:00
Timofey Solomko
ae6a99ff15
Add minimum deployment version for Darwin platforms in SPM manifest
2022-10-12 14:18:54 +03:00
Timofey Solomko
5becb3f6db
utils.py: add a command which automates bumping release version
2022-10-12 13:40:07 +03:00
Timofey Solomko
9d4ad9296f
[CI] SPM builds include swcomp on macos and linux
2022-10-12 13:15:17 +03:00
Timofey Solomko
987111c620
[swcomp] Fix build issues on linux and windows due to absence of autoreleasepool
2022-10-12 13:13:59 +03:00
Timofey Solomko
7cf26da9cb
[swcomp] Optimize printing in benchmark show
2022-10-11 21:25:21 +03:00
Timofey Solomko
d3143d58b4
[swcomp] Perform benchmark speed computations using nanosecond time resolution
2022-10-11 21:14:11 +03:00
Timofey Solomko
5187f34a9d
[swcomp] Reuse saved benchmark metadata if possible
2022-10-11 11:22:03 +03:00
Timofey Solomko
9a948f8584
[swcomp] Make benchmark results timestamp optional by introducing --preserve-timestamp option
2022-10-11 11:22:03 +03:00
Timofey Solomko
708e1bbade
[swcomp] Add --append option to benchmark run
2022-10-11 11:22:02 +03:00
Timofey Solomko
f3ca7a7ff5
[swcomp] Print brackets around metadata numbers
2022-10-11 11:22:02 +03:00
Timofey Solomko
f47d541882
[swcomp] Introduce a new, more flexible version of the save file format
...
It features a separate struct for results metadata and also allows multi-way comparisons with previously saved results.
2022-10-11 11:21:36 +03:00
Timofey Solomko
899cf8a815
[swcomp] Add --description option to the benchmark run command
2022-10-06 15:14:04 +03:00
Timofey Solomko
b660005a7c
[swcomp] Print saved metadata
2022-10-06 15:13:15 +03:00
Timofey Solomko
577531c4be
[swcomp] Use SaveFile for saving and loading benchmark results
2022-10-06 14:26:59 +03:00
Timofey Solomko
a3e439aff5
[swcomp] Add SaveFile struct for saving additional benchmark metadata
2022-10-06 14:26:29 +03:00
Timofey Solomko
269ae9b1f3
[swcomp] SWC version is now stored as a global variable
2022-10-06 13:31:07 +03:00
Timofey Solomko
1c98d5316d
[swcomp] Perform comparison with the first result when there are multiple
...
Previosuly, the comparsion was skipped entirely.
2022-10-06 12:55:15 +03:00
Timofey Solomko
4e4f734ab0
[swcomp] Add "benchmark show" command
2022-10-05 20:44:05 +03:00
Timofey Solomko
f47cf14f26
[swcomp] Improve loading and printing of base benchmark results
2022-10-05 20:33:27 +03:00
Timofey Solomko
61eb547202
[swcomp] Extract comparison printing as a new function
2022-10-05 18:07:47 +03:00
Timofey Solomko
e84040b156
[swcomp] Add benchmark command group
2022-10-05 15:08:00 +03:00
Timofey Solomko
dca723d940
[swcomp] Rename benchmark command to run command and add a long description
2022-10-05 15:07:38 +03:00
Timofey Solomko
56f9533372
[CI] Upgrade to Xcode 14.0.1 and upgrade deploy setup
2022-10-05 15:07:03 +03:00
Timofey Solomko
5419717624
Merge branch 'develop'
4.8.2
2022-09-24 14:34:39 +03:00
Timofey Solomko
bba5eb7b61
Prepare for 4.8.2 release
2022-09-24 14:34:02 +03:00
Timofey Solomko
aa41f5c7cb
Update README to mention version 4.8 and adjust swcomp and "why" sections
2022-09-24 14:33:14 +03:00
Timofey Solomko
55cc5a9036
[docs] Remove mentions of "older than Swift 5.2" versions since they are no longer supported
2022-09-24 14:27:21 +03:00
Timofey Solomko
2cda74eb06
[CI] Build only SWCompression target with SPM
2022-09-24 14:05:33 +03:00
Timofey Solomko
6b3af8c7a8
Upgrade xcode project compatibility project according to Swift 5.2 minimum
2022-09-24 13:48:23 +03:00
Timofey Solomko
03d7daee9f
Add names of dependecies packages to SPM manifest
...
This should ensure that SPM users won't have to download swcomp's dependencies.
2022-09-24 13:46:42 +03:00