On Sun, Mar 29, 2009 at 9:11 AM, Marvin Humphrey <[email protected]> wrote:
> On Sun, Mar 29, 2009 at 06:01:16AM -0400, Michael McCandless wrote:
>
>> You might consider adding the hooks for a tracing collector, but not
>> creating such a collector now.  IE have each Lucy obj expose a method
>> to visit the other objs it refers to.
>
> We can probably have Boilerplater autogenerate that code.  That way we only
> have to only write one compiler module instead of manually maintaining methods
> for X hundred classes.

Excellent!  I guess Boilerplate knows enough about the members of an
object to determine which are objects vs which are atomic (and don't
need visiting by tracer).

>> I think you'd be surprised at how easily cycles are accidentally created.
>>
>> It's sort of like saying programmers are accustomed to writing high
>> performance code, but then an O(N^2) slips in somewhere and goes
>> undetected until N happens to get large deep in production.
>
> Heh.  Or a reference cycle leak slips in that happens to get large and causes
> a performance hit in production.  Been there done that.

Tell me about it.  We all have our battle scars ;)  I've had great
"fun" writing tools in Python to trace the sneaky cycles... once an
app gets big enough it's practically impossible to prevent accidental
cycles.

Mike

Reply via email to