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.

Reply via email to