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]

Flags

Manual Flags

NameDescriptionDefault
use-libcpp

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

Disabled

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

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 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 2018-05-09T04:19:41Z
Distributions NixOS:0.1.0.0
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 835 total (10 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-05-09 [all 1 reports]

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.