Hi,

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

> No, this is not cyclic. The problem is a situation where key A is 
> associated to key A, eg.
>
>   (define x (cons 1 2))
>   (set-cdr! x s)
>   (weak-key-hash-table-set! table s x)
>
> x points back to s, and s is a key in the table.

Ah, alright.  Well yes, the new patch does handle it, the previous one
didn't.  The issue at hand was similar to the one which showed up in my
"cascading weak keys" example.

  $ ../pre-inst-guile --no-debug
  guile> (use-modules (ice-9 weak-vector))
  guile> (define t (make-weak-key-alist-vector 12))
  guile> (define s (string-copy "chbouib"))
  guile> (hashq-set! t s (cons s 1))
  ("chbouib" . 1)
  guile> (set! s #f)
  guile> (gc)  
  guile> t
  #wh(() () () () () () () () () () () ())

Thanks,
Ludovic.


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

Reply via email to