1458 Commits

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