On Sat, Nov 2, 2013 at 8:29 AM, Jonathan S. Shapiro <s...@eros-os.org>wrote:

[Anonymous wrote]

> Forward lined seem interesting but for nursery we would admit many dead
> objects.
>

On reflection, I don't think that we can forward lines. The question was
more a matter of me playing (mentally) with the possibilities of per-line
marker bits.


> In many cases a line will be 1 object especially large objects which are
> likely to hold many value types. For small objects you will have few int
> references so incur little cost , though im a little concerned about
> wrappers Which include interfaces.
>

If we are doing this right, very few lines will involve large objects, but
I think that isn't relevant, because the forward-by-line idea doesn't seem
workable.


> Re m bits I need to reread its use.
>

The 'M' bit says "this object has been logged; you can store references
into slots in this object without updating the target reference counts"


> Re internal references to c its not just c but packets,lgt,ldt skipping c
> even.
>

I'm well aware. But these aren't things you would describe using heap
objects.


> Im ok with no internal referenced to value types but value types nearly
> always exist in a  heap ref objects eg list which holds vectors.
>

That's often true. But I can't answer your question without being picky
about names. In CLR, it is not possible to construct an internal object
reference to a value type. It is only possible to construct a BY-REF
reference to a value type. So we know from static typing that this requires
a more complicated approach for marking and barriers, and we know that the
BY-REF itself cannot be stored in a heap object.


> And all internal references are references to non native value types.
>

Not necessarily. Could be references to native value types.


> What about value types in ref types in regions ?
>

I don't think this changes anything.


> Btw why must regions have int references ? Why would a c# approach  and
> fatpointer offset slices fail?
>

*Please* don't use abbreviations for the key terms in these conversations!
It makes them really hard to understand. It took me a while to realize that
you meant *internal* references here.

The short answer is that regions give us a form of liveness analysis that
we can exploit, and there are algorithms (notably string algorithms) where
regions encourage interior pointers. The fly in the ointment is object
relocation.


shap
_______________________________________________
bitc-dev mailing list
bitc-dev@coyotos.org
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to