Steel Bank Common Lisp

WRITE compiler-macro clashes variables

Reported by Stas Boukarev on 2010-05-17
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Medium
Unassigned

Bug Description

(funcall (compiler-macro-function 'write) '(write (1+ stream) :base 10) nil) =>

(LET ((*PRINT-BASE* 10) (STREAM *STANDARD-OUTPUT*))
  (SB-KERNEL:OUTPUT-OBJECT (1+ STREAM) STREAM))

Attached patch binds OBJECT variable to a form, and then calls OUTPUT-OBJECT on it.

Stas Boukarev (stassats) wrote :

WRITE-TO-STRING does the same. Attached a new patch, which fixes both.

Stas Boukarev (stassats) wrote :

#598374 bug contains a patch which fixes other problems with write compiler macros.

Changed in sbcl:
status: New → Confirmed
importance: Undecided → Medium
assignee: nobody → Nikodemus Siivola (nikodemus)
Nikodemus Siivola (nikodemus) wrote :

Thank you.

The WRITE bug has been fixed in 1.0.40.1, WRITE-TO-STRING issue in 1.0.42.4.

Changed in sbcl:
status: Confirmed → Fix Committed
assignee: Nikodemus Siivola (nikodemus) → nobody
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers