SwiftDemangle

5.9.1

SwiftDemangling for Swift, clone from apple/swift/lib/Demangling
oozoofrog/SwiftDemangle

What's New

5.9.1

2023-12-22T00:49:11Z

What's New:

Enhanced Demangling: Extends support to Swift 5.9 demangling syntax, covering new patterns and structures.
Improved Parsing Capabilities: Enhanced parsing for various Swift symbols including Builtin types, protocol descriptors, nominal and opaque type descriptors, and more.
Support for Advanced Generic Specializations: Improved parsing capabilities for complex generic specializations in Swift.
Distributed Thunk and Macro Expansion: Enhanced parsing for distributed thunk and macro expansions, providing more detailed insights.

Fixes and Improvements:

  • Various bug fixes and performance improvements.

This release brings our demangling capabilities up to date with the latest advancements in Swift, ensuring broader compatibility and efficiency.

SwiftDemangle

SwiftDemangle

Overview

SwiftDemangle is a library designed for demangling Swift symbols, inspired by Swift's own swift-demangle tool. This library offers compatibility up to Swift version 5.9, providing an easy-to-use interface for converting mangled Swift symbols into a human-readable format.

What's New in 5.9.1

Version 5.9.1 of SwiftDemangle brings several exciting enhancements, extending support for Swift's latest 5.9 demangle grammar. Key updates include:

  • Builtin Vector and Floating-Point Types: Demangle builtin types like vectors and floating-point types.
  • Outlined Read-Only Object Parsing: Improved parsing for outlined read-only objects.
  • Protocol and Conformance Descriptor Parsing: Enhanced parsing for protocol and conformance descriptor runtime records.
  • Nominal Type Descriptor and Opaque Type Descriptor: Support for nominal and opaque type descriptor runtime records.
  • Advanced Generic Specialization Parsing: Improved parsing for generic specializations in Swift.
  • Distributed Thunk and Accessible Function Records: Enhanced parsing for distributed thunk and accessible function runtime records.
  • Macro Expansion Parsing: Improved parsing for macro expansions in various contexts.

These additions enhance SwiftDemangle's capabilities, making it an indispensable tool for Swift developers.

Installation

# If using Swift Package Manager
dependencies: [
    .package(url: "https://github.com/oozoofrog/SwiftDemangle", .upToNextMajor(from: "5.9.1"))
]

Usage

import SwiftDemangle

// Example 1: Demangling a Builtin Vector Type
let mangledVector = "_TtBv4Bf16_"
let demangledVector = SwiftDemangle.demangle(mangledVector)
print(demangledVector)  // Output: Builtin.Vec4xFPIEEE16

// Example 2: Demangling a Protocol Descriptor
let mangledProtocol = "$ss6SimpleHr"
let demangledProtocol = SwiftDemangle.demangle(mangledProtocol)
print(demangledProtocol)  // Output: protocol descriptor runtime record for Swift.Simple

Contributing

Contributions are welcome! If you have ideas for improvements or have found a bug, please feel free to fork the repository, make changes, and submit a pull request.

License

SwiftDemangle is released under the Apache 2.0 License, ensuring compatibility with the original Swift swift-demangle source code's license terms. For more details, see the LICENSE file in the repository.

Description

  • Swift Tools 5.4.0
View More Packages from this Author

Dependencies

  • None
Last updated: Wed Apr 24 2024 18:53:55 GMT-0900 (Hawaii-Aleutian Daylight Time)