[armedbear-devel] Objects sharing structure at compile time, get "destructured" in our FASL format
Tobias C. Rittweiler
tcr at freebits.de
Sun May 16 09:51:18 UTC 2010
Alessio Stalla <alessiostalla at gmail.com>
writes:
> > Why wrong? Literal coalescing is optional behaviour as far as I
> > remember.
>
> Literal coalescing is this: (cons '(1 2 3) '(1 2 3)) those two
> different '(1 2 3) constant objects can be coalesced to a single
> object at the discretion of the compiler (only in file compilation,
> iirc).
>
> However, Erik talked about cases when the same literal object is
> present more than once in the source, like in:
>
> (let ((foo '(1 2 3)))
> (compile nil `(lambda () (eq ',foo ',foo))))
>
> Clearly, in the second case the equality of the constant object must
> be preserved.
Yes, that is true for COMPILE and EVAL.
-T.
More information about the armedbear-devel
mailing list