[Openmcl-devel] [Re: MOP Question: structure of Lambda list for direct-slot-definition-class]

Marco Baringer mb at bese.it
Wed Feb 23 00:56:20 PST 2005


Gary Byers <gb at clozure.com> writes:

> On Mon, 21 Feb 2005 rm at fabula.de wrote:
>
>> On Mon, 21 Feb 2005 17:31:17 +0000, Bruno Haible wrote:
>>
>> > If you're using DEFCLASS, then the MOP says how slot
>> > options should be handled (http://www.lisp.org/mop/concepts.html):
>> >
>> >   "All other slot options appear as the values of properties with the
>> >    same name as the slot option. Note that this includes not only the
>> >    remaining standard slot options (:allocation and :type), but also
>> >    any other options and values appearing in the slot specification. If
>> >    one of these slot options appears more than once, the value of the
>> >    property will be a list of the specified values."
>
> The handling of MAG-STEP in the example in Figure 5.2 (AMOP p148) tends
> to confirm the interpretation that the values of non-standard slot
> options should only be collected into a list if they're provided multiple
> times.

i must be missing something. assuming that interpretation how would i
distinguish between:

(defclass foo ()
  ((slot :value-type (ref something-else))))

and

(defclass foo ()
  ((slot :value-type ref :value-type something-else)))

the first form is valid, the second is an error. with openmcl's
current behaviour i have no problems checking and reporting a
meaningfull error, using clisp i can't tell the difference and my code
happily excepts bad input.

while i agree that this (listifying multiple values) is what the mop
says i don't think it's the best way to do things.

-- 
-Marco
Ring the bells that still can ring.
Forget the perfect offering.
There is a crack in everything.
That's how the light gets in.
	-Leonard Cohen



More information about the Openmcl-devel mailing list