Liking cljdoc? Tell your friends :D

tiltontec.cell.evaluate


<cgetclj/s

(<cget c)

c-absorb-valueclj/s


c-awakenclj/smultimethod


c-getclj/s

(c-get c)

The API for determing the value associated with a Cell. Ensures value is current, records any dependent, and notices if a standalone cell has never been observed.

The API for determing the value associated with a Cell.
Ensures value is current, records any dependent, and
notices if a standalone  cell has never been observed.
raw docstring

c-quiesceclj/s

(c-quiesce c)

c-value-assumeclj/s

(c-value-assume c new-value propagation-code)

The Cell assumes a new value at awakening, on c-reset!, or after formula recalculation.

We record the new value, set the Cell state to :awake, make its pulse current, check to see if a formula cell can be optimized away, and then propagate to any dependent formula cells.

The Cell assumes a new value at awakening, on c-reset!, or
 after formula recalculation.

We record the new value, set the Cell state to :awake, make
its pulse current, check to see if a formula cell can be
optimized away, and then propagate to any dependent formula
cells.
raw docstring

c-value-changed?clj/s

(c-value-changed? c new-value old-value)

(calculate-and-link c)

The name is accurate: we do no more than invoke the rule of a formula and return its value*, but along the way the links between dependencies and dependents get determined anew.

  • Well, we also look to see if a synaptic cell has attached a propagaion code to a vector used to wrap the raw value, which we then unpack.
The name is accurate: we do no more than invoke the
rule of a formula and return its value*, but along the
way the links between dependencies and dependents get
determined anew.

* Well, we also look to see if a synaptic cell has attached a
propagaion code to a vector used to wrap the raw value, which we then unpack.
raw docstring

calculate-and-setclj/s

(calculate-and-set c dbgid dbgdata)

Calculate, link, record, and propagate.

Calculate, link, record, and propagate.
raw docstring

ensure-value-is-currentclj/s

(ensure-value-is-current c debug-id ensurer)

The key to data integrity: recursively check the known dependency graph to decide if we are current, and if not kick off recalculation and propagation.

The key to data integrity: recursively check the known dependency
graph to decide if we are current, and if not kick off recalculation
and propagation.
raw docstring

ephemeral-resetclj/s

(ephemeral-reset rc)

md-cell-flushclj/s

(md-cell-flush c)

md-slot-cell-flushedclj/s


md-slot-value-storeclj/s

(md-slot-value-store me slot value)

not-to-beclj/smultimethod


not-to-be-selfclj/s

(not-to-be-self me)

optimize-away?!clj/s

(optimize-away?! c prior-value)

Optimizes away cells who turn out not to depend on anyone, saving a lot of work at runtime. A caller/user will not bother establishing a link, and when we get to models cget will find a non-cell in a slot and Just Use It.

Optimizes away cells who turn out not to depend on anyone, 
saving a lot of work at runtime. A caller/user will not bother
establishing a link, and when we get to models cget will 
find a non-cell in a slot and Just Use It.
raw docstring

propagateclj/s

(propagate c prior-value callers)

A cell:

  • notifies its callers of its change;
  • calls any observer; and
  • if ephemeral, silently reverts to nil.
A cell:
- notifies its callers of its change;
- calls any observer; and
- if ephemeral, silently reverts to nil.
raw docstring

propagate-to-callersclj/s

(propagate-to-callers c callers)

unchanged-testclj/smultimethod

Cells does not propagate when nothing changes. By default, the test is =, but cells can inject a different test, and when we get to models it will be possible for a slot to have associated with it a different test.

Cells does not propagate when nothing changes. By default, the
test is =, but cells can inject a different test, and when we get
to models it will be possible for a slot to have associated
with it a different test.
raw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close