[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#9900: local vars not cleaned
From: |
Andy Wingo |
Subject: |
bug#9900: local vars not cleaned |
Date: |
Tue, 01 Nov 2011 20:53:54 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux) |
Hi,
On Tue 01 Nov 2011 01:20, address@hidden (Ludovic Courtès) writes:
> Stefan Israelsson Tampe <address@hidden> 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/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#9900: local vars not cleaned,
Andy Wingo <=