On Tue, 16 Aug 2005 20:14:43 +0300, Yuval Kogman <[EMAIL PROTECTED]> wrote:
[...] > Let's define some terms: These are all very good and I'm going to incorprate them in the API docs. > scope/origin - where objects are created I would refine this one. origin scope - The lexical scope where an object was created. current scope - The lexicial scope where this thread is currently executing. [...] > timelyness - the property of an object such that it's > finalization subroutine is called the moment it becomes > unreachable. This is important for objects using finalizers for > resource management, especially when an unreleased resource > could cause deadlock. This should be changed, timelyness will not prevent deadlock. However it will prevent resource starvation aka livelock. [...] > The aspects of control we need: > > scope - which objects get cleaned up > > priority - what performance tradeoffs we want to make > > delay - whether or not the normal program flow will ever be > paused when it is known that no timely objects need to be > destroyed. Also possibly the maximum amount of time (in > milliseconds?) that a GC iteration may take. > > timelyness - whether all objects, some objects (That are marked > using 'but' or by their class), or no objects should be checked > for timely destruction > > finalization - whether objects should be cleaned up at all Looks good, I would also add to this optimisation - giving infomation to the GC to allow it to work more effectivly. >> Actually, since to my naive eyes it looks like the GC is a first >> class object the problem can probably be solver better by adding >> your own. I'm not sure that replacing the GC is going to be easy, I expect thats going to involve heavy magic. -- Please excuse my spelling as I suffer from agraphia. See http://dformosa.zeta.org.au/~dformosa/Spelling.html to find out more. Free the Memes.