bug-guile
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]