[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Issue: HASH-TABLE-PRINTED-REPRESENTATION (Version 2)
- To: CL-Cleanup@SAIL.Stanford.EDU
- Subject: Issue: HASH-TABLE-PRINTED-REPRESENTATION (Version 2)
- From: Kent M Pitman <KMP@STONY-BROOK.SCRC.Symbolics.COM>
- Date: Thu, 13 Oct 88 18:15 EDT
My notes from Fairfax meeting...
JonL says he'll get Touretzky to do a writeup.
Maybe expand to fix arrays for general case.
Some people seemed to think there is some relation between this and
a DUMP-FORMS facility. I think because you can print something with
#. if you can figure out how to construct it. However, Touretzky had
already indicated that grokking a #H expression is something a
non-Lisp program might hope to do, while parsing a #. expression is
not -- so DUMP-FORMS is not the full answer. Still, such a facility
might be a useful new topic to raise.
JonL: One issue is that infinite printing might occur if circularities
occur. [JonL said he doesn't believe this is reason not to do it,
but he did want to raise the issue.]
Haflich: Impact on #H in per-vendor extensions.
Barmar: Need to modify the WRITE function to take a :PRINT-HASH argument.
KMP: You mean :PRINT-HASH-TABLE. I want the variable called
*PRINT-HASH-TABLE*, not *PRINT-HASH*.
van Roggen: Not sure if it's possible to print enough information to
make re-reading the expression really construct an
GLS: The same could be said about other print representations, too, but
there is at least a well-defined theory of how much you can expect
out of print/read.
van Roggen's position seemed to be that we might just want to provide
*PRINT-HASH-TABLE* but not specify how the thing actually gets printed
so it's not thought to be portable.
I (KMP) made a note to myself that since #S(ARRAY ...) and
#S(HASH-TABLE ...) couldn't possibly be meaningful, one might define
#S to be the generalized constructor for things other than structures.
So #S(ARRAY ...) could be used to print arrays with attributes that
would otherwise be lost. eg, #S(ARRAY :CONTENTS ... :FILL-POINTER ...).
Similarly, #S(HASH-TABLE :CONTENTS ... :SIZE ...) for the cases where
hairy options wanted to be shown. #A and the simpler #H notation could
then be used unless some option variable were set that said to really
print the full-blown info.