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
