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