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

Re: issue COMPILE-ENVIRONMENT-CONSISTENCY



> Date: 5 Jan 89 21:27 PST
> From: masinter.pa@Xerox.COM
> 
> "The compiler may assume that functions that are defined and
> declared INLINE in the compiletime environment will retain the same
> definitions at runtime."
> 
> really means is that when calling a function that was originally defined
> and declared INLINE but, at some later point in time, redefined, the
> results are unspecified in that either the old (INLINE-proclaimed) or new
> definition might be invoked.

Exactly.  The introductory part of section 2 says very much the same
thing, along with a statement that user code must ensure that things the
compiler is allowed to wire in are defined consistently at both compile
and run time.

> We had considerable debate about 2b (I think on the common lisp mailing
> list.) 

I don't remember this.  It seemed noncontroversial to us; so many 
implementations do this that it appeared just to be a statement of
current practice.

>2d is subsumed by cleanup LISP-SYMBOL-REDEFINITION, is it not?

At least the part about not redefining the functions.  This issue was
drafted before we saw LISP-SYMBOL-REDEFINITION.

> 2f means that you can't change a DEFCONSTANT, doesn't it?

Yes.  This is merely a restatement of what CLtL already says on p. 68-69.

-Sandra
-------