ts schrieb:
> 
>  closure + assignement
>  
> -a = scopeme
> +scopeme
> 
>  the GC is conservative.

Hi Guy,

thanks for the hint. I know you don't like to write in English, but 
could you please try to explain why the assignment makes a difference? 
The line

   scopeme

doesn't work as expected, but each of

   a = scopeme
   puts scopeme
   scopeme.id

has the desired effect. Why is it necessary to do something with the 
finalizer proc at the top level, even just sending it a message? Doing 
the same things inside the method "scopeme" doesn't work.

I read about the definition of a conservative GC, but couldn't find a 
relation to this behavior. I could somehow understand if the difference 
is whether the finalizer proc itself is reachable from the root objects 
or not. This would explain why an assignment works at the top level, but 
not inside the method.

What I don't understand though is why sending a message like "id" to the 
finalizer proc is making a difference. And even more puzzling to me is 
that this works only when doing it at the top level, but not inside the 
method.

Regards,
Pit