Releases: MxIris-Reverse-Engineering/MachOSwiftSection
0.8.0-beta.1
Release Notes
Major Features
In-Process Metadata Resolution
- Enable direct runtime metadata access for in-process binaries
- Add
MetadataReaderin-process support - All ABI structures now support
InProcessversion - Add metatype cast function for runtime type introspection
- Support metadata accessor resolution on arm64e
Multi-Payload Enum Layout Calculator
- Complete implementation for calculating multi-payload enum memory layouts
- Fix tagged multi-payload layout calculation
- Fix
multiPayloadEnumDescriptorspare bits reading - Add
printTypeLayoutandprintEnumLayoutoptions
SemanticString Performance Optimization
- Significant performance improvements for semantic string building
Improvements
- Add
preferredBinaryOrdersupport for SwiftDump - Add convenience properties for
EnumDescriptor - Increase underlying type unfolding for opaque types
- Unit testing now supports iOS/watchOS/tvOS platforms
- Better error handling in
SwiftInterfaceBuilder(non-throwing print methods) - Add
asyncSuspendResumePartialFunctionhandling in NodePrinters - Add precompiled swift-syntax for faster build times
Bug Fixes
- Fix
MetadataAccessorresolve on in-process - Fix
MetadataAccessorcrash on arm64e - Fix associated type demangle errors
- Fix
internalSymbolsnot being processed - Fix various testing errors
API Changes
- Rename
MachOReadableprotocol toReadable - Rename
SharedCache.EntrytoSharedCache.Storage
0.7.1
0.7.0
0.7.0-RC
0.6.0
What's Changed
-
Fixed the issue of symbol confusion with
ProtocolsandProtocol Conformances. The cause was that the Swift compiler optimizes by storing different symbols with the same implementation at the same offset/address, commonly seen in default implementations of some conformances. -
By traversing the symbol table, it is now possible to dump computed properties and static computed properties of types, as well as functions and static functions excluding the
classvirtual table. -
Fixed the issue of nominal type generic parameter errors. For nominal types with a
parenttype, the generic context's params and requirements carry all the parent's params and requirements. For example: Ancestor<A, B>.Parent<A1, B1>.Current. Previous versions would define Ancestor's A, B and Parent's A1, B1 together in Current. The new version corrects this issue and adds the correct generic parameter depth.
Full Changelog: 0.5.0...0.6.0
0.5.0
What's Changed
- Bump to MachOKit 0.35.0 by @Mx-Iris in #8
- Update Dependencies by @Mx-Iris in #9
- Bug fixes for MachOFile in iOS 26 by @Mx-Iris in #10
- Some optimizations by @Mx-Iris in #11
- Update README for swift-section by @Kyle-Ye in #12
- 0.5.0 by @Mx-Iris in #13
New Contributors
Full Changelog: 0.4.1...0.5.0