Larry Clapp wrote:
I understand (I think ...) what :once-asked *does*, I want to know
what it *means*.
In other words, the other two options seem to answer the question
"when is this cell lazy?" Well, an :always cell is always lazy --
it's not recalculated until and unless you ask for it. An
:until-asked cell is lazy until you query it once, then it's non-lazy
from then on.
"once-asked" seems to answer a *different* question, "when is this
cell evaluated?" It's evaluated once, when created, and then only
when queried.
Is there any single "question" that all three answer, or are they just
inconsistent?
Once-asked would be "un-lazy until you query it once" (ie, consistent)
but it also looks to be vestigial: all code seems to treat it the same
as always.
If I missed it in my brief scan of the code, it would have to do with
model instance initialization. Normal cells get evaluated and observed
very soon after initialize-instance, during md-awaken. An always lazy
cell just sits there until someone actually reads the corresponding
slot-value, then resumses sitting and not reacting to dependencies. An
until-asked cell likewise just sits there until the slot is read, but
then recalculates when any dependency changes. A once-asked cell would
calculate during md-awaken but then be lazy ever after.
So there may be a gap in the code or maybe I missed it. Lazy stuff does
not get a lot of use so it is possible there is a hole there.
kt
--
http://www.theoryyalgebra.com/
_______________________________________________
cells-devel site list
cells-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/cells-devel