source: trunk/abcl/src/org/armedbear/lisp/mop.lisp @ 13766

Last change on this file since 13766 was 13766, checked in by rschlatte, 9 years ago

export a bunch of required symbols from package "MOP".

File size: 2.4 KB
Line 
1;;;; Does not currently include all the MOP, but it should.
2
3(in-package #:mop)
4
5(defclass funcallable-standard-class (class))
6
7(defmethod class-name ((class funcallable-standard-class))
8  'funcallable-standard-class)
9
10;;; StandardGenericFunction.java defines FUNCALLABLE-INSTANCE-FUNCTION and
11;;; SET-FUNCALLABLE-INSTANCE-FUNCTION.
12;;;
13;;; TODO
14;;;
15;;;   1. Verify that we can make FUNCALLABLE-STANDARD-CLASS instances
16;;;      which work.
17;;;
18;;;   2. Tighten the type checks so that only instances of
19;;;      FUNCALLABLE-STANDARD-CLASS are callable.
20
21(defgeneric validate-superclass (class superclass)
22 (:documentation 
23  "This generic function is called to determine whether the class
24  superclass is suitable for use as a superclass of class."))
25
26;;; TODO Hook VALIDATE-SUPERCLASS into during class metaobject
27;;; initialization and reinitialization. (AMOP p.240-1)
28(defmethod validate-superclass ((class class) (superclass class))
29  (or (eql (class-name superclass) t)
30      (eql (class-name class) (class-name superclass))
31      (or (and (eql (class-name class) 'standard-class)
32               (eql (class-name superclass) 'funcallable-standard-class))
33          (and (eql (class-name class) 'funcallable-standard-class)
34               (eql (class-name superclass) 'standard-class)))))
35
36(export '(funcallable-standard-object
37          funcallable-standard-class
38          forward-referenced-class
39          validate-superclass
40          direct-slot-definition-class
41          effective-slot-definition-class
42          compute-effective-slot-definition
43          compute-class-precedence-list
44          compute-effective-slot-definition
45          compute-slots
46          finalize-inheritance
47          slot-boundp-using-class
48          slot-makunbound-using-class
49
50          ensure-class
51
52          class-default-initargs
53          class-direct-default-initargs
54          class-direct-slots
55          class-direct-subclasses
56          class-direct-superclasses
57          class-finalized-p
58          class-prototype
59         
60          generic-function-lambda-list
61
62          standard-method
63          method-function
64          standard-accessor-method
65          standard-reader-method
66          standard-writer-method
67
68          slot-definition
69          slot-definition-readers
70          slot-definition-writers
71
72          eql-specializer-object
73          extract-lambda-list
74          extract-specializer-names
75
76          intern-eql-specializer))
77
78(provide 'mop)
79
80
81
82
83
Note: See TracBrowser for help on using the repository browser.