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.

Reply via email to