Han-Wen Nienhuys <[EMAIL PROTECTED]> writes:

> isn't it possible to store the 'module property in a doubly weak hash
> table?

That would work, but the 'module property would then be a special
case.  If we can, we should solve the general problem, I'd say.  

The general problem being that cycles of references where at least one
of the references is weak are not broken up.  For example:

    (define w (make-weak-key-alist-vector 1))
    (vector-set! w o (let ((k "foo"))
                       (acons k k '())))

will never remove the entry from w.

> What you propose sounds very costly,

I don't think so.  With my changes, we normally do three passes over a
weak alist vector, while now we make two.

And since it (hopefully) fixes the bug above, I think it is worth
this.

> and my gut instinct says that I can punch a hole in it as well.

Maybe, but hopefully we can stuff those holes.  I will commit the
change soonish; please try to break it then.

-- 
GPG: D5D4E405 - 2F9B BCCC 8527 692A 04E3  331E FAF8 226A D5D4 E405


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel

Reply via email to