On 3/21/2012 3:44 PM, Frank Goenninger wrote:
Von: Kenneth Tiltonkentilton@gmail.com Datum: 21. März 2012 14:57:23 MEZ An: Frank Goenningerfrgo@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