diff --git a/src/clos/boot.lsp b/src/clos/boot.lsp index 75b1f47ae..7e9f3a640 100644 --- a/src/clos/boot.lsp +++ b/src/clos/boot.lsp @@ -152,8 +152,15 @@ (generic-function :metaclass funcallable-standard-class :direct-superclasses (metaobject funcallable-standard-object)) + (standard-generic-function + :direct-superclasses (generic-function) + :direct-slots #.(canonical-slots +standard-generic-function-slots+) + :metaclass funcallable-standard-class) (method :direct-superclasses (metaobject)) + (standard-method + :direct-superclasses (method) + :direct-slots #.(canonical-slots +standard-method-slots+)) ))) ;;; ---------------------------------------------------------------------- @@ -164,7 +171,6 @@ (defun make-empty-standard-class (name &key (metaclass 'standard-class) direct-superclasses direct-slots index) - (declare (si::c-local)) (let* ((the-metaclass (and metaclass (gethash metaclass si::*class-name-hash-table*))) (class (or (gethash name si::*class-name-hash-table*) (si:allocate-raw-instance nil the-metaclass diff --git a/src/clos/stdmethod.lsp b/src/clos/stdmethod.lsp index 25b84fcbc..4c145574a 100644 --- a/src/clos/stdmethod.lsp +++ b/src/clos/stdmethod.lsp @@ -11,33 +11,10 @@ (in-package "CLOS") -;;; ---------------------------------------------------------------------- -;;; Funcallable object -;;; ---------------------------------------------------------------------- - -(defclass funcallable-standard-object (standard-object function) ()) - -;;; ---------------------------------------------------------------------- -;;; Generic Functions -;;; ---------------------------------------------------------------------- - -(defclass generic-function (metaobject funcallable-standard-object) () - (:metaclass 'funcallable-standard-class)) - -(defclass standard-generic-function (generic-function) - #.(remove-accessors +standard-generic-function-slots+) - (:metaclass 'funcallable-standard-class)) - ;;;---------------------------------------------------------------------- ;;; Method ;;; ---------------------------------------------------------------------- -(defclass method (metaobject) ()) - -(defclass standard-method (method) - #.(remove-accessors +standard-method-slots+)) - - (defun function-keywords (method) (multiple-value-bind (reqs opts rest-var key-flag keywords) (si::process-lambda-list (slot-value method 'lambda-list) 'function)