summaryrefslogtreecommitdiff
path: root/doc/ref/mop.text
blob: 0180f2c1e89d71043adca82789003e5cb09e7c53 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
*** NOTE: This information needs updating! ***

P - procedure
L - local procedure
S - syntax
G - generic
M - method

define-class (S)
  make-class (S)
    ensure-metaclass (P)
      ensure-metaclass-with-supers (P)
        make (G)
    ensure-class (P)
      make (G)
      class-redefinition (G)
        remove-class-accessors (G)
	update-direct-method (G)
	update-direct-subclass (G)

define-generic (S)
  make-generic-function (S)
    ensure-generic-function (P)
      make (G)

define-method (S)
  ensure-method (P)
    ensure-generic-function (P)
      make (G)
    make (G)
    add-method (P)

method (S)
  ensure-method (P)

initialize (class) (M)
  compute-cpl (P)
  compute-slots (G)
  compute-getters-n-setters (P)
    compute-slot-init-function (L)
    compute-get-n-set (G)
  compute-slot-accessors (P)
    ensure-method (P)
  %inherit-magic! (P)
  %prep-layout! (P)

initialize (generic) (M)
  make (G)

change-class (G)
  change-object-class (P)
    update-instance-for-different-class (G)

make = make-instance (G)
  allocate-instance (G)
    %allocate-instance (P)
  initialize (G)
    %initialize-object (P)

apply-generic (G)
  compute-applicable-methods (G)
    find-method (P)
  sort-applicable-methods (G)
    sort (P)
  apply-methods (G)
    apply-method (G)