Timofey Solomko
c7f4665394
Prepare for 4.8.3 release
2022-10-22 20:06:24 +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
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
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
32d6dc8ae6
[GZip] Improve truncation detection in the footer and optional parts of the header
2022-10-21 19:27:25 +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
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
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
bba5eb7b61
Prepare for 4.8.2 release
2022-09-24 14:34:02 +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
52886a0bbf
[TAR] Remove compatibility with pre-Swift 5.2 compilers
2022-09-24 13:25:46 +03:00
Timofey Solomko
78459b710a
[Deflate] Fix incorrect truncation check when processing uncompressed blocks
2022-09-23 19:45:45 +03:00
Timofey Solomko
2b47fb7f49
[Deflate] Replace computation of static tree codes from lenghts with precomputed codes
2022-05-21 23:00:36 +03:00
Timofey Solomko
e500dfc5d9
[Deflate] Add guards against truncated inputs
2022-05-20 21:46:57 +03:00
Timofey Solomko
41a1474b8c
[swcomp] Implement --list option for container commands
...
In addition, slightly adjusted the help message for the --info option to make them more distinguishable.
2022-05-20 17:11:19 +03:00
Timofey Solomko
c9e10ebc35
[swcomp] Rework exiting with error codes
...
Different errors now have different error codes, the code for exiting is now standardized.
2022-05-20 17:00:22 +03:00
Timofey Solomko
74ae7c2edc
[GZip] Adjust detection of truncated inputs
2022-05-17 13:33:04 +03:00
Timofey Solomko
c407bcfb9c
[swcomp] Add comparison with saved results via --compare option
2022-05-15 19:52:17 +03:00
Timofey Solomko
5db42cfb1c
[swcomp] Add --save option which allows to save benchmarking results in json format
2022-05-15 15:27:33 +03:00
Timofey Solomko
5daac3cd0a
[swcomp] Add -W shorthand for the --no-warmup option
2022-05-15 15:27:00 +03:00
Timofey Solomko
4e0dea7d86
Merge branch 'hotfix-4.8.1' into develop
2022-05-13 21:16:19 +03:00
Timofey Solomko
f72ed96e48
Prepare for 4.8.1 release
2022-05-13 21:15:21 +03:00
Timofey Solomko
0f2b393c5c
[GZip] Fix incorrect detection of truncated archives
2022-05-13 21:10:47 +03:00
Timofey Solomko
985ceb6cf8
[swcomp] Replace useSpeedFormatter with format function
2022-02-20 21:57:15 +03:00
Timofey Solomko
140c197c2e
[swcomp] Change defaultIterationCount to instance variable
2022-02-20 21:49:07 +03:00
Timofey Solomko
ee90c99ec6
[swcomp] Add benchmarks for compression ratio
2022-02-20 19:05:46 +03:00
Timofey Solomko
ebfcdfa9d2
[swcomp] Benchmarks can now disable speed formatter
2022-02-20 18:52:07 +03:00
Timofey Solomko
5423fd9fb5
[swcomp] Replace speed uncertainty with standard deviation
2022-02-20 18:44:26 +03:00