Commit Graph

61 Commits

Author SHA1 Message Date
Adam Hathcock
deaabb5504 Merge pull request #1469 from adamhathcock/dependabot/nuget/build/all-dependencies-232486072c
Bump the all-dependencies group with 5 updates
2026-10-26 16:35:15 +00:00
Adam Hathcock
dd6d09c6d2 Reduce allocations in 7z encryption and codec lookup 2026-10-26 13:45:21 +00:00
Adam Hathcock
f7451966ec Document XZ BCJ pooling evaluation and add benchmarks 2026-10-24 12:42:57 +01:00
dependabot[bot]
3a964e3816 Bump the all-dependencies group with 5 updates
Bumps JetBrains.Profiler.SelfApi from 2.5.18 to 2.5.19
Bumps Microsoft.NET.Test.Sdk from 18.10.1 to 18.11.0
Bumps Microsoft.SourceLink.GitHub from 10.0.401 to 10.0.402
Bumps Pure.DI from 2.5.4 to 2.5.5
Bumps System.Text.Encoding.CodePages from 10.0.12 to 10.0.13

---
updated-dependencies:
- dependency-name: JetBrains.Profiler.SelfApi
  dependency-version: 2.5.19
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-version: 18.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: Microsoft.SourceLink.GitHub
  dependency-version: 10.0.402
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Pure.DI
  dependency-version: 2.5.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: System.Text.Encoding.CodePages
  dependency-version: 10.0.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-10-22 09:40:12 +00:00
Adam Hathcock
2d9508755e Merge remote-tracking branch 'origin/master' into adam/release-to-master 2026-10-20 11:21:00 +01:00
Adam Hathcock
f63cd81a65 Reduce allocations in encrypted RAR reading
Reuse bounded buffers and transform AES blocks in place. Remove per-block arrays and plaintext queues, avoid per-byte header allocations, and dispose owned crypto transforms.

Add encrypted RAR benchmarks, regression tests, and before/after profiling results. Full .NET 10 suite passes (2,446 tests); all library targets build and net48 tests compile.
2026-10-20 10:43:28 +01:00
Adam Hathcock
1ad052edcc Merge remote-tracking branch 'origin/master' into perf/7zip-profile-pooling
# Conflicts:
#	src/SharpCompress/Compressors/LZMA/Lzma2EncoderStream.cs
#	src/SharpCompress/Compressors/LZMA/LzmaStream.Async.cs
#	src/SharpCompress/IO/ReadOnlyMemoryStream.cs
2026-10-20 08:31:32 +01:00
Adam Hathcock
14d77b671c Release pooled 7z decoder buffers across async and partial reads
Dispose cached folder decoders during async archive cleanup and scope temporary encoded-header decoders in both read paths. Release LZMA range-decoder input buffers on partial reads and failures while preserving borrowed source ownership.

Correct the synchronous extraction-reader benchmark and expand lifetime and checksum coverage. Document profiling showing async Archive allocations falling from 8.95 MiB to 0.70 MiB per extraction, with metadata-only allocations reduced by 70%.

Validation: 2,989 .NET 10 Release tests passed; all library targets, the performance project, and net48 test compilation succeeded. Formatting and whitespace checks passed.
2026-10-19 14:43:51 +01:00
Adam Hathcock
78006f94f7 More pooled or readonly memory stream usage 2026-10-19 12:07:29 +01:00
Adam Hathcock
9ed27b9a7b Update dependencies and address threading analyzer findings 2026-10-13 11:18:34 +01:00
Adam Hathcock
545dfb61be Update .NET SDK and SourceLink to fix NuGet auditing 2026-10-02 13:40:23 +01:00
dependabot[bot]
0d38d18c58 Bump AwesomeAssertions and 5 others
Bumps AwesomeAssertions from 9.5.0 to 9.6.0
Bumps Bullseye from 6.1.0 to 6.2.0
Bumps Microsoft.NET.Test.Sdk from 18.6.0 to 18.10.1
Bumps Microsoft.SourceLink.GitHub from 10.0.300 to 10.0.401
Bumps SimpleExec from 13.0.0 to 13.1.0
Bumps Zomp.SyncMethodGenerator from 2.0.42 to 2.0.56

---
updated-dependencies:
- dependency-name: AwesomeAssertions
  dependency-version: 9.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: Bullseye
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-version: 18.10.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: Microsoft.SourceLink.GitHub
  dependency-version: 10.0.401
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: SimpleExec
  dependency-version: 13.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: Zomp.SyncMethodGenerator
  dependency-version: 2.0.56
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-24 09:39:49 +00:00
Victor Irzak
9f74d58eae Update Zomp.SyncMethodGenerator to 2.0.42
Two releases since the generator was adopted here, both fixing things this
repository ran into.

2.0.41 emits the using directives of the source file into the generated one.
Documentation is copied across verbatim and a cref in it resolves against the
file it lands in, so crefs which relied on a using went unresolved and the
compiler reported CS1574 for each.

2.0.42 spaces a rewritten argument list the way it was written. The generated
extension calls here were coming out as

  IArchiveEntryExtensions.WriteTo(archiveEntry,                     streamToWriteTo,
          Constants.BufferSize,
          progress: progress)                ;

and now come out as

  IArchiveEntryExtensions.WriteTo(archiveEntry, streamToWriteTo,
          Constants.BufferSize,
          progress: progress);

