[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
questions from JEIDA Object Oriented Programming WG
- To: commonloops.pa%xerox.com@SUMEX-AIM.STANFORD.EDU
- Subject: questions from JEIDA Object Oriented Programming WG
- From: toru <shochi.ishida@NTT-20.ARPA>
- Date: Wed, 21 Jan 87 10:39:55
- Cc: ida%todai%NTTLAB.NTT@NTT-20.ARPA, shochi.ishida@NTT-20.ARPA
Let us ask a few more questions.
<<4>>
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.
<<5>>
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
shochi.ishida%ntt-20@sumex-aim.arpa
-------