GNU bug report logs -
#9900
Using a guardian on a value in a weak hash
Previous Next
Full log
Message #23 received at 9900 <at> debbugs.gnu.org (full text, mbox):
Hi,
On Tue 01 Nov 2011 01:20, ludo <at> gnu.org (Ludovic Courtès) writes:
> Stefan Israelsson Tampe <stefan.itampe <at> gmail.com> skribis:
>
>> A program is executed and a set of locals is allocated on the stack for the
>> duration of the loading, this means that during the
>> whole execution of the loaded file the locals variables are below the stack
>> pointer and hence always contains a reference from the stack to the last
>> used objects in the local variables.
>
> Normally the GC will only scan the relevant part of the VM stack–see
> ‘VM_ENABLE_PRECISE_STACK_GC_SCAN’ in vm.c.
I think Stefan's analysis is right. VM marking is working as
advertised. The problem is that the slot corresponding to the lexical
`f' has not been nulled out. We can probably fix this by doing a
local-set of the slot to `undefined' after leaving a `let', `letrec', or
`fix' binding in non-tail context.
Andy
--
http://wingolog.org/
This bug report was last modified 13 years and 156 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.