doesn't seem completely fixed, still happens for top-level forms:
circ.lisp:
(print (eq '#1=(a . #1#) (cdr '(a . #1#)))) (print (eq '#1=(a . b) (cdr #2='(#2# . #1#))))
(defun f () (declare (notinline eq)) (eq '#1=(a . #1#) (cdr '(a . #1#))))
(defun g () (declare (notinline eq)) (eq '#1=(a . b) (cdr #2='(#2# . #1#))))
(print (list (f) (g)))
* (load "/tmp/circ.lisp")
T T (T T)
* (load (compile-file "/tmp/circ.lisp"))
NIL NIL (T T)
doesn't seem completely fixed, still happens for top-level forms:
circ.lisp:
(print (eq '#1=(a . #1#) (cdr '(a . #1#))))
(print (eq '#1=(a . b) (cdr #2='(#2# . #1#))))
(defun f ()
(declare (notinline eq))
(eq '#1=(a . #1#) (cdr '(a . #1#))))
(defun g ()
(declare (notinline eq))
(eq '#1=(a . b) (cdr #2='(#2# . #1#))))
(print (list (f) (g)))
* (load "/tmp/circ.lisp")
T
T
(T T)
* (load (compile-file "/tmp/circ.lisp"))
NIL
NIL
(T T)