Re: Re: trellis.Set.discard
"Phillip J. Eby" <pje-Wh6+Hckhi6HFNGf7iClzIwC/[email protected]>
| Newsgroups | gmane.comp.python.peak |
|---|---|
| Message-ID | <[email protected]> |
At 09:39 PM 11/3/2008 +0200, Sergey Schetinin wrote: >We also need to consider that cells can be passed to >Component.__init__. Consider this: > >class C1(Component): > val = attr() > > @maintain > def rule(self): > self.val = True > >val = Cell() > >@atomically >def test(): > c1 = C1(val=val) > assert val.value is True > >Not just the old values could be set, but also old rules run etc. In >some cases this is invalid, but in some, when the running rule didn't >run in current transaction yet it should be OK. But then, the old rule >should be undoable, the new ones shouldn't. I think that we need to stop thinking of component initialization as a side transaction. It really doesn't help in understanding what should be done. >... >This is almost true, but consider the case when we create a component >and immidiately set one of its discrete cell, this would mean that the >dependent rules will see the init value, the newly set value, but >never the reset value in between. There are more problems with this than just that. See the email before this one. >I have a number of small reports / suggestions, would you prefer if I >created a few new threads for them (they have nothing to do with >Set.discard anyway =) or is it ok just to list them all in one? All in one would be fine; might as well start a new thread, also. The sooner you can do it the better, because this is probably the only day this week I will be working on any of this.