<br><br><div><span class="gmail_quote">On 9/12/06, <b class="gmail_sendername">Jack Unrue</b> <<a href="mailto:jdunrue@gmail.com">jdunrue@gmail.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I've upgraded to the latest CVS version of Cells and have encountered<br>the following assertion failure:<br><br>*** - (>= CELLS::*DATA-PULSE-ID* (CELLS::C-PULSE CELLS::C)) must evaluate to a<br>      non-NIL value.<br>
<br>which had not occurred previously (I can't say what version, but I<br>would say more than a couple months ago). I believe the key is that I'm<br>calling cells:cells-reset and then attempting to invoke an accessor on a model
<br>object that existed prior to the cells-reset call. This used to work OK, but<br>perhaps I've been getting away with something I shouldn't have been?</blockquote><div><br>I think the deal is this (you are right):<br><br>
1. Cells-reset has always reset the vital *data-pulse-id* to 0<br>2. Old model object cells still in use when cells-reset was invoked thus have always had DPs (datapulses) greater than *data-pulse-id*, obviously benignly so in your application.
<br>3. I have an insanely high degree of confidence that the assertion above was inserted in the past month after I debugged a tough problem in which an object DP got moved backwards. (This had to do with another new mechanism,integrity bubbles, which I happen to plan to back out.)
<br><br>So...you can:<br><br>1. chop the assertion<br>2. suggest a new cells-reset-a-little, or a cells-reset parameter which says "I want to reset this but not that"<br><br>Re the latter, i admit Cells are a little un-Lispy in that I have not worked much on restarts. But the function cells-reset is meant to truly reset the cells mechanism, so as you surmised I am surprised you got away with it at all. I almost think then that, in your testing, you might want to simply arrange things so that cells-reset does not get called unless you are truly reinitializing your own application -- that is the spirit of cells-reset.*
<br><br>kt<br><br>* uh-oh, now I am in a panick over someday doing persistent cells again. :) look for datapulse-id to become:<br><br>        (+ (* 10000 (get-internal-real-time) (incf "oldskool-dp*))<br><br>Where *oldskool-dp* gets zeroed when g-i-r-t changes.
<br><br>kt<br><br></div></div>