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

questions from JEIDA Object Oriented Programming WG

Let us ask a few more questions.

Consider the following example:

<CASE-1> (defstruct  (foo (:class class)) (a 1))
         (defstruct  (bar (:class class) (:include foo)) (a 10))
         (defstruct  (baz (:class class) (:include bar)))

<CASE-2> (defstruct foo (a 1))
         (defstruct (bar (:include foo)) (a 10))
         (defstruct (baz (:include bar)))

What should be happened in CommonLoops when the followings are evaluated:

     (baz-a (make-baz))
     (bar-a (make-baz))
     (foo-a (make-baz))

At present, we have observed the followings.

	  	<case-1>                           <case-2>
  baz-a...   invalid(symbolics, Vaxlisp,kcl)    1(symbolics),10(kcl)
  bar-a...   10(symbolics,Vaxlisp,kcl)	        1(symbolics),10(kcl)
  foo-a...   10(symbolics,Vaxlisp),1(kcl)	1(symbolics,kcl)

In Vaxlisp:
     (defstruct (bar (:include foo)) (a 10)) is invalid,
     because the slot <a> is already defined in foo.

PCL  does  not  handle  multi-methods  when  those  arities  are different.  
For example:

   (defmeth foo ((x p)))
   (defmeth foo ((x p) (y q)))

Let us know what kind of discussions were there?

Thank you.

Toru Ishida