Also foreach typicaly throws exceptions ( collection modified while being
enumerated is very useful)  , which are typically heap allocated ( they
possibly could be region but it gets messy fast )  .

Ben




On Sun, Jan 5, 2014 at 1:02 PM, Ben Kloosterman <[email protected]> wrote:

>
>
>
> On Sun, Jan 5, 2014 at 12:43 PM, Jonathan S. Shapiro <[email protected]>wrote:
>
>> On Sat, Jan 4, 2014 at 7:43 PM, Ben Kloosterman <[email protected]>wrote:
>>
>>> Taking a step back I dont see how life time is becomes an issue just by
>>> changing an interface from a reference type to a  value type .
>>>
>>
>> Simple. A reference type, ultimately, cannot be stack allocated. It is
>> always correct to simply migrate the reference type into the general GC
>> heap (i.e. the oldest region). Value types can be stack allocated. Along
>> with that comes hard region bounds.
>>
>
> I dont see an issue for the interface being value typed and on the stack
> its no diffirent to nay other value type holding a reference.
>
>
>>
>>> For interfaces to objects an interface cant outlive an object when the
>>> interface holds a "reference" to it .   They will always be collected (
>>> whether stack frame , region of GC) together or  interface then object.
>>>
>>
>> For an interface to a stack allocated value type, this is not correct.
>>
>
> Yep . I said that later but it doesnt answer the question whether
> interfaces should refer to stack allocated value types . What else does
> that introduce ?
>
> Ben
>
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to