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