D demangler for C++

Iain Buclaw ibuclaw at gdcproject.org
Wed Nov 30 13:29:28 UTC 2022


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.


More information about the Digitalmars-d-announce mailing list