"Paul F. Dietz" <dietz@...> writes:
> I wrote:
>> ;; The value NIL is not of type SB-C::NODE.
>> '(LAMBDA ()
>> (FLET ((%F9 () (LABELS ((%F13 () 5749197)) (%F13))))
>> (LABELS ((%F14 () (%F9))) -295534895))))
> This (and two related bugs) are still occuring for me, but not
> for Christophe. I suspect the difference is due to a hacked version
> of DOLIST I've been using. This version loads the cdr at the top
> of the loop, not the bottom, in order to reduce stalls due to the load.
> However, if the code somewhere is destructively modifying the cdr
> this could lead to changed behavior. That kind of destructive modification
> is ANSI noncompliant, though (section 3.6).
Running with this DOLIST:
(defmacro-mundanely dolist ((var list &optional (result nil)) &body body)
(multiple-value-bind (forms decls) (parse-body body :doc-string-allowed nil)
(let ((n-list (gensym))
`(do* ((,n-list ,list (cdr ,n-list))
(,fresh-list (copy-seq ,n-list) (cdr ,fresh-list)))
((and (endp ,n-list) (endp ,fresh-list))
`((let ((,var nil))
(unless (eq (car ,n-list) (car ,fresh-list))
(error "argh, modification in DOLIST"))
(let ((,var (car ,n-list)))
I get an error in SB!C::FIND-NON-LOCAL-EXITS right at the start of
make-target-2.sh (just after the end of cold init).
Presumably this is the DELQ in MAYBE-DELETE-NODE?
http://www-jcsu.jesus.cam.ac.uk/~csr21/ +44 1223 510 299/+44 7729 383 757
(set-pprint-dispatch 'number (lambda (s o) (declare (special b)) (format s b)))
(defvar b "~&Just another Lisp hacker~%") (pprint #36rJesusCollegeCambridge)