[Openmcl-devel] princ *print-circle*

Gary Byers gb at clozure.com
Tue Apr 20 03:10:29 PDT 2004

On Tue, 20 Apr 2004, Marco Baringer wrote:

> why does princ bind *print-circle* to nil?
> --
> -Marco

At least part of the rationale is explained in the PRINC-READABLY cleanup
issue writeup that accompanies the HyperSpec:


which says (in part):

'~A and PRINC are supposed to produce "human readable" output, so they
should not put on machine-readability decorations such as vertical bars,
backslashes, package prefixes, and #1#.'

I'm not sure if or how the language in CLHS differs from the language
in CLtL2 that the cleanup issue was supposed to remedy; reading the
CLHS PRINC and ~A entries with a magnifying glass would seem to suggest
that these constructs don't bind *PRINT-CIRCLE* at all.

Even if I'm correct in assuming that CLHS says something different from
what X3J13 voted on, being pedantic about this is probably better than
being "right".  (Besides, it's not clear that overflowing the stack
while trying to print a circular structure is a lot more "aesthetic"
or "human-readable" than #n#/#n= ....)

The short answer to your question is "for historical reasons."

More information about the Openmcl-devel mailing list