[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
What is a compiler (vol. 63827) meets what are gensyms.
- To: Common-Lisp@SU-AI.ARPA
- Subject: What is a compiler (vol. 63827) meets what are gensyms.
- From: David A. Moon <Moon@SCRC-STONY-BROOK.ARPA>
- Date: Tue, 22 Apr 86 15:15 EST
- In-reply-to: <860418101724.8.DCP@FIREBIRD.SCRC.Symbolics.COM>
Date: Fri, 18 Apr 86 10:17 EST
From: David C. Plummer <DCP@SCRC-QUABBIN.ARPA>
I think CLtL must be very explicit about what is preserved in the
load/dump process. The Symbolics implementation is EQUAL (often EQL)
for lists and EQL for everything else.
For the record, this is not exactly true. The Symbolics implementation
preserves EQness of objects within a single binary file output by the compiler;
this is a little stronger than PRINT/READ equality; perhaps it's equivalent to
PRINT/READ equality with *PRINT-CIRCLE* turned on and a giant PROGN wrapped
around the entire file.
The Symbolics implementation does not make lists that are EQUAL become EQ as
part of the load/dump process, contrary to what DCP implied. What it actually
does is to make constants within a compiled function or an unspecified group
of compiled functions that satisfy a certain predicate (which is approximately
EQUAL) become EQ, which is not quite the same.
I agree both that it would be good for the language specification to be very
explicit about what object relationships are preserved by loading and dumping,
and that this is very difficult.