1462 Commits

Author SHA1 Message Date
Timofey Solomko cbb34a17ce Prepare for 4.8.4 release 2022-12-20 22:09:04 +03:00
Timofey Solomko c1ecadbcb7 Update some code comments 2022-12-17 19:02:19 +03:00
Timofey Solomko db48b07ec2 [TAR] TarReader now always returns nil after reaching EOF
Previosuly, repeated calls of read() or process() after reaching EOF would result in DataError.truncated being thrown. This behavior caused issues when there was no EOF marker in the TAR container.
2022-12-17 19:02:19 +03:00
Timofey Solomko b1fe47fdbb [BZip2] Fix incorrect BWT pointer in compression 2022-12-15 23:25:21 +03:00
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