Long symbol names (Was: demangle doesn't work with...)

Timothee Cour thelastmammoth at gmail.com
Tue May 28 01:55:56 PDT 2013


> The way template are mangled in super redundant.

Are you referring to the way that a template name is repeated twice in its
mangled representation ?
eg:
template ABC(T){struct ABC{}}
writeln(ABC!int.mangleof); // S5tests18main10__T3ABCTiZ3ABC =>
corresponding to ABC!(int).ABC
How would we distinguish such cases (eponymous templates) from
non-eponymous ones:
template ABC(T){struct a1{} struct a2}
here we need: ABC!(int).a1 and ABC!(int).a2.
Maybe these 2 cases should be distinguished.


On Mon, May 27, 2013 at 11:22 AM, deadalnix <deadalnix at gmail.com> wrote:

> On Monday, 27 May 2013 at 18:14:59 UTC, Peter Alexander wrote:
>
>> On Monday, 27 May 2013 at 16:18:34 UTC, David Nadlinger wrote:
>>
>>> On Monday, 27 May 2013 at 15:22:21 UTC, Peter Alexander wrote:
>>>
>>>> Am I the only person that worries greatly about the length of symbols
>>>> in D?
>>>>
>>> ———
>>> <snip>
>>> ———
>>>
>>> That's 13 kilobytes of data for a single symbol name!
>>>
>>
>> The symbols typically contain a lot of repeated sub strings. Perhaps
>> there is a better mangling scheme that encodes it with some kind of prefix
>> tree?
>>
>
> The way template are mangled in super redundant. This can probably be
> fixed easily, but this is a breakage.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20130528/d8e1da79/attachment-0001.html>


More information about the Digitalmars-d mailing list