Re: [cells-devel] TripleCells: A new twist to the unbound variable CACHE challenge ...

On 3/21/2012 3:44 PM, Frank Goenninger wrote:
Von: Kenneth Tilton<kentilton@gmail.com> Datum: 21. März 2012 14:57:23 MEZ An: Frank Goenninger<frgo@me.com> Betreff: Re: [cells-devel] Triple Cells: AllegroGraph 4.5 "porting"
Sorry, we went so late last night I completely forgot about this. I'll keep trying to find time (and keep sending me emails so I remember to). I will try to dig thru the below.
Do I gather there is a new error now about CACHE? I do not even recognize that. After a full recompile I get another error: Error: Attempt to take the value of the unbound variable `CACHE'.
Note: Not cache? but cache ...
Digging into the 3c code reveals:
The cell rule gets stored as a string. This is done in #'3c? :
(defmacro 3c? (rule&key test ephemeral observer) `(call-3c? '(lambda (node cache cache?) ;;<<<<<<<<------ This is the "offending" LoC ... (declare (ignorable cache cache?)) (let ((*calc-nodes* (cons node *calc-nodes*))) ,rule)) ;;<<<<<<<<<------ There cache is not defined anymore - see below for explanation ... :test ,test :observer ,observer :ephemeral ,ephemeral))
When running #'test-prep I get the following last lines in a trace:
0> 3c?-rule: got rule "(lambda (triple-cells::node triple-cells::cache triple-cells::cache?) (declare (ignorable triple-cells::cache triple-cells::cache?)) (let ((triple-cells::*calc-nodes* (cons triple-cells::node triple-cells::*calc-nodes*))) (let ((h (3c (3c-find-id \"dell\") !hw:happen))) (trc \"rule sees happen\" h) (cond ((string-equal h \"arrive\") \"home\") ((string-equal h \"leave\") \"away\") (triple-cells::cache? cache) (t \"away\")))))"
I can't see what is wrong with this...
cache needs the explicit package as well: (cond ((string-equal h \"arrive\") \"home\") ((string-equal h \"leave\") \"away\") (triple-cells::cache? triple-cells::cache) ;;<-- need package on both (t \"away\")))))" HTH, ken
participants (1)
-
Kenneth Tilton