No change to what is generated, only to how it is spaced and what its
documentation can refer to. Full test suite passes unchanged.
2026-07-28 07:20:06 -04:00
Adam Hathcock
cf2dfa0c30 redid the restore 2026-07-28 10:08:16 +01:00
Adam Hathcock
4c6f773d2b more allocation reductions 2026-06-02 13:15:16 +01:00
Adam Hathcock
5bfb67e177 Update deps 2026-06-02 09:13:00 +01:00
Adam Hathcock
3ddfaaa899 Reduce some allocations by pooling or better disposal 2026-05-28 05:53:01 +01:00
Adam Hathcock
aa34c22f39 update profiler 2026-05-28 05:39:07 +01:00
Adam Hathcock
55df0d30d9 add AOT smoke and missing tests 2026-05-26 15:47:44 +01:00
Adam Hathcock
35c9cdd232 add zip skill and upgrade packages 2026-05-26 15:23:29 +01:00
Adam Hathcock
576d431378 Add PolySharp. Odd frameworks aren't supported 2026-05-20 08:55:41 +01:00
Adam Hathcock
1f699f3552 manual clean up 2026-04-21 10:59:01 +01:00
Adam Hathcock
f766213d06 Merge branch 'master' into adam/writers-should-async
# Conflicts:
#	src/SharpCompress/Writers/WriterOptionsExtensions.cs
#	tests/SharpCompress.Test/GZip/GZipWriterAsyncTests.cs
#	tests/SharpCompress.Test/WriterTests.cs
2026-02-22 10:45:17 +00:00
Adam Hathcock
eca7bcb515 more clean up 2026-02-16 10:58:01 +00:00
Adam Hathcock
26d49198f0 Merge remote-tracking branch 'origin/master' into adam/fix-editorconfig-errors
# Conflicts:
#	src/SharpCompress/Common/Zip/ZipFilePart.cs
#	src/SharpCompress/Compressors/BZip2/BZip2Stream.cs
2026-02-13 14:23:42 +00:00
Adam Hathcock
a92f82ef28 complete the usage of providers for detection and async 2026-02-12 15:09:21 +00:00
Adam Hathcock
ae0b4f5c4c forgot some files 2026-02-12 14:31:13 +00:00
Adam Hathcock
f2a9171dd8 merge fix 2026-02-12 14:21:31 +00:00
Adam Hathcock
0e2c33dd78 Merge branch 'master' into adam/add-alternate-compressions
# Conflicts:
#	tests/SharpCompress.Performance/Benchmarks/TarBenchmarks.cs
#	tests/SharpCompress.Performance/Benchmarks/ZipBenchmarks.cs
#	tests/SharpCompress.Performance/baseline-results.md
2026-02-12 14:20:01 +00:00
Adam Hathcock
158460bc77 fix benchmarks 2026-02-12 13:22:13 +00:00
Adam Hathcock
c81e78b5bb fix async benchmarks 2026-02-12 11:07:11 +00:00
Adam Hathcock
98d0f1913e make sure things compile adam 2026-02-11 14:19:21 +00:00
Adam Hathcock
8aa93f4e34 fix fmt 2026-02-11 14:02:27 +00:00
Adam Hathcock
3689b893db Update tests/SharpCompress.Performance/Benchmarks/SevenZipBenchmarks.cs
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
2026-02-11 14:00:37 +00:00
Adam Hathcock
fbec7dc083 generate github actions baseline 2026-02-11 13:57:06 +00:00
Adam Hathcock
7cf7623438 update benchmarks to include async paths 2026-02-11 13:36:26 +00:00
Adam Hathcock
99d8eb9265 some build fixes 2026-02-11 11:04:25 +00:00
Adam Hathcock
c4fb32a56d baseline 2026-02-10 16:29:50 +00:00
Adam Hathcock
54a00e2614 some renamespacing 2026-02-10 16:25:21 +00:00
Adam Hathcock
19ed4d16db add fixes and benchmarks for system providers 2026-02-10 16:15:31 +00:00
Adam Hathcock
87cab8e16a updating baseline to be what github actions do 2026-02-06 12:28:02 +00:00
Adam Hathcock
e85752ca1d reget results and change threshold to 25 % 2026-02-06 11:58:43 +00:00
Adam Hathcock
c96acf18dc updated results? 2026-02-05 15:21:19 +00:00
Adam Hathcock
6eec6faff2 simplify the results to compare 2026-02-05 15:08:00 +00:00
copilot-swe-agent[bot]
bbc664ddcc Add generate-baseline build target and JetBrains profiler support
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
2026-02-05 14:14:54 +00:00
Adam Hathcock
f2483be1da update benchmarkdotnet 2026-02-05 13:43:44 +00:00
copilot-swe-agent[bot]
ca262920c8 Add GitHub Actions workflow, baseline results, and documentation for performance benchmarks
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
2026-02-05 13:32:23 +00:00
copilot-swe-agent[bot]
2541c09973 Add BenchmarkDotNet performance benchmarks for all major formats
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
2026-02-05 13:30:57 +00:00
Adam Hathcock
642b8bddb8 fixed merge 2026-02-04 14:41:55 +00:00
Adam Hathcock
27f7221902 Merge remote-tracking branch 'origin/release' into adam/release-merge
# Conflicts:
#	Directory.Packages.props
#	build/packages.lock.json
#	src/SharpCompress/Common/Zip/WinzipAesEncryptionData.cs
#	src/SharpCompress/SharpCompress.csproj
#	src/SharpCompress/packages.lock.json
#	tests/SharpCompress.Performance/packages.lock.json
#	tests/SharpCompress.Test/SharpCompress.Test.csproj
#	tests/SharpCompress.Test/packages.lock.json
2026-02-04 14:35:40 +00:00