Skip to content

0.8.107

Latest

Choose a tag to compare

@github-actions github-actions released this 29 Sep 15:32

0.8.107

Keeps Mach-O file parsing fast without MachOKit's fork-only performance patches. Bind and rebase lookups in a MachOFile, and image lookups in the loaded dyld shared cache, now go through MachOKitExtensions' cached views instead of caches the fork used to patch into MachOKit itself.

Changes

  • The core MachOObjCSection target depends on MachOKitExtensions. It is imported internally, so clients do not see it through this module.
  • Chained-fixup binds and rebases of a MachOFile resolve through machO.cached, a fixup map built once per file. MachOKit's own resolveBind(at:) and resolveOptionalRebase(at:) walk the fixup chains on every call once the fork drops its cache.
  • Images in the loaded dyld shared cache are found through DyldCacheLoaded.cachedCurrent and cache.cached.headerInfo(at:in:), which replace DyldCacheLoaded.current and the fork-only ObjCHeaderOptimizationRO.headerInfo(at:in:).

Compatibility

  • Requires MachOKitExtensions 1.0.0 or later. A package that also depends on MachOKitExtensions directly with from: "0.1.x" must raise that requirement to 1.0.0.
  • Builds against MachOKit 0.52 and 0.53. MachOKit releases after 0.53.100 no longer have headerInfo(at:in:), which 0.8.106 and earlier call, so those need this release.
  • dump and interface output is unchanged.

Requirements

  • Swift 6.2+ and Xcode 26.0+ to build from source.