This is the mail archive of the
kawa@sourceware.org
mailing list for the Kawa project.
Re: CL implementation questions
* Per Bothner [2012-04-01 17:29] writes:
> On 04/01/2012 04:05 AM, Charles Turner wrote:
>> Thanks, it's much more clear how to start now. :-)
>>
>> On 1 April 2012 05:10, Per Bothner<per@bothner.com> wrote:
>>> On 03/31/2012 01:25 PM, Charles Turner wrote:
>>>> - Macro forms cannot expand into DECLARE exprs.
>>>
>>> Why not?
>>
>> From the CLHS:
>>
>> "Macro forms cannot expand into declarations; declare expressions must
>> appear as actual subexpressions of the form to which they refer."
>> http://www.lispworks.com/documentation/HyperSpec/Body/s_declar.htm
>>
>> There's also some discussion about it in CLTL (I'm aware it's out-of-date)
>> http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node104.html
>> about two pages down.
>
> I guess that does make it easier to check for a declare form in
> rewrite_body - just check if the first form is a list whose car
> is the symbol declare. (Still, since you have to macro-expand
> anyway, I don't see how it would be that difficult. But I
> don't have the experience of the collective group of CL implementors
> at that time.)
Some experiences were written up for future generations:
http://www.lispworks.com/documentation/HyperSpec/Issues/iss095_w.htm
It seems to me that this is something that Symbolics wanted to make it
easy for naive tools/programmers.
Helmut