Why C++ compiles slowly

Steven Schveighoffer schveiguy at yahoo.com
Tue Aug 24 14:20:32 PDT 2010


On Tue, 24 Aug 2010 17:05:30 -0400, Mafi <mafi at example.org> wrote:

> Am 24.08.2010 22:56, schrieb Steven Schveighoffer:
>
>> I am not sure how to fix it, but that's the gist of it.  I think the
>> symbol table is so large because of the template proliferation of
>> dcollections, and the verbosity of D symbol names.
>
> Why are D's symbols verbose?  if I understood you corectly, dmd makes a  
> linear search no matter if i used foo or ArrayOutOfBoundsException  
> (that's a real Java exception).

A symbol includes the module name, and the mangled version of the function  
argument types, which could be class/struct names, plus any template info  
associated with it.

For example, foo(HashSet!int hs) inside the module testme becomes:

_D6testme3fooFC12dcollections7HashSet14__T7HashSetTiZ7HashSetZv

-Steve


More information about the Digitalmars-d mailing list