Clozure / ccl

Clozure Common Lisp
http://ccl.clozure.com
Apache License 2.0
841 stars 105 forks source link

formatter bug #438

Closed vibs29 closed 1 month ago

vibs29 commented 1 year ago

[cross-posted to clisp mailing list, where bug has now been fixed]

(defun s (fillp)
  (make-array 1 :element-type 'character :initial-contents "x"
              :fill-pointer fillp))
(defun fmt (fillp)
  (format nil (eval `(formatter ,(s fillp)))))
(fmt nil) ;ok
(fmt t)   ;error due to base-string instead of simple-string
#|
CLISP: fails
CCL:   fails
CMUCL: passes
SBCL:  passes
ECL:   passes
ABCL:  passes
|#

http://www.lispworks.com/documentation/HyperSpec/Body/m_format.htm#formatter says the formatter macro's arg is a "format string". http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_f.htm#format_string defines "format string" to be a string and doesn't restrict it to any particular subtype.