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
