www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 10441] New: Static libraries too big

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=10441

           Summary: Static libraries too big
           Product: D
           Version: D2
          Platform: All
        OS/Version: Linux
            Status: NEW
          Severity: regression
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: g.sayol yahoo.es



When compiling GtkD <https://github.com/gtkd-developers/GtkD> with dmd 2.063.2,
the resulting static libraries size increases a lot.

GtkD-2 (HEAD) built with dmd 2.062 (64-bit):
   libgstreamerd-2.a (3,3M)
   libgtkd-2.a       (35M)
   libgtkdgda-2.a    (1021K)
   libgtkdgl-2.a     (492K)
   libgtkdsv-2.a     (1,3M)

GtkD-2 (HEAD) built with dmd 2.063.2 (64-bit):
   libgstreamerd-2.a (14M)
   libgtkd-2.a       (138M)
   libgtkdgda-2.a    (4,9M)
   libgtkdgl-2.a     (3,0M)
   libgtkdsv-2.a     (5,8M)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 21 2013
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=10441




Same on dcollections <http://www.dsource.org/projects/dcollections>

dcollections r117 built with dmd 2.062 (64-bit):
   libdcollections.a (123K)

dcollections r117 built with dmd 2.063.2 (64-bit):
   libdcollections.a (2,0M)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 21 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=10441


Mike Wey <mike-wey planet.nl> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mike-wey planet.nl



It looks like this is being caused by a change/bug? in phobos/druntime.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 22 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=10441




It seems that the problem comes from the object file generation.

i.e. at GtkD project, the file "src/cairo/Types.d"
<https://github.com/gtkd-developers/GtkD/blob/master/src/cairo/Types.d>

$ dmd -c -O -m64 -Isrc src/cairo/Types.d

Built with dmd 2.062 (64-bit):
Types.o  (4.6K)

Built with dmd 2.063.2 (64-bit):
Types.o  (149K)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 23 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=10441




I was using git bisect with dmd, but couldn't find the commit that introduced
the bug. As it turns out i was running the tests with the phobos lib from
2.063.

And building gtkD with dmd 2.063 in combination with the phobos libs and
sources from 2.062 the size of the GtkD lib is back to ~35M.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 23 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=10441




The first Phobos commit that causes the huge library size is:

https://github.com/D-Programming-Language/phobos/commit/337f268cf1e24a25728eea417c4a76a907eec21e

Before that change the GtkD lib size is ~35M and after it's ~144M.

Only checking out the latest Phobos HEAD and reverting
337f268cf1e24a25728eea417c4a76a907eec21e the GtkD lib is still ~125M so there
are other commits that have an similar affect.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 23 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=10441


9999 <mailnew4ster gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mailnew4ster gmail.com



I believe the following suggestion should improve the situation:
http://forum.dlang.org/post/mailman.1357.1371876331.13711.digitalmars-d puremagic.com

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 23 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=10441




I found the other phobos commit that caused the large lib:

https://github.com/D-Programming-Language/phobos/commit/4f5079e4f8d38e1d469e4b28303553f36f49e33b

reverting both:
https://github.com/D-Programming-Language/phobos/commit/337f268cf1e24a25728eea417c4a76a907eec21e
and
https://github.com/D-Programming-Language/phobos/commit/4f5079e4f8d38e1d469e4b28303553f36f49e33b

leaves me with a Gtkd lib of ~36M, using dmd 2.063.2

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 24 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=10441


hsteoh quickfur.ath.cx changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hsteoh quickfur.ath.cx



This is just a wild guess, but could it be caused by the use of std.format in
the unittests? I know that std.format is quite template-heavy; even a single
use of it can trigger the instantiation of quite a large number of templates.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 28 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=10441


Walter Bright <bugzilla digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bugzilla digitalmars.com



16:45:29 PDT ---
https://github.com/D-Programming-Language/dmd/pull/2550

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 11 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=10441


Andrej Mitrovic <andrej.mitrovich gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |andrej.mitrovich gmail.com



17:27:11 PDT ---
It looks like these issues were all caused by my pull request. Well don't I
feel like a bastard now. :)

I do hope this is fixed in the compiler rather than to have to hack around it
in Phobos.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 11 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=10441




---

 I found the other phobos commit that caused the large lib:
 
 https://github.com/D-Programming-Language/phobos/commit/4f5079e4f8d38e1d469e4b28303553f36f49e33b
 
 reverting both:
 https://github.com/D-Programming-Language/phobos/commit/337f268cf1e24a25728eea417c4a76a907eec21e
 and
 https://github.com/D-Programming-Language/phobos/commit/4f5079e4f8d38e1d469e4b28303553f36f49e33b
 
 leaves me with a Gtkd lib of ~36M, using dmd 2.063.2
These changes have also caused bug 10631. I think these issues would have same root. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Sep 11 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=10441




Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/12bb9afb753ad2f2aef65550b960357c63854cbc
fix Issue 10441 - Static libraries too big

https://github.com/D-Programming-Language/dmd/commit/ba48d3e9e398967dc0b8d374868678613c8cb84a


fix Issue 10441 - Static libraries too big

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 12 2013
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=10441


Walter Bright <bugzilla digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 10 2013