Inherent code performance advantages of D over C?

John Colvin john.loughran.colvin at gmail.com
Sun Dec 8 02:24:17 PST 2013


On Sunday, 8 December 2013 at 10:11:20 UTC, Joseph Rushton 
Wakeling wrote:
> On 08/12/13 06:25, H. S. Teoh wrote:
>> Yeah, this part bothers me too. Once I hacked up a script 
>> (well, a
>> little D program :P) that disassembles D executables and 
>> builds a
>> reference graph of its symbols. I ran this on a few small test 
>> programs,
>> and was quite dismayed to discover that the mere act of 
>> importing
>> std.stdio (for calling writeln("Hello World");) will introduce 
>> symbols
>> from std.complex into your executable, even though the program 
>> has
>> nothing to do with complex numbers. These symbols are never 
>> referenced
>> from main() (i.e., the reference graph of the std.complex 
>> symbols are
>> disjoint from the subgraph that contains _Dmain), yet they are 
>> included
>> in the executable.
>
> Do you have any idea why the std.complex symbols were pulled 
> in, i.e. what dependencies were responsible?  The only module 
> that I'm aware of that imports std.complex is std.numeric, 
> which is itself only imported by std.parallelism and std.random.
>
> Are you sure it's not just the whole of Phobos being built in 
> statically because you don't strip the binary?


std.stdio -> std.algorithm -> std.random -> std.numeric -> 
std.complex.


More information about the Digitalmars-d mailing list