Annotation of 42BSD/ucb/lisp/pearl/template, revision 1.1.1.1

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:                    ||=========================================||

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.