On Tue, Jul 30, 2013 at 5:04 PM, David Jeske <[email protected]> wrote:

> On Tue, Jul 30, 2013 at 4:54 PM, Jonathan S. Shapiro <[email protected]>wrote:
>
>>
>>> I also don't like the last-in-first out discipline, since it seriously
>>> limits what regions can do (as I mentioned in my practical examples).
>>>
>>
>> Understood. But that's one of the *defining* characteristics of regions.
>> In order to type them sensibly, you need a region subtyping relation. LIFO
>> order ensures that.
>>
>
> I'm okay with strict subtyping. I just want several regions hanging off a
> common ancestor which can all reference the ancestor but not each other.
> For example, 200 regions, each one for an in-flight web-request.. They
> can't touch each other, and the ancestor can't touch them, but they can all
> touch the ancestor. It's necessary to break LIFO to be able to use regions
> for this use-case, otherwise you can't free a requestor region when that
> requrestor finishes, without freeing all requestors before it.
>
> ..or am I implying too much in LIFO? Is LIFO only describing a single
> branch of region subtyping, in which case I'm a-okay with it.
>

You're merely pointing out that my use of LIFO was incorrect. I'm perfectly
comfortable with that. :-)

The sense in which things *are* LIFO is that a given region is tied to the
stack frame in which it was instantiated, and the stack frames really *are*
 LIFO.


shap
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to