[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Issue: CONSTANT-CIRCULAR-COMPILATION (Version 5)



We haven't thought about this one real carefully, but here are some comments:

CONSTANT-CIRCULAR-COMPILATION:NO version 5 -- No, not acceptable not to preserve EQ
CONSTANT-CIRCULAR-COMPILATION:PRESERVE-SHARING-ONLY -- No, circularity should be allowed
CONSTANT-CIRCULAR-COMPILATION:FLAG -- No, this conflates sharing with circularity

Do not introduce a new word "DUMP" when we already have "COMPILE".

I would vote for one that always preserved EQ, and in addition had a
flag to control whether circularity was allowed.

There also should be a separate way to turn off EQness preservation for
individual types.  At least, a customer asked for that once for conses,
to speed up writing of his large data structures that are known (or
assumed) not to contain any sharing of conses.  Maybe the right way
to do this is a special variable whose value is a function of one
argument, called with an object appearing in a constant, returning T
if the compiler should try to preserve identity (under EQL) of that
object.  Default always returns T.  I don't care a lot about whether
you put this in.