meaning of "current bound set" in 18.5.2

Dan Smith daniel.smith at oracle.com
Thu Nov 21 16:35:30 PST 2013


On Nov 19, 2013, at 2:21 PM, Stephan Herrmann <stephan.herrmann at berlin.de> wrote:

> Here's another one regarding 18.5.2:
> 
> For most of this section the spec is careful in defining
> which bounds are incorporated into which bound set,
> building up a sequence of B1, B2 and B3.
> (Note, that B2 is constructed only conditionally).
> 
> Then at the end of the 5th bullet, more bounds are said
> to be incorporated with "the current bound set".

Yes, I should introduce this in the sentence "While C is not empty..." (it's essentially a loop variable that holds immutable sets).  Its initial value is B2 (or B1, if we've skipped the 3rd bullet).

> The use of B1 ... gives the impression we speak about
> distinct sets, but my intuitive understanding suggests
> we are instead speaking about *one* bound set that is
> incrementally filled with more bounds as the analysis
> proceeds.
> 
> If distinct sets are intended, than I'm missing
> - any use of the constructed set B2
> - a definition for "current bound set"

Both solved by defining the current bound set at the start of the loop.

> If accumulation into one bound set is intended,
> then all talk of B1, B2, B3 seems to confuse more
> than it helps, IMHO.

It's reasonable to model this as accumulation into a mutating set, but then the names are necessary in order to express distinct points in time in that accumulation.  B1 is defined by reference to B1 in 18.5.1.  B2 is referenced from 18.2.1 and 18.2.1.2.

—Dan


More information about the lambda-spec-observers mailing list