From: Sean Burke
Subject: DeKleer's ATMS: the continuing saga
Date: 
Message-ID: <19224@usc.edu>
As regards my previous posting, persons with similar problems using the
the code walke are advised to get the latest version of this code
from the PCL distribution, which contains a system-specific clause
for Coral Common Lisp.  ·········@Xerox.com advises me that an improved
version of the walker will be appearing in a month or so.  The clause
for CCL follows:

  #+:CORAL                      (ccl::proclaimed-special-p symbol)

  That is not the end of it though.  The n-queens example in example.lisp
calls create-consumer, a macro which is defined as follows:

;;;**** consumer-constructor-macro unnecessary.*** now.
(defmacro create-consumer (name arguments &rest variables)
  `(create-consumer-internal 
      ',name ,arguments (,(intern (format nil "~A-MACRO" name))	,@variables)))

  This macro expansion would transform the call

	(create-consumer N-QUEENS (list (aref queens j) (aref queens i)))))
to
	(create-consumer-internal 'n-queens (...) (|n-queens-MACRO|))

which breaks trying to eval (|n-queens-MACRO), which is naturally an unbound
function.  I'm completely at a loss as to what's going on here.  This should
not work on any common lisp.  The comment implies that this macro is no
longer needed,  but it's still referenced in many places.

  Another wierd thing is that create-consumer-internal calls 
new-add-conjunctive-[node class]-consumer indirectly, which contain a call to
create-consumer.  I wonder if this would plunge into infinite recursion.

  As always, I'm open to any hints.

  Sean

"The nice thing about true hopelessness
 is that you don't have to try again" - Jules Shear