From 1ecb59b7f406a2bab9ed67d64d569187e7740159 Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Sun, 22 Apr 2012 21:26:00 +0200 Subject: [PATCH] Create SPECIALIER and EQL-SPECIALIZER as classes without slots --- src/clos/boot.lsp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/clos/boot.lsp b/src/clos/boot.lsp index 824690986..894cb22f9 100644 --- a/src/clos/boot.lsp +++ b/src/clos/boot.lsp @@ -47,6 +47,8 @@ (make-empty-standard-class 'FUNCALLABLE-STANDARD-CLASS standard-class)) (metaobject (make-empty-standard-class 'METAOBJECT standard-class)) + (specializer (make-empty-standard-class 'SPECIALIZER standard-class)) + (eql-specializer (make-empty-standard-class 'EQL-SPECIALIZER standard-class)) (the-class (make-empty-standard-class 'CLASS standard-class)) (the-t (make-empty-standard-class 'T the-class)) ;; It does not matter that we pass NIL instead of a class object, @@ -124,8 +126,11 @@ (class-direct-superclasses standard-object) (list the-t) (class-direct-subclasses standard-object) (list metaobject) (class-direct-superclasses metaobject) (list standard-object) - (class-direct-subclasses metaobject) (list the-class) - (class-direct-superclasses the-class) (list metaobject) + (class-direct-subclasses metaobject) (list specializer) + (class-direct-superclasses specializer) (list metaobject) + (class-direct-subclasses specializer) (list the-class) + (class-direct-superclasses eql-specializer) (list specializer) + (class-direct-superclasses the-class) (list specializer) (class-direct-subclasses the-class) (list std-class) (class-direct-superclasses std-class) (list the-class) (class-direct-superclasses standard-class) (list std-class) @@ -134,6 +139,8 @@ (si::instance-sig-set the-t) (si::instance-sig-set standard-object) (si::instance-sig-set metaobject) + (si::instance-sig-set specializer) + (si::instance-sig-set eql-specializer) (si::instance-sig-set the-class) (si::instance-sig-set std-class) (si::instance-sig-set standard-class) @@ -147,6 +154,10 @@ (setf cpl (list* standard-object cpl)) (class-precedence-list metaobject) (setf cpl (list* metaobject cpl)) + (class-precedence-list specializer) + (setf cpl (list* specializer cpl)) + (class-precedence-list eql-specializer) + (list* eql-specializer cpl) (class-precedence-list the-class) (setf cpl (list* the-class cpl)) (class-precedence-list std-class)