On Monday, 28 November 2022 at 16:16:43 UTC, Witold Baryluk wrote:
On Monday, 28 November 2022 at 12:48:15 UTC, max haughton wrote:
Wouldn't some of those tools already have one via libiberty?
https://github.com/gcc-mirror/gcc/blob/master/libiberty/d-demangle.c
`libiberty` has way more things than just D demangler. And some
projects might not be comfortable with its licensing. And
libiberty uses autoconf / automake, which is just gross for
most people.
The idea is to have something simpler, portable (zero conf),
just for this task, so it is as easy as possible to integrate
and have flexible licensing.
Many of the tools do not use libiberty, but just call
`abi::__cxa_demangle` for example. Take a look for for a
heaptrack tool:
https://github.com/KDE/heaptrack/blob/master/src/interpret/heaptrack_interpret.cpp#L40-L56
You are free to use `libiberty` if you want.
My demangler is just another option.
As the author, you're free to re-license that file as whatever so
long as you email me for permission.
A clean-room implementation would likely be better though -
libibert/d-demangle.c comes with backwards compatibility baggage
that anyone implementing a tool/library today would not be
interested in.