[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Comments on Mary Poppins Chapter 9
- To: Moon%SCRC-TENEX@MIT-ML.ARPA
- Subject: Comments on Mary Poppins Chapter 9
- From: Scott E. Fahlman <Fahlman@CMU-CS-C.ARPA>
- Date: Wed, 21 Dec 1983 01:48:00 -0000
- Cc: Common-Lisp@SU-AI.ARPA
- In-reply-to: Msg of 19 Dec 1983 01:36-EST from Moon%SCRC-TENEX at MIT-ML
When does COMPILE-FILE recognize PROCLAIM as a top-level form in the file?
(1) Never: put (EVAL-WHEN (COMPILE LOAD EVAL) ...) around it.
(2) Always: make sure non-constant arguments are evaluable at compile time.
(3) Only when the argument is quoted.
(4) Only when the compiler, by analysis, can prove the argument is constant.
Even if the answer is 1, the manual should say so explicitly, since people
reasoning by analogy from Maclisp will expect something else. I can think
of good arguments in support of each of the above four possible answers.
I guess I ought to argue in favor of 1 since it's the simplest; but it
will also lead users to commit the most careless errors.
I would favor choice 2 and could live with 3 or 4. I am strongly
opposed to choice 1. In practice the argument will always be quoted and
always wants to be noticed at all three times. It is horrible to
contemplate having to put EVAL-WHEN's around all PROCLAIM forms in order
to get this effect.