On Thu, Oct 17, 2002 at 01:42:47PM +0100, Alastair Reid wrote:
Ross Paterson <ross@soi.city.ac.uk> 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.