diff --git a/src/CHANGELOG b/src/CHANGELOG index 1076e9d56..e07c31d0b 100644 --- a/src/CHANGELOG +++ b/src/CHANGELOG @@ -1,24 +1,10 @@ -ECL 9.4.2: -========== +ECL 9.5: +======== * MOP: - - ALLOCATE-INSTANCE admits additional arguments which are the instance - initialization arguments. - - - MAKE-INSTANCE passes the completed initargs to ALLOCATE-INSTANCE. - - - MAKE-INSTANCE ensures that the class is finalized before allocating the - instance. - -ECL 9.4.1: -========== - -* Bugs fixed: - - - Symbol NIL was not exported from the GRAY package. - - - GRAY:STREAM-PEEK-CHAR was not used at all by ECL. + - CALL-METHOD has only one required argument. Affects only calls to this + macro inside nonstandard method combinations. ;;; Local Variables: *** ;;; mode:text *** diff --git a/src/clos/combin.lsp b/src/clos/combin.lsp index 6fb4202ce..73ef60f9f 100644 --- a/src/clos/combin.lsp +++ b/src/clos/combin.lsp @@ -87,10 +87,10 @@ (declare (ignorable no-next-methods)) (funcall method .combined-method-args. rest-methods))) -(defmacro call-method (method rest-methods) +(defmacro call-method (method &optional rest-methods) `(funcall ,(effective-method-function method) .combined-method-args. - ',(mapcar #'effective-method-function rest-methods))) + ',(and rest-methods (mapcar #'effective-method-function rest-methods)))) (defun call-next-method (&rest args) (declare (special .combined-method-args. *next-methods*)) @@ -247,7 +247,8 @@ (syntax-error)) (let ((condition (cond ((eql predicate '*) 'T) - ((symbolp predicate) `(,predicate .METHOD-QUALIFIERS.)) + ((and predicate (symbolp predicate)) + `(,predicate .METHOD-QUALIFIERS.)) ((and (listp predicate) (let* ((q (last predicate 0)) (p (copy-list (butlast predicate 0))))