[cells-devel] CVS Clean-up

Kenny Tilton ktilton at nyc.rr.com
Mon May 9 14:25:49 UTC 2005



Thomas F. Burdick wrote:

>Kenny Tilton writes:
> > OK, the Cells CVS repository has been cleaned up and I am on the verge 
> > of making my first changes to Cells, so (a) beware and (b) anyone with a 
> > standalone tarball will soon be diverging from the official code.
>
>Well, the released code, anyway.  I think the moral of the story is:
>version 2.1 is coming in the not-too-distant future.
>
Yeah, the Semi-Grand Unification of Synapses and Cells will rate a full 
tenth.

>
> > My first change will be an oddity: ephemeral cells, when reset, do not 
> > get the corresponding slot value reset. I have not made this change yet, 
> > so maybe it was that way for a reason? Hard to imagine.
>
>I have a vague memory of talking about this, but I don't remember why.
>Either way, it only affects the non-cells view of the object, right?
>
Yep, but after marrying Cells to AllegroStore I became quite sensitive 
to the need for a value to occupy its slot, because a lot of AStore's 
magic relies on that.

>
> > Second will be repairing the damage done to Synapses. Well, overall the 
> > change was good, it just broke Synapses. I am starting to see how the 
> > same change done properly will simplify Cells a little:
> > 
> > Synapses always had two rules: should I fire, and what value should I 
> > pass along? Normal Cells only had the "what value?" rule, with a 
> > hard-coded (kinda) test "has it changed?" to decide whether or not to 
> > fire. The default changed test EQL could be overridden, but that was it.
>
>I really should remember to use this feature sometime.  I think the
>name "synapse" is too clever for me: I never remember what it means,
>and end out not using them where they're appropriate.
>
heh-heh. I name all canned synapses f-something, for "filter".

>
> > In the change that broke Synapses, I simply eliminated Synapses as a 
> > separate data structure and implemented them with Cell structures, the 
> > fire test and value rules being combined in one lambda for the Cell 
> > value rule. Goofy mistake since the standard Cell was still being 
> > controlled by the "unchanged" rule.
> > 
> > So the Deep Fix will be to meet half-way, and now enhance standard Cells 
> > to work like Synapses, by moving the "unchanged" test into a "fire?" 
> > mechanism. This is not the unification of Gravity with Electromagnetism, 
> > but it should simplify the code some.
>
>Sounds good.  Hey, if it's available as a keyword option to c-formula,
>I might actually see it and use it :-)
>
The first thing called will be the "firep" function, which decides if a 
Cell should propagate to others once someone else has propagated to it. 
If so, the fire-value function is called to determine the value to 
respond with when sampled.

Current Cells behavior is to decide its new value and then decide 
whether to propagate by calling c-unchanged-p or some such. This can be 
expressed in the new scheme as:

-- firep decides a new value and caches it as the new value to return 
when sampled.
-- It then uses c-unchanged-p (?) to get its return value (indicating 
firep).

kt

-- 
Cells? Cello?: http://www.common-lisp.net/project/cells/
Cells-Gtk?: http://www.common-lisp.net/project/cells-gtk/
Why Lisp? http://lisp.tech.coop/RtL%20Highlight%20Film

"Doctor, I wrestled with reality for forty years, and I am happy to state that I finally won out over it." -- Elwood P. Dowd





More information about the cells-devel mailing list