On 7/7/05, Marius Vollmer <address@hidden> wrote:
I've fixed this by introducing a new function (eval-closure-module)
which returns the module of a closure via the eval-closure smob.
I think the right fix is to change the weak hashtable marking
algorithm to properly cope with circular references like this. I will
try this and then come back to you. (I don't know how long this might
take since the required changes look to be slightly non-trivial (but
entirely possible).)
That would be good, because the current fix (which is already
committed to CVS HEAD, and which removes the setting of the
procedure-property) still leaves code in modules.c which expects the
procedure-property to be set. If Han-Wen's fix is to be kept, then
you should, at least, remove that code. The consequence is that it
will no longer be possible to lookup the module of the eval closure
for any kind of closures except the standard ones (which are
implemented as a smob).