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.

Reply via email to