CHECK-STRUCT-TYPE

Kenny Tilton <[email protected]>
Newsgroups gmane.lisp.corman
Message-ID <[email protected]>
Here are some defstructs. Below is a backtrace in which 
check-struct-type complains that a c-variable instance is not a 
c-stream. Aside from the c-stream defstruct, the source contains no 
references to c-streams--they were a new-fangled cell I abandoned early on.

The code which fails is:

(defun c-install (self sn c)
   "Install cell C in slot named SN of instance SELF"
   (assert (typep c 'cell))
   (setf
    (c-model c) self
    (c-slot-spec c) sn
    (md-slot-cell self sn) c
    (slot-value self sn) (when (typep c 'c-variable)
                           (c-value c))))

This is a terribly inadequate bug report, thrown out FWIW because I am 
just going to try the same now on CLisp, and getting Cells to work on 
CormanLisp is not an immediate priority. I understand if no one follows 
up on this because the bug report is so shoddy, but I offer it anyway on 
the off chance some bug in and around (I guess) the setf logic jumps out 
at you.

kt (defstructs and backtrace follow)

(defstruct (cell (:conc-name nil))
   c-waking-state
   c-model
   c-slot-spec
   c-value
   )

(defstruct (synapse
             (:include cell)
             (:conc-name nil))
   c-user
   c-used
   synfire?
   synrelayvalue)

(defstruct (c-user-notifying
             (:include cell)
             (:conc-name nil))
   (c-users nil :type list))

(defstruct (c-unsteady
             (:include c-user-notifying)
             (:conc-name nil))
   c-cyclicp
   c-deltap
   c-setting-p)

(defstruct (c-variable
             (:include c-unsteady)
             (:conc-name nil))
   )

(defstruct (c-ruled
             (:include c-unsteady)
             (:conc-name nil))
   (c.state :unbound :type symbol)
   (c-rethinking 0 :type number)
   c-rule)

(defstruct (c-independent
             ;;
             ;; these do not optimize away, because also these can be 
set after initial evaluation of the rule,
             ;; so users better stay tuned.
             ;; the whole idea here is that the old idea of having cv 
bodies evaluated immediately finally
             ;; broke down when we wanted to say :kids (cv (list 
(fm-other vertex)))
             ;;
             (:include c-ruled)
             (:conc-name nil)))

(defconstant *c-usagect* 32)

(defstruct (c-dependent
             (:include c-ruled)
                 (:conc-name nil))
   (c-useds nil :type list)
   (c-code nil :type list) ;; /// feature this out on production build
   (c-usage (make-array *c-usagect* :element-type 'bit
                         :initial-element 0) :type vector)
   c-stalep
   )

(defstruct (c-stream
             (:include c-ruled)
             (:conc-name nil))
   c-values)

;;; (defmacro cell~ (&body body)
;;;   `(make-c-stream
;;;     :c-rule (lambda ,@*c-lambda*
;;;                 ,@body)))

(defstruct (c-drifter
             (:include c-dependent)))

(defstruct (c-drifter-absolute
             (:include c-drifter)))

;;; An error occurred in function CHECK-STRUCT-TYPE:
;;; Error: The object #S( C-VARIABLE :C-WAKING-STATE NIL :C-MODEL NIL 
:C-SLOT-SPEC NIL :C-VALUE NIL :C-USERS NIL :C-CYCLICP NIL :C-DELTAP NIL 
:C-SETTING-P NIL ) is not a C-STREAM structure
;;; Entering Corman Lisp debug loop.
;;; Use :C followed by an option to exit. Type :HELP for help.
;;; Restart options:
;;; 1   Abort to top level.
:b
;;; ERROR                               (File sys/conditions.lisp, line 463)
;;; COMMON-LISP::CHECK-STRUCT-TYPE      (File sys/structures.lisp, line 92)
;;; CELLS::|(SETF C-MODEL)|             (File 
D:\_distro-corman\cells\cell.lisp, line 173)
;;; CELLS::C-INSTALL                    (File 
D:\_distro-corman\cells\model-object.lisp, line 87)
;;; SHARED-INITIALIZE                   (File 
D:\_distro-corman\cells\model-object.lisp, line 98)
;;; APPLY                               (File sys/clos.lisp, line 1928)
;;; #< COMPILED-FUNCTION: #x1DBA228 >   (File 
D:\_distro-corman\cells\model-object.lisp, line 98)
;;; FUNCALL                             (File sys/clos.lisp, line 1832)
;;; #< COMPILED-FUNCTION: #x1ADA508 >   (File sys/clos.lisp, line 1714)
;;; FUNCALL                             (File sys/clos.lisp, line 1832)
;;; COMMON-LISP::SLOW-METHOD-LOOKUP     (File sys/clos.lisp, line 1644)
;;; #< COMPILED-FUNCTION: #x1967A50 >   (File sys/clos.lisp, line 1633)
;;; APPLY                               (File sys/clos.lisp, line 1928)
;;; INITIALIZE-INSTANCE                 (File sys/clos.lisp, line 2281)
;;; APPLY                               (File sys/clos.lisp, line 1928)
;;; #< COMPILED-FUNCTION: #x1BD5410 >   (File sys/clos.lisp, line 2281)
;;; FUNCALL                             (File sys/clos.lisp, line 1832)
;;; INITIALIZE-INSTANCE
;;; FUNCALL                             (File sys/clos.lisp, line 1832)
;;; COMMON-LISP::SLOW-METHOD-LOOKUP     (File sys/clos.lisp, line 1644)
;;; #< COMPILED-FUNCTION: #x1967A50 >   (File sys/clos.lisp, line 1633)
;;; APPLY                               (File sys/clos.lisp, line 1928)
;;; MAKE-INSTANCE                       (File sys/clos.lisp, line 2281)
;;; APPLY                               (File sys/clos.lisp, line 1928)
;;; #< COMPILED-FUNCTION: #x1BD5348 >   (File sys/clos.lisp, line 2281)
;;; FUNCALL                             (File sys/clos.lisp, line 1832)
;;; MAKE-INSTANCE                       (File sys/parse-c-decls.lisp, 
line 598)
;;; FUNCALL                             (File sys/clos.lisp, line 1832)
;;; #< COMPILED-FUNCTION: #x1967A50 >   (File sys/clos.lisp, line 1633)

-- 

  kenny tilton
  clinisys, inc
  http://www.tilton-technology.com/
  ---------------------------------------------------------------
"Cells let us walk, talk, think, make love and realize
  the bath water is cold." -- Lorraine Lee Cudmore



------------------------ Yahoo! Groups Sponsor ---------------------~-->
Get 128 Bit SSL Encryption!
http://us.click.yahoo.com/xaxhjB/hdqFAA/xGHJAA/SyjtlB/TM
---------------------------------------------------------------------~->

To unsubscribe from this group, send an email to:
[email protected]

 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.