[Openmcl-devel] apparent bug in FIND-METHOD with EQL specializers

Takehiko Abe keke at gol.com
Wed Nov 1 20:43:20 PST 2006


Eric Marsden wrote:

> The following transcript illustrates what I believe is a bug in
> FIND-METHOD when using EQL specializers. The dispatch code seems to
> work; (foo :foo) returns the expected result.
> 
> 
> ,----
> | Welcome to OpenMCL Version 1.1-pre-060720 (Beta: LinuxX8664)!
> | ? (defgeneric foo (a))
> | #<STANDARD-GENERIC-FUNCTION FOO #x300004BF854F>
> | ? (defmethod foo ((a (eql :foo))) 42)
> | #<STANDARD-METHOD FOO ((EQL :FOO))>
> | ? (find-method #'foo nil '((eql :foo)))
> | > Error: #<STANDARD-GENERIC-FUNCTION FOO #x300004BF854F> has no method
> for NIL ((EQL :FOO))
> | > While executing: #<CCL::STANDARD-KERNEL-METHOD FIND-METHOD (STANDARD-
> GENERIC-FUNCTION T T)>, in process listener(1).


I found this:
<http://www.xach.com/lisp/allegro-cl/1998-7/647.html>

? (find-method #'foo nil (list (intern-eql-specializer :foo)))
#<STANDARD-METHOD FOO ((EQL :FOO))>

I guess it is one of mop changes.





More information about the Openmcl-devel mailing list