The Revenge of Finalizers

Ross Paterson ross at
Thu Oct 17 09:51:38 EDT 2002

On Thu, Oct 17, 2002 at 01:42:47PM +0100, Alastair Reid wrote:
> Ross Paterson <ross at> writes:
> > there's an unsafe use in evalName(), 
> I think this is easily fixed by using malloc to allocate the buffer
> and then tracking down all uses and calling free.

OK -- there only 20 of those.

> > and I don't understand the mutual recursion between eval() and run().
> [...]
> Without studying the code in detail, I believe that this recursion is
> safe because run is a critical part of non-monadic evaluation - if
> there were problems here, we'd have found them a long time ago.  Of
> course, this naive belief might be shattered if I were to actually
> look at the code in detail.

It seems then that the invariant you proposed can be established without
too much trouble.  But Simon's bug is a whole other can of worms.

More information about the FFI mailing list