[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...
Cleanup 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.
X3J13 meeting:
 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
	     equivalent object.
 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.