Hi,
I'm not sure if this is a bug or not. In question is whether or not a
call to an around method whose definition does not contain
CALL-NEXT-METHOD, and for which there's no corresponding primary
method should be an error. On Allegro the following does not produce
an error:
> (defmethod m :around (a) (print "m"))
> (m 1)
"m"
>
But it does on cmucl[1].
That's the simplest example I've found. What really prompts this
inquiry is that we do things like:
(defmethod m :around (a)
(when a
(call-next-method)))
(defmethod m (a integer)
(print a))
On Allegro I can say (m nil) without getting an error but on cmucl I
get a "no primary method" error. The workaround we've been using
requires us to add:
#+cmu
(defmethod m (a null))
Does anyone have any comments on this?
Thanks,
Derek
[1] I'm using an ITA modified version of CMUCL. I think it's based on
19a, but Martin Cracauer would know for sure if it's important.