What can be done to reduce executable size?

Jonathan M Davis jmdavisProg at gmx.com
Fri Dec 16 11:09:10 PST 2011


On Friday, December 16, 2011 11:07:14 Sean Kelly wrote:
> On Dec 16, 2011, at 11:04 AM, Andrei Alexandrescu wrote:
> > On 12/16/11 12:40 PM, Jonathan M Davis wrote:
> >> On Friday, December 16, 2011 11:45:42 Andrei Alexandrescu wrote:
> >>> I am pretty sure they don't need static this(). Only last night I
> >>> removed static this() from core.time.
> >> 
> >> I don't know how you could do that in core.time, since ticksPerSec and
> >> appOrigin are immutable and have to be set at runtime. How on earth
> >> can you do that without a static constructor?
> >> 
> >> std.datetime has the same problem with the added fun of having to
> >> avoid
> >> breaking purity, because the functions for getting the singletons are
> >> pure.> 
> > This goes back to the issue of lazy initialization. Today you need a cast 
to do that. Here's my code:
> > static @trusted @property long ticksPerSec() pure nothrow
> > {
> > 
> > return (cast(immutable(long) function() pure nothrow)
> > &ticksPerSecImpl)();> 
> > }
> 
> This is fine, but the whole point of static ctors in D is to eliminate all
> the stupid workarounds required to use statics in C++. I'd much rather we
> find a way to make the use of static ctors more efficient than give up on
> the feature.

Agreed.

- Jonathan M Davis


More information about the Digitalmars-d mailing list