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
MachOObjCSectiontarget depends on MachOKitExtensions. It is imported internally, so clients do not see it through this module. - Chained-fixup binds and rebases of a
MachOFileresolve throughmachO.cached, a fixup map built once per file. MachOKit's ownresolveBind(at:)andresolveOptionalRebase(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.cachedCurrentandcache.cached.headerInfo(at:in:), which replaceDyldCacheLoaded.currentand the fork-onlyObjCHeaderOptimizationRO.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 to1.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. dumpandinterfaceoutput is unchanged.
Requirements
- Swift 6.2+ and Xcode 26.0+ to build from source.