Skip to content

0.23.0

Latest

Choose a tag to compare

@github-actions github-actions released this 15 Oct 04:38
7a94358

0.23.0

Breaking

  • Local types are now named after the function or closure that declares them, such as Visitor #1 in Holder.countValues().
  • ABI snapshots now use format version 7; regenerate snapshots written by earlier versions.
  • Removed TypeDefinition.attributes.
  • SymbolicDemangler.isCacheEnabled can no longer be set.
  • Types conforming to OpaqueTypeResolving must implement opaqueType(forNode:index:usesModuleSelectors:).
  • Reading APIs that take a Mach-O or a raw pointer now stay deprecated until 0.24.0 instead of 0.23.0.
  • Requires swift-demangling 0.7.2, swift-semantic-string 0.5.0 and MachOObjCSection 0.8.200 or later.

New

  • GenericSpecializer and TypeDefinition.specialize(...) now work on a MachOFile, without loading the binary.
  • New interface --module-selectors and dump --enable-module-selectors options, and SwiftDeclarationPrintConfiguration.usesModuleSelectors, write qualified names as Swift::Int (SE-0491).
  • New Node.privateDeclarations lists the private declarations a name refers to, and the new SwiftPrivateDiscriminators product recovers their source file names.
  • New SwiftDeclarationPrintConfiguration.marksNestedDefinitions marks each nested definition in its parent's output, so a host can cut it out instead of printing it again.
  • Definitions read from a MachOImage can now be printed from several tasks at once.
  • New RuntimeFieldLayoutMemo.removeAll() forgets remembered in-process field layouts, for hosts that load more images.

Improved

  • Indexing and printing large images such as SwiftUI is much faster, especially when printing in parallel.
  • Printing expanded field offsets in process is faster.
  • GenericSpecializer now names each generic argument at its own level, such as Outer<Int>.Inner<String>.
  • Specialized generic enums now get an enum layout comment.
  • Expanded field offsets now resolve associated types of concrete types, such as Angle.AnimatableData.

Fixed

  • Fixed local types of the same name merging into one declaration and losing their members.
  • Fixed generic parameters of a type nested below a type without parameters printing as A2 instead of A1.
  • Fixed expanded field offsets naming the wrong generic argument for types declared in a constrained extension, such as Measurement<A> for Measurement<B>.
  • Fixed invalid Swift when a protocol declared in an extension of another module's type has default implementations.
  • Fixed swift-section objc losing the properties, protocols or methods of some classes in dyld shared caches.
  • Fixed slow GenericSpecializer.makeRequest and TypeDefinition.specialize(...) calls from an actor.
  • Fixed a possible crash when several inputs of diff or evolution first read the same dyld shared cache at once.