While playing with ACL-COMPAT in GCL, I found that its ASDF file relies on REMOVE-METHOD not signalling an error if the method to remove does not belong to the generic function, as described in entry 201 of GCL's BUGS file.
This patch to CVS HEAD fixes the problem, and makes GCL pass all tests in ansi-tests/remove-method.lsp. Magnus
Index: BUGS =================================================================== RCS file: /sources/gcl/gcl/BUGS,v retrieving revision 1.27 diff -u -r1.27 BUGS --- BUGS 13 Oct 2005 11:21:30 -0000 1.27 +++ BUGS 21 May 2006 01:21:16 -0000 @@ -954,7 +954,7 @@ with other than one argument in safe code. ansi-tests: method-qualifiers.error.[12] -201. remove-method must not signal an error if the method does not belong +201. (FIXED) remove-method must not signal an error if the method does not belong to the generic function. ansi-tests: remove-method.1 Index: pcl/gcl_pcl_methods.lisp =================================================================== RCS file: /sources/gcl/gcl/pcl/gcl_pcl_methods.lisp,v retrieving revision 1.2 diff -u -r1.2 gcl_pcl_methods.lisp --- pcl/gcl_pcl_methods.lisp 7 May 2005 02:52:30 -0000 1.2 +++ pcl/gcl_pcl_methods.lisp 21 May 2006 01:21:32 -0000 @@ -629,10 +629,7 @@ (defun real-remove-method (generic-function method) (if (neq generic-function (method-generic-function method)) - (error "The method ~S is attached to the generic function~@ - ~S. It can't be removed from the generic function~@ - to which it is not attached." - method (method-generic-function method)) + generic-function ;method not found - do nothing (let* ((name (generic-function-name generic-function)) (specializers (method-specializers method)) (methods (generic-function-methods generic-function))
_______________________________________________ Gcl-devel mailing list Gcl-devel@gnu.org http://lists.gnu.org/mailman/listinfo/gcl-devel