github MobileNativeFoundation/XCLogParser v0.2.50

5 hours ago

Changes

  • Fix quadratic diagnostic accumulation when parsing large activity logs (#263). Join diagnostic continuation lines once, accumulate locations without repeatedly copying dictionaries, flatten notices without rebuilding growing arrays, and use a set for Clang-warning title lookup.
  • Preserve diagnostic contents, notice ordering, and duplicate-location behavior without truncating output or introducing input limits. Public APIs and serialization formats are unchanged.

Performance

Synthetic release-build benchmarks on an Apple M3 Pro, macOS 26.3, Apple Swift 6.4; median parser-only elapsed time across three runs per revision:

Workload Before After
One diagnostic with 40,000 × 1 KiB continuation lines 30.508 s 2.522 s
40,000 distinct diagnostic locations 53.349 s 0.154 s
60,000 notices 18.464 s 0.068 s
40,000 Clang warnings, a duplicate title, and an unmatched note 11.142 s 0.156 s

See #263 for raw samples, reproduction steps, and compatibility tests. These measure the affected parser paths rather than end-to-end activity-log processing.

The parser change passed macOS, Linux, and SwiftLint CI.

Full changelog: v0.2.49...v0.2.50

Don't miss a new XCLogParser release

NewReleases is sending notifications on new releases.