cppfilt: Bindings for C++ demangling routines

[ bsd3, library, system ] [ Propose Tags ]

Please see the README on Github at https://github.com/0xd34df00d/cppfilt#readme


[Skip to Readme]
Versions [faq] 0.1.0.0
Change log ChangeLog.md
Dependencies base (>=4.7 && <5), bytestring [details]
License BSD-3-Clause
Copyright 2018 Georg Rudoy
Author Georg Rudoy
Maintainer 0xd34df00d@gmail.com
Category System
Home page https://github.com/0xd34df00d/cppfilt#readme
Bug tracker https://github.com/0xd34df00d/cppfilt/issues
Source repo head: git clone https://github.com/0xd34df00d/cppfilt
Uploaded by 0xd34df00d at Wed May 9 04:19:41 UTC 2018
Distributions NixOS:0.1.0.0
Downloads 240 total (10 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2018-05-09 [all 1 reports]

Modules

[Index]

Flags

NameDescriptionDefaultType
use-libcpp

Use libc++ for demangling (if you're building your C++ code with clang) instead of libstdc++

DisabledManual

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for cppfilt-0.1.0.0

[back to package description]

cppfilt

Build Status

This library provides bindings to the system ABI-exposed C++ name demangling routines. It provides both IO-based API in the System.Demangle module and the pure one in System.Demangle.Pure. The latter is deduced as unsafe due to unsafePerformIO (which should be fine, though, since demangling is hopefully referentially transparent).

Supported systems

For now demangling is done using either libstdc++ or libc++ (controlled via the use-libcpp build flag). Adding support for other ABIs in a similar fashion should be easy.

This approach is probably suboptimal, though, since one might want to try different ABIs that might be available simultaneously (since even clang and gcc mangle some names slightly differently), but it's not entirely obvious what the API should be like in this case.