I just want to follow up on this topic to give the current resolution.

First, we have removed INNER-REF from the language. We have retained
inner-ref as a reserved word, and it can be re-introduced later if we
find that the run-time overhead induced in the collector is tolerable.

For the moment, we retain BY-REF with the caveat that it is now
represented internally by a two-word representation.

However, I have just noticed a bad problem with BY-REF. Contrary to what
Swaroop thinks, it *can* escape if the procedure accepting a BY-REF
parameter escapes. This can have the very unfortunate consequence that
the temporal scope of a containing stack frame can be extended by an
escaping first-class procedure. This is clearly a bug, and we need to
address it.

On Fri, 2008-03-07 at 02:48 +0100, Pierre THIERRY wrote:
> Scribit Jonathan S. Shapiro dies 06/03/2008 hora 15:03:
> >   1. Introduce a new REF type FAT-REF. REF can be assigned to FAT-REF
> >      but FAT-REF cannot be assigned to REF.
> > 
> >      I do not like this. I mention it for completeness.
> 
> Is the fat reference an object that both contains the inner reference
> and the pointer to the containing object? This seems to be a fairly
> simple solution in every manner. It doesn't seem to cost much (IIUC, it
> would move inner references from one to two words...), and need
> modifications neither to the GC nor the allocator.
> 
> Curiously,
> Pierre
> _______________________________________________
> bitc-dev mailing list
> [email protected]
> http://www.coyotos.org/mailman/listinfo/bitc-dev

_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to