diff --git a/general-info/release-19a.txt b/general-info/release-19a.txt index 1560a622777d27aa0dbf892b4ab0444103524b54..f3d10b550056a3530e209818040c04eb0994e08a 100644 --- a/general-info/release-19a.txt +++ b/general-info/release-19a.txt @@ -180,6 +180,12 @@ New in this release: all methods returned constant values, and some methods were qualified, or the generic function didn't use the standard method combination. + - For standard method combination and method combinations defined + with the short form of DEFINE-METHOD-COMBINATION: If there are + no applicable primary methods when a generic function is + called, the generic function PCL:NO-PRIMARY-METHOD is called. + The default method of this generic function signals a + continuable error of type PCL:NO-PRIMARY-METHOD-ERROR. * Improvements to Hemlock, the Emacs-like editor: diff --git a/pcl/defcombin.lisp b/pcl/defcombin.lisp index 1255c736bb5a3c704b048aa88f90727346045a3d..b819a7757244c7751bf4e1a7fa3ba2997705cb89 100644 --- a/pcl/defcombin.lisp +++ b/pcl/defcombin.lisp @@ -25,7 +25,7 @@ ;;; ************************************************************************* (file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/defcombin.lisp,v 1.23 2003/05/04 13:11:22 gerd Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/defcombin.lisp,v 1.24 2003/06/17 09:45:40 gerd Exp $") (in-package :pcl) @@ -174,7 +174,7 @@ :definition-source method :documentation doc)) -(defmethod compute-effective-method ((generic-function generic-function) +(defmethod compute-effective-method ((gf generic-function) (combin short-method-combination) applicable-methods) (let ((type (method-combination-type combin)) @@ -215,8 +215,7 @@ `(,operator ,@(mapcar (lambda (m) `(call-method ,m ())) primary))))) (cond ((null primary) - `(error "~@<No ~S methods for the generic function ~S.~@:>" - ',type ',generic-function)) + `(%no-primary-method ',gf .args.)) ((null around) main-method) (t `(call-method ,(car around) diff --git a/pcl/pkg.lisp b/pcl/pkg.lisp index a1b0259625cd3c37628572bca8927a6a64f764e2..37f6a2e88b472e11c3e451056d30d1c428fd373a 100644 --- a/pcl/pkg.lisp +++ b/pcl/pkg.lisp @@ -26,7 +26,7 @@ ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/pkg.lisp,v 1.27 2003/05/28 10:41:47 gerd Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/pkg.lisp,v 1.28 2003/06/17 09:45:40 gerd Exp $") ;;; ;;; CMUCL 18a: Jan-1998 -- Changing to DEFPACKAGE. @@ -98,7 +98,8 @@ (:export "EFFECTIVE-METHOD" "FAST-METHOD" "SLOT-ACCESSOR" "CLASS-PREDICATE") - (:export "FLUSH-EMF-CACHE") + (:export "FLUSH-EMF-CACHE" "NO-PRIMARY-METHOD" + "NO-PRIMARY-METHOD-ERROR") (:export "STANDARD-INSTANCE" "FUNCALLABLE-STANDARD-INSTANCE"