Skip to content

6.0.1

Latest

Choose a tag to compare

@ArtSabintsev ArtSabintsev released this 08 Jul 00:05

What's Changed

Refinements from a peer code review of 6.0.0 (review by Codex, fixes by Claude).

  • Reverted the @MainActor isolation introduced in 6.0.0. It broke consumers calling blast() from background threads or nonisolated synchronous code. Shared state is now protected by an internal lock instead, restoring the pre-6.0 call-from-anywhere contract while remaining safe under Swift 6 strict concurrency (verified with a strict-concurrency client on a background queue).
  • Already-registered fonts are now reported as loaded. Re-blasting a bundle (or blasting a font registered earlier in the process) previously treated CoreText's already-registered error as a failure and reported nothing; those fonts' PostScript names are now still returned, and loadedFonts is explicitly de-duplicated.
  • Hidden files are skipped during scanning, so AppleDouble ._* sidecar files no longer produce noisy registration failures.
  • Documented that registered fonts are file-backed: don't move or delete a font file while it's registered.
  • Expanded the test suite: out-of-bundle directories (verifying .process-scope registration works outside the app bundle on iOS), uppercase extensions, paths with spaces, invalid font files, and already-registered reporting. CI now runs the tests on an iOS Simulator in addition to macOS.
  • Fixed invalid FontBlaster.blast(bundle:) placeholder calls in the README examples.

Full Changelog: 6.0.0...6.0.1