Bounty for -minimal compiler flag

Daniel Murphy yebbliesnospam at gmail.com
Fri Feb 14 08:35:25 PST 2014


"Steven Schveighoffer"  wrote in message 
news:op.xa929juueav7ka at stevens-macbook-pro.local...

> >> static this/~this is tougher.  If it is possible for it to work, then 
> >> it should.  I feel that this is more of a language feature.
> >
> > These might work with init sections, but maybe not.
>
> No, static ctor/dtor is not a trivial mechanism. There is a runtime graph 
> analysis to make sure there are no cycles, and then run them in the proper 
> order.
>
> I think this feature has to be disabled.

I meant that we could get something mostly working using init sections, but 
it's probably not a good idea.

> >> unittests are out as well.
> >
> > Most likely.
>
> Yes, this also depends on moduleinfo, like static ctor/dtor.

Same with this, not worth the hack.

> >
> > I'll take it you've never seen how virtual functions are implemented in 
> > C? Classes are awesome.
>
> This requires vtables and typeinfo. I've seen virtual functions 
> implemented in C (back when I wrote Xt widgets). I also think that with 
> D's compile-time power, one could probably recreate it using templates.

I don't want to recreate it, I want to avoid it.

> The issue I have with allowing classes is the implications of classes. D 
> classes are infinite-lifetime, meaning requiring GC. What we would end up 
> with is classes written for the minimal no-gc version of D, and classes 
> that were written to be allocated on the GC heap in full-D. And both would 
> be named 'class'

This is a very good point.  extern(C++) classes do not depend on druntime, 
and currently do not have their destructors run by the GC! 



More information about the Digitalmars-d-announce mailing list