Open olopierpa opened 6 years ago
I think I'm convinced, but language lawyering at this level makes my head spin.
The claim here is that the following output is correct (and required by the standard) when *print-circle*
is true.
* (let ((g "a")) (format nil "~a ~a" g g))
"a a"
* (let ((g "a")) (format nil "~a" (list g g)))
"(#1=a #1#)"
* (let ((g "a")) (format nil "~{~a ~}" (list g g)))
"a a "
CCL generates the following (again, when *print-circle*
is true):
? (let ((g "a")) (format nil "~a ~a" g g))
"#1=a #1#"
? (let ((g "a")) (format nil "~a" (list g g)))
"(#1=a #1#)"
? (let ((g "a")) (format nil "~{~a ~}" (list g g)))
"#1=a #1# "
Hello,
I would like to resuscitate this old issue: https://trac.clozure.com/ccl/ticket/1389
GB asked for evidence in the spec supporting the opinion that CCL is wrong in this case.
Steve Haflich showed some evidence here: https://mailman.common-lisp.net/pipermail/pro/2017-December/001581.html , and his analysis looks pretty solid to me.
(Privately he also confirmed that the same behavior in ACL is a mistake he made, and should be fixed in ACL too).