May 19, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=2254



--- Comment #27 from Vladimir Panteleev <thecybershadow@gmail.com> 2011-05-19 14:46:57 PDT ---
(In reply to comment #26)
> I suggest to compile a hello world with 1.031 and 1.032 and then compare in some way their map files, and show the differences...

What do you hope to achieve by doing that? As I already said, this will not answer any questions. This is not a dependency bloat problem!

How would you do this, anyway? Those old DMD versions don't even have a -map switch - the map file generated by OPTLINK by default is useless, it only lists segments.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 19, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=2254



--- Comment #28 from Vladimir Panteleev <thecybershadow@gmail.com> 2011-05-19 15:00:45 PDT ---
Created an attachment (id=985)
Side-by-side comparison of cv2pdb+dumpbin-generated map files of DMD 1.031 and
1.032 "Hello, world"

This is interesting, but for unexpected reasons: the 5K blocks of fluff have no debugging names. Could be a cv2pdb issue, or something else.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 19, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=2254



--- Comment #29 from Vladimir Panteleev <thecybershadow@gmail.com> 2011-05-19 15:33:16 PDT ---
The problem is caused by DMD's -lib option, used since 1.032 to build Phobos. Previous versions used the Digital Mars librarian (lib.exe).

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 19, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=2254



--- Comment #30 from bearophile_hugs@eml.cc 2011-05-19 15:38:42 PDT ---
(In reply to comment #28)

> the 5K blocks of fluff have no
> debugging names. Could be a cv2pdb issue, or something else.

Thank you for your work. From the comparison it seems those 5K blocks of fluff are the main cause of binary size increase.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 19, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=2254



--- Comment #31 from Vladimir Panteleev <thecybershadow@gmail.com> 2011-05-19 15:39:29 PDT ---
Actually, I should add that the problem might not be with DMD's -lib option.
While it certainly is a completely different method of generating phobos.lib, I
should note that:
1) The 5K-ish blocks of zeroes are not present in phobos.lib (although we do
see a size increase in the chart I attached earlier)
2) UniLink will happily link D's .obj files + phobos.lib and create an
executable without these blocks of zeroes (and much smaller size).

Thus, the problem could very well be in OPTLINK.

So, here's your workaround for the time being: use UniLink.
Someone posted the config on the NG, I'll repost it here for convenience
(ulink.cfg):

-zsnn.lib
-LC:\dmd\windows\lib
-LC:\dm\lib
-Go

Adjust paths as necessary.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 20, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=2254



--- Comment #32 from Jacob Carlborg <doob@me.com> 2011-05-19 23:27:57 PDT ---
Is this only a problem on Windows?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 01, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=2254


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|                            |WORKSFORME


--- Comment #33 from Walter Bright <bugzilla@digitalmars.com> 2012-01-31 17:13:25 PST ---
For D1 1.073,

  import std.stdio; void main() { writefln("hello world"); }

generates an executable sized 117,276.

For D2 2.058,

  import std.stdio; void main() { writeln("hello world"); }

generates an executable sized 146,972.

All on Windows compiled with -O -release -inline.

I think these sizes are reasonable, especially considering all that the runtime library is expected to do (threads, gc, static construction, etc.).

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 01, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=2254


Vladimir Panteleev <thecybershadow@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|WORKSFORME                  |FIXED


--- Comment #34 from Vladimir Panteleev <thecybershadow@gmail.com> 2012-02-01 05:50:31 PST ---
There are several things at play here, such as Andrei's recent efforts at reducing cross-module dependencies in the case of "Hello, world" programs.

However, I'm not seeing the 5K-ish blocks of zero bytes that were present in 2.057. I assume that the underlying DMD -lib bug (or wherever it was) has been fixed.

(In reply to comment #33)
> For D2 2.058,
> 
>   import std.stdio; void main() { writeln("hello world"); }
> 
> generates an executable sized 146,972.

For the record, UniLink generates an executable sized 134,752.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
April 16, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=2254


Denis <verylonglogin.reg@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |verylonglogin.reg@gmail.com


--- Comment #35 from Denis <verylonglogin.reg@gmail.com> 2012-04-16 16:35:54 MSD ---
(In reply to comment #34)
> However, I'm not seeing the 5K-ish blocks of zero bytes that were present in 2.057. I assume that the underlying DMD -lib bug (or wherever it was) has been fixed.
> 

Looks like these blocks are related to Issue 7921.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
April 16, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=2254



--- Comment #36 from Walter Bright <bugzilla@digitalmars.com> 2012-04-16 14:25:20 PDT ---
If you're seeing large blocks of zero bytes, make sure first that it is not this issue:

http://dlang.org/faq.html#bss

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
1 2 3 4
Next ›   Last »