[bitc-dev] Removing INNER_REF
Jonathan S. Shapiro
shap at eros-os.com
Tue Mar 11 08:48:11 EDT 2008
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
> bitc-dev at coyotos.org
> http://www.coyotos.org/mailman/listinfo/bitc-dev
More information about the bitc-dev
mailing list