Re: [email@example.com: Re: CML2 0.2.0]
On Fri, Jun 02, 2000 at 02:02:42PM -0400, Andrew Pimlott wrote:
> Jesse Pollard <firstname.lastname@example.org>:
> > > I am not familiar in how this works, but it would be cool if those
> > > requirements were marked as "weak" and un-marked if the option relying
> > > on them is.
> > >
> > > i.e.
> > > I have driver "foo" requiring "bar". If I mark foo, I want bar to be marked.
> > > But if then I change my mind and unmark foo, I wish for bar to be unmarked
> > > (unless explicitly re-marked). But if I select first bar and then foo, then
> > > bar is not to be de-selected when foo is.
> > Also: if there is a driver baz that also requires bar we would want bar included
> > if EITHER foo or baz were selected, but bar should not be included only
> > if BOTH foo and baz are deslected... Choosing foo should mark bar; Choosing
> > baz should also mark bar; But if foo is deselected, then bar should not be
> > unmarked since baz is still selected...
> I've actually been thinking about something similar, but before this morning
> I didn't have a semantics for it that I liked. How about this?
> * Implement a stack of "weak" bindings for each symbol, each associated
> with the symbol that forced it. A user setting overrides all weak bindings,
> otherwise more recent ones have priority over older ones. Whenever a symbol
> changes value all the weak bindings it forces go away (then it may make new
> ones). Indicate weak bindings with a distinguished foreground color.
Why simple reference counting of such bindings won't work ?