Swiftpack.co - oozoofrog/SwiftDemangle as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by oozoofrog.
oozoofrog/SwiftDemangle swift5.5
SwiftDemangling for Swift, clone from apple/swift/lib/Demangling
⭐️ 37
🕓 2 years ago
iOS macOS
.package(url: "https://github.com/oozoofrog/SwiftDemangle.git", from: "swift5.5")

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.

GitHub

link
Stars: 37
Last commit: 11 weeks ago
Advertisement: IndiePitcher.com - Cold Email Software for Startups

Release Notes

5.9.1
17 weeks ago

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.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics