[cells-devel] Using with-integrity

Ken Tilton kentilton at gmail.com
Fri May 11 13:00:27 UTC 2007


[sent yesterday, but my email seems to work only occasionally]

Josip Gracin wrote:

Where can I learn about various opcodes for with-integrity?


The only one not for internal-use-only (besides :change) is :client. More
below.

The source code for with-integrity is pretty concise, and the key function
there is "finish-business", which */really/* shows you how Cells3 works in
re data integrity. Indispensible reading is cells-manifesto.txt in the Cells
directory.

  I'm using
(with-integrity (:change) ...)
with merely a hint on what it actually does.


cells-manifesto.txt talks about state change processing not overlapping.
generation A must be fully finished before B begins, and things B must not
see any data from generation A. I allow observers to trigger state change
though it feels like a GOTO, but you gots to wrap it in with-integrity
:change which defers the actual SETF until The Right Time.

See the Celtk code for how and why the :client option exists. In the
declarative paradigm we specify what should happen and the engine takes care
of that as it sees fit. But Tk is a brittle beast that is not so good at
that, and we need to feed it information in The Right Order. The :client
mechanism allows one to queue things up and then process them in an order
specified by an optional client-queue handler.

kt

-- 
Ken Tilton                   Theory Y Learning
ken at theoryyalgebra.com
2112 Baileys Corner Rd   http://www.theoryyalgebra.com     Wall, NJ
07719           732-359-6038 | 646-269-1077 (m)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cells-devel/attachments/20070511/da2b55ee/attachment.html>


More information about the cells-devel mailing list