mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-16 22:32:05 -08:00
standard-generic-function and standard-method are now in boot.lsp
This commit is contained in:
parent
f79a276452
commit
a691f4cc5b
2 changed files with 7 additions and 24 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue