Package: clisp Version: 1:2.27-0.5 Severity: important Following sequence produce this effect: (jtms-init) (setq a (install-node 'a)) (setq b (install-node 'b)) (install-just a (list b))
I found that this problem has something to do with push and defstruct. In harlequin lisp (lispworks) program worked without problems. When I replaced defstruct with defclass, problem disappeared in clisp too. -- System Information Debian Release: testing/unstable Architecture: i386 Kernel: Linux pisidlo 2.2.20 #1 Sun Feb 24 20:26:35 CET 2002 i686 Locale: LANG=cs_CZ, LC_CTYPE=cs_CZ Versions of packages clisp depends on: ii libc6 2.2.5-4 GNU C Library: Shared libraries an ii libncurses5 5.2.20020112a-7 Shared libraries for terminal hand
(defstruct node (index 0) (datum nil) (label 'out) (support nil) (justifications nil) (consequences nil) ) (defstruct justification (index 0) in-list out-list consequence ) (defvar *node-counter*) (defvar *just-counter*) (defun in-node? (node) (eq (node-label node) 'in)) (defun out-node? (node) (eq (node-label node) 'out)) (defun jtms-init () (setq *node-counter* 0 *just-counter* 0) ) (defun install-node (datum) (let (node) (setq node (make-node :datum datum :index (incf *node-counter*))) )) (defun install-just (conseq in-supp &optional (out-supp nil)) (let (just) (setq just (make-justification :index (incf *just-counter*) :in-list in-supp :out-list out-supp :consequence conseq)) ; (setf (node-justifications conseq) ; (append (node-justifications conseq) just)) (push just (node-justifications conseq)) just ))