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