At 09:08 PM 2/12/2001 +0000, Piers Cawley wrote:
>Dan Sugalski <[EMAIL PROTECTED]> writes:
>
> > At 10:38 AM 2/12/2001 -0500, Sam Tregar wrote:
> > >On Mon, 12 Feb 2001, Dan Sugalski wrote:
> > >
> > > > Perl needs some level of tracking for objects with finalization
> attached to
> > > > them. Full refcounting isn't required, however.
> > >
> > >I think I've heard you state that before. Can you be more specific? What
> > >alternate system do you have in mind? Is this just wishful thinking?
> >
> > This isn't just wishful thinking, no.
> >
> > > > Also, the vast majority of perl variables have no finalization
> > > > attached to them.
> > >
> > >That's true, but without static typing don't you have to treat them as if
> > >they did? At the very least you need to do a "is it an object with a
> > >DESTROY" check at block boundaries.
> >
> > Code flow analysis can get an awful lot. Some help from the runtime
> > will get the rest.
> >
> >
> > It's reasonably obvious (which is to say "cheap") which variables
> > aren't involved with anything finalizable.
>
>Remember too that right now we don't properly finalize everything as
>quickly as we should in the cases where stuff is caught up in circular
>references. We don't need to be perfect, but we do need to be
>predictable.
Yep, that's another issue, and one I keep forgetting about, though the fact
that we don't do predictable finalization on some objects isn't a good
reason to not do it for any of them. I really don't want to guarantee
predictable end-of-block cleanup, though, since that means a potentially
expensive GC run more often than we might otherwise do.
One more thing for the GC PDD, I think.
Dan
--------------------------------------"it's like this"-------------------
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk