|
|
1.1 root 1: TTTTTTTTT EEEEEEE M M PPPPP L AA TTTTTTTTT EEEEEEE
2: T E MM MM P P L A A T E
3: T EEEEE M M M M PPPPP L AAAAAA T EEEEE
4: T E M M M P L A A T E
5: T EEEEEEE M M P LLLLLL A A T EEEEEEE
6:
7: Structure Definition Information Template
8:
9: Header
10: ||=========================================||
11: || 0 unique number (integer) ||
12: || 1 *pearldefinition* tag (atom ptr) ||
13: || 2 length (integer) ||
14: || 3 default instance (core ptr) ||
15: || 4 isa (core ptr) ||
16: || 5 print name (atom ptr) ||
17: || 6 hash alias (integer) ||
18: || 7 hash focus (integer) ||
19: || 8 expansion list (list ptr) ||
20: || 9 base hooks (lisp ptr) ||
21: ||=========================================||
22:
23: and for each slot (multiply slot number by 4 and add):
24: ||=========================================||
25: || +6 free (28)! enforce (1) ! hash (6) ||
26: || +7 type number (integer) ||
27: || +8 slot print name (atom ptr) ||
28: || +9 pp set info (atom ptr) ||
29: ||=========================================||
30:
31:
32:
33:
34: Structure Instance Template
35:
36: Header
37: ||=========================================||
38: || 0 definition (core ptr) ||
39: || 1 *pearlinst* tag (atom ptr) ||
40: || 2 a-list and alist copy (conscell) ||
41: || 3 abbreviation (atom ptr) ||
42: ||=========================================||
43:
44: and for each slot (multiply slot number by 4 and add):
45: ||=========================================||
46: || +0 value type (integer) ||
47: || +1 value ( ? ptr) ||
48: || +2 predicate list (list ptr) ||
49: || +3 slothook list (list ptr) ||
50: ||=========================================||
51:
52:
53:
54: symbol template
55:
56: ||=========================================||
57: || 0 unique number (integer) ||
58: || 1 *pearlsymbol* tag (atom ptr) ||
59: || 2 print name (atom ptr) ||
60: ||=========================================||
61:
62:
63:
64: data bases
65:
66: header
67: ||=========================================||
68: || 0 name (atom ptr) ||
69: || 1 *pearldb* tag (atom ptr) ||
70: || 2 children (lisp ptr) ||
71: || 3 active (t or nil) ||
72: || 4 parent (lisp ptr) ||
73: || 5 db1 (core ptr) ||
74: || 6 db2 (core ptr) ||
75: ||=========================================||
76:
77: and for each hash slot i (a small 1 hash db and then a large 2/3 hash db):
78: ||=========================================||
79: || i hash bucket (lisp ptr) ||
80: ||=========================================||
81:
82:
83: block template (3 cons-cells)
84:
85: b:Name ---+
86: |
87: ||========V================================||
88: || Name (atom) | ptr to vars part ||
89: ||==========================|==============||
90: |
91: ||==========V==============================||
92: Name ---> || ptr to 2nd conscell | ptr to free vars ||
93: ||==========|==============================||
94: |
95: ||==========V==============================||
96: || ptr to frozen vars | *pearlunbound* ||
97: ||=========================================||
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.