On Friday, 31 May 2013 at 14:33:48 UTC, khurshid wrote:
And size of result output file  'hello'  equal to 1004.1 Kbyte

Whoa, that's up like several times from the last dmd release.... you can get down to 600 kb or so by not using the flags. Strange, combining all those flags increases the size by 50%. This is probably some kind of bug in the new release.

But even without bugs, writeln actually pulls in a lot of code. If you use printf instead of std.stdio, you'll save about 150 KB in the executable

import core.stdc.stdio;

void main() {
        printf("hello\n");
}

$ dmd test2.d
$ ls -lh test2
-rwxr-xr-x 1 me users 287K 2013-05-31 10:40 test2
$ strip test2
$ ls -lh test2
-rwxr-xr-x 1 me users 195K 2013-05-31 10:41 test2



D programs don't have any dependencies outside the operating system by default, so they carry the parts of the standard library they use with them.

That 195K test2 program is mostly druntime's code. If you pull in std.stdio it also grabs much of the phobos standard library to support printing, conversion of numbers to strings, and much more.


A 1 MB hello world is just strange though, I'm sure that's some kind of bug, but the relatively harmless kind, you can still use it.

Reply via email to