Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
Re: finalisation
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: skaller <skaller@m...>
Subject: Re: finalisation
Damien Doligez wrote:
> >From: skaller <>

> If python specifies reference counting, I guess the only solution is
> to implement reference counting.  

	Python specifically _doesn't_ specify reference counting,
it specifies garbage collection. But the current implementation
is deficient in that it uses reference counting. So I need to
be compatible with existing programs at least as far as preserving
their correctness provided only that doesn't depend on synchronous
finalisation (a delay is OK, a change of order may not be).

>You can use O'Caml's finalisers to
> help you in the following way:
> Add a reference count field to each finalisable object.  Initialise it
> to 1 upon allocation and register a finalisation function for this
> object.  Increment the reference count when you create a new reference
> from another finalised object, and decrement it when you remove a
> reference (you can do it by simply calling its finalisation function).

	I'm not sure how this works .. a reference from a finalised
object to another can be indirect (via another object). I'd like to
the cost of maintaining reference counts for non-finalisable objects.

John (Max) Skaller,
10/1 Toxteth Rd Glebe NSW 2037 Australia voice: 61-2-9660-0850