From: Marco Baringer
Subject: defclass extension
Date: 
Message-ID: <m2he36hb4k.fsf@bese.it>
I found this line in the hyperspec regarding the :initform slot option
in defclass:

----
No implementation is permitted to extend the syntax of defclass to
allow (slot-name form) as an abbreviation for (slot-name :initform
form).
----

A slot form like (slot-name form) is already non conforming due to how
defclass is defined, why did it need to be repeated? If an
implementation were to allow such a form it's obviously decided to be
non conforming and so i don't see what an extra "do not do this" in
the spec is going to accomplish.

I'm just curious because i'm thinking about making heavy use of a
defclass macro which will allow exactly this form and i'd like to know
the reason the writers of the spec decided to be so explict in
forbidding it.

-- 
-Marco
Ring the bells that still can ring.
Forget your perfect offering.
There is a crack in everything.
That's how the light gets in.
     -Leonard Cohen
From: Kalle Olavi Niemitalo
Subject: Re: defclass extension
Date: 
Message-ID: <87vfrmo91k.fsf@Astalo.kon.iki.fi>
Marco Baringer <ยทยท@bese.it> writes:

> If an implementation were to allow such a form it's obviously 
> decided to be non conforming and so i don't see what an extra 
> "do not do this" in the spec is going to accomplish.

An implementation with extensions can still be conforming.  
In section 1.6:

"An implementation can have extensions, provided they do not 
alter the behavior of conforming code and provided they are not 
explicitly prohibited by this standard."

Allowing (slot-name form) would not alter the behavior of 
conforming code, so it would be a valid extension if it had not 
been explicitly prohibited.