Requires capstone 6.0.101 and Swift 6.2; macOS 10.15, iOS 13, tvOS 13,
watchOS 6 or visionOS 1. Breaking against 6.x, with no deprecated aliases:
- Disassembler<AArch64> replaces the Capstone class. Its options -- mode,
syntax, detail form, unsigned immediates, skipdata, custom mnemonics -- are
fixed when it is created, and details are always on.
- forEachInstruction lends each instruction to a closure as an
InstructionView, which cannot be copied or kept; decode returns
AArch64.Instruction values, which are Sendable and outlive the engine.
Both take a RawSpan, Data or [UInt8].
- AArch64.Operand, AArch64.Mode and AArch64.Syntax replace
AArch64Instruction.Operand, the global Mode and Syntax. Skipped data comes
back as entries with isData set.
- Removed: Capstone, the Instruction class hierarchy, DisassemblyOption,
BuildMode, InstructionGroup and the v5-era wrappers of the other
architectures, whose generated enums remain. Architecture.isCompiledIn
and EngineVersion.current replace the static queries.
Measured over 100,000 instructions: streaming is about 1.7 times as fast as
6.x, and decoding into values holds 61 MiB where 6.x held 301 MiB.
Migrating from Version 6 in the DocC catalog maps the old names to the new.
6.x continues on the v6 branch. See
Documentations/Evolutions/0003-rewrite-with-modern-swift.md.