buggy pprint?
Either it's too late on a friday, or pprint is buggy in both LW 4 & 5,
on linux, mac or windows.
As far as I can tell from the standard (*), pprint should not interfer
with *print-readably*, but rather be equivalent to (write ... :escape
t :pretty t), or, equivalently, (let ((*print-pretty* t))(print ...))
CL-USER 1 > (let ((*print-readably* t))(pprint '(((((((((((((()))))))))))))))(values))
((((((((((#))))))))))
Although it should be equivalent to:
CL-USER 2 > (let ((*print-readably* t)(*print-pretty* t))(print '(((((((((((((()))))))))))))))(values))
(((((((((((((NIL)))))))))))))
or to:
CL-USER 3 > (let ((*print-readably* t))(write '(((((((((((((()))))))))))))) :escape t :pretty t)(values))
(((((((((((((NIL)))))))))))))
As far as I can tell, 5.0 is actually less broken than 4.4.6 (only
Windows version tested), which does not observe *print-readably* in
case (2) either, i.e. in LWW 4.4.6 print is buggy as well.
(*) The standard explicitly says that "The functions prin1 and print
do not bind *print-readably*". I think it should have mentioned pprint
in that sentence as well, because from the examples that follow, which
translate prin*-calls to calls to write, pprint is clearly equivalent
to prin1 except for passing :pretty t to write.
--
(espen)