disappearing output from backquoted forms if *print-circle* = t
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Fix Released
|
Medium
|
Unassigned |
Bug Description
In the first output sample, label #3# is not defined.
(defparameter myform
'(LET ((#1=#:G796 8) (#2=#:G795 NIL))
(SETF #2# (FROB-SOMETHING (MUMBLE #1#)))
`(PROGN ,@(MAPCAN (LAMBDA (FOO) (WHEN (BAR FOO) (FROB FOO)))
;; Fail
* (let ((*print-circle* t)) (pprint form))
(LET ((#1=#:G796 8) (#2=#:G795 NIL))
(SETF #2# (FROB-SOMETHING (MUMBLE #1#)))
`(PROGN ,@#3#))
;; OK
* (let ((*print-circle* nil)) (pprint form))
(LET ((#:G796 8) (#:G795 NIL))
(SETF #:G795 (FROB-SOMETHING (MUMBLE #:G796)))
`(PROGN ,@(MAPCAN (LAMBDA (FOO) (WHEN (BAR FOO) (FROB FOO))) #:G795)))
sbcl --version
SBCL 1.1.5.15-
[local patches have nothing to do with this problem]
Changed in sbcl: | |
status: | New → In Progress |
importance: | Undecided → Medium |
assignee: | nobody → Paul Khuong (pvk) |
Changed in sbcl: | |
status: | Fix Committed → Fix Released |
Some reduction:
(defparameter *f*
'(let ((#1=#:var '(99)))
`(progn ,@(identity #1#))))
(write *f* :circle t)
;; =>
(LET ((#1=#:VAR '(99)))
`(PROGN ,@#2#))