on the length of symbols

Walter Bright via Digitalmars-d digitalmars-d at puremagic.com
Mon May 11 14:18:58 PDT 2015


On 5/11/2015 7:04 AM, Martin Nowak wrote:
> On Monday, 11 May 2015 at 09:33:42 UTC, weaselcat wrote:
>> here's a single symbol from my project
>
> The underlying problem is that symbols names grow quadratically when combining
> templated ranges, because each range's name is a template argument to the next
> range. Sometimes name occur twice, as template argument and return type.
> An obvious solution to the problem is to adopt a compression scheme similar to
> C++ mangling on Windows.
> https://github.com/D-Programming-Language/dmd/blob/c392c80c2f04a56701fed3a61a5c4df4571a3573/src/cppmangle.c#L1712
>
>
> This is a well known and important problem but has a lower priority than many
> other issues. You can help to solve it by opening a bugzilla issue (might
> already exist) and finding out how to integrate such a backreference compression
> with D's current mangling.
>
> http://dlang.org/abi.html#MangledName

D already does (for Win32) a generic compression on names. It works a lot better 
than poorly reinventing compression - it's far less complex, less buggy, easier 
to implement, etc.

I'd support adding a Win32-like compressor. The change I'd make is having it 
only use identifier characters for the compressed result.


More information about the Digitalmars-d mailing list