[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#24321: Guardian fails to protect procedure properties
From: |
Andy Wingo |
Subject: |
bug#24321: Guardian fails to protect procedure properties |
Date: |
Fri, 02 Sep 2016 10:10:53 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
On Sat 27 Aug 2016 21:32, Robin Templeton <address@hidden> writes:
> The following expression produces possibly erroneous results in Guile
> 2.1.3.104-8f2f8 (with Debian's libgc1c2 version 1:7.4.2-8):
>
> (let ((guardian (make-guardian))
> (foo (eval '(lambda () #f) (interaction-environment))))
> (set-procedure-property! foo 'wibbly 'wobbly)
> (guardian foo)
> (format #t "~S~%" (procedure-properties foo))
> (set! foo #f)
> (gc)
> (do ((foo (guardian) (guardian)))
> ((not foo))
> (format #t "~S~%" (procedure-properties foo))))
>
> First it prints "((wibbly . wobbly))" as expected, but after the
> procedure is retrieved from the guardian the list of properties is
> empty. The properties are stored in a weak hash table, but shouldn't
> they be protected from GC while the procedure is in the guardian?
Related to https://debbugs.gnu.org/cgi/bugreport.cgi?bug=10836.
Andy
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#24321: Guardian fails to protect procedure properties,
Andy Wingo <=