http://d.puremagic.com/issues/show_bug.cgi?id=11284
Dicebot <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #2 from Dicebot <[email protected]> 2013-10-18 05:52:29 PDT --- (In reply to comment #1) > It makes sense, but in this particular case: Why is foo!double put into a.obj > in the first place, when it is only used in CTFE? From reading the NG, it > seems > there are a lot of unnecessary templates instantiated, for things like > template > constraints. > > Best regards, > Robert There are 2 reasons for this. First, related part of DMD source code is damn complicated. I have wasted several months trying to figure this out and when Walter came out with his own partial solution I was hardly even able to understand reasoning behind those exact changes. But probably I am just stupid. Second issue is much more important though: Currently D spec does not allow any symbol visibility optimizations. The fact that symbol X is used only during CTFE during compilation of module A does not mean it won't be used in runtime from module B. Or even linked dynamically. Any really clever stuff can be done here only after specification is restricted. I have had a proposal for internal linkage attribute ages ago which is tightly related but I am not skilled enough to implement it right now. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
