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
