Annotation of 42BSD/ucb/lisp/pearl/template, revision 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.