On 11/15/2012 07:59 PM, Diego Novillo wrote:
At this point, we are trying to reach consensus on the general
direction that we should take. Given how intertwined GC and PCH
are, the choices we make for one affect the other.
We don't have a strong preference at the moment, but we are
leaning in these directions:
Highlander:
Long term, I don't see much need for GC in the compiler. As we move
to better a better structured source base, we ought to be able to either
determine the proper lifetime, or have the object/component/whatever
figure it out if its longer living. This is particularly true if we
can get to the point where we don't have objects dangling from one
component into another, ie with a complete FE/ME/BE separation(or
whatever we eventually end up at), plus good pass to pass separation. I
also think we can have better facilities to detect out-of-lifetime usage
which was the real problem with obstacks back in the day.
So whatever direction ones heads, I'd kept eventual elimination in
mind as the long term goal. I *do* know I hate the current GC setup...
It often encourages us to be lazy which isn't usually a good thing.
Andrew
PS I'd also prefer the term 'memory pool' or something... the term
'obstack' still makes my skin crawl :-)