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


> If copying is
> allowed it happens only for objects that the implementation is capable
> of copying without signalling an error or doing anything undefined, and
> without violating "similarity as constants within a single Lisp", a
> concept to be defined by CONSTANT-COMPILABLE-TYPES.
> The "similarity as constants within a single Lisp" rule means that
> instances of user-defined STANDARD-CLASS or STRUCTURE-CLASS types
> are never copied.  This removes my largest objection to copying.

Hang on here.  What's this "similarity as constants within a single
Lisp" business that forbids copying of structures?  There seems to be
an unfortunate attempt to drag in the decisions made about how EQUALP
compares STANDARD-CLASS and STRUCTURE-CLASS objects going on here.  The
equivalence relationship now defined in issue CONSTANT-COMPILABLE-TYPES 
has nothing to do with EQUALP, and if it defines how to construct an
equivalent copy of one of these objects, it ought to be just as
equivalent for COMPILE and EVAL as it is for COMPILE-FILE.  Let's not
complicate things further by trying to specify entirely different
rules for the two situations.