From a691f4cc5b372bbdc9ea906056ee062a8ab7bba9 Mon Sep 17 00:00:00 2001 From: Juanjo Garcia-Ripoll Date: Fri, 5 Oct 2012 17:05:54 +0200 Subject: [PATCH] standard-generic-function and standard-method are now in boot.lsp --- src/clos/boot.lsp | 8 +++++++- src/clos/stdmethod.lsp | 23 ----------------------- 2 files changed, 7 insertions(+), 24 deletions(-) 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)