disappearing output from backquoted forms if *print-circle* = t

Bug #1161218 reported by Douglas Katzman
6
This bug affects 1 person
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)))
                          #2#))))

;; 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-0892423-dirty
[local patches have nothing to do with this problem]

Revision history for this message
James M. Lawrence (llmjjmll) wrote :

Some reduction:

(defparameter *f*
  '(let ((#1=#:var '(99)))
    `(progn ,@(identity #1#))))

(write *f* :circle t)
;; =>
(LET ((#1=#:VAR '(99)))
  `(PROGN ,@#2#))

Paul Khuong (pvk)
Changed in sbcl:
status: New → In Progress
importance: Undecided → Medium
assignee: nobody → Paul Khuong (pvk)
Revision history for this message
Paul Khuong (pvk) wrote :

Fixed in 70f323d9b (Stop emitting references to inexistant #n= forms in the pretty printer)

Changed in sbcl:
status: In Progress → Fix Committed
assignee: Paul Khuong (pvk) → nobody
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.