PREV UP next SCM

6.1.7: Data Type Representations

IMMEDIATE:      B,D,E,F=data bit, C=flag code, P=pointer address bit
        ................................ inum    BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB10 ichr    BBBBBBBBBBBBBBBBBBBBBBBB11110100 iflag                   CCCCCCC101110100 isym                    CCCCCCC001110100
        IMCAR:  only in car of evaluated code, cdr has cell's GC bit
ispcsym                 000CCCC00CCCC100 iloc    0DDDDDDDDDDDEFFFFFFFFFFF11111100 pointer PPPPPPPPPPPPPPPPPPPPPPPPPPPPP000 gloc    PPPPPPPPPPPPPPPPPPPPPPPPPPPPP001

   HEAP CELL:   G=gc_mark; 1 during mark, 0 other times.         1s and 0s here indicate type.     G missing means sys (not GC'd)         SIMPLE:
cons    ..........SCM car..............0  ...........SCM cdr.............G closure ..........SCM code...........011  ...........SCM env.............G         HEADERs: ssymbol .........long length....G0000101  ..........char *chars........... msymbol .........long length....G0000111  ..........char *chars........... string  .........long length....G0001101  ..........char *chars........... vector  .........long length....G0001111  ...........SCM **elts........... bvect   .........long length....G0010101  ..........long *words...........  spare                          G0010111 ivect   .........long length....G0011101  ..........long *words........... uvect   .........long length....G0011111  ......unsigned long *words......  spare                          G0100101  spare                          G0100111 fvect   .........long length....G0101101  .........float *words........... dvect   .........long length....G0101111  ........double *words........... cvect   .........long length....G0110101  ........double *words...........  contin  .........long length....G0111101  .............*regs.............. cclo    .........long length....G0111111  ...........SCM **elts...........
        SUBRs:
 spare                          010001x1  spare                          010011x1 subr_0  ..........int hpoff.....01010101  ...........SCM (*f)()........... subr_1  ..........int hpoff.....01010111  ...........SCM (*f)()........... cxr     ..........int hpoff.....01011101  .........double (*f)().......... subr_3  ..........int hpoff.....01011111  ...........SCM (*f)()........... subr_2  ..........int hpoff.....01100101  ...........SCM (*f)()........... asubr   ..........int hpoff.....01100111  ...........SCM (*f)()........... subr_1o ..........int hpoff.....01101101  ...........SCM (*f)()........... subr_2o ..........int hpoff.....01101111  ...........SCM (*f)()........... lsubr_2 ..........int hpoff.....01110101  ...........SCM (*f)()........... rpsubr  ..........int hpoff.....01111101  ...........SCM (*f)()...........
                        PTOBs:
   port            0bwroxxxxxxxxG1110111  ..........FILE *stream..........  socket ttttttt    00001xxxxxxxxG1110111  ..........FILE *stream..........  inport uuuuuuuuuuU00011xxxxxxxxG1110111  ..........FILE *stream.......... outport 0000000000000101xxxxxxxxG1110111  ..........FILE *stream..........  ioport uuuuuuuuuuU00111xxxxxxxxG1110111  ..........FILE *stream.......... fport              00   00000000G1110111  ..........FILE *stream.......... pipe               00   00000001G1110111  ..........FILE *stream.......... strport            00   00000010G1110111  ..........FILE *stream.......... sfport             00   00000011G1110111  ..........FILE *stream..........
                        SMOBs:
free_cell         000000000000000000000000G1111111  ...........*free_cell........000 flo     000000000000000000000001G1111111  ...........float num............ dblr    000000000000000100000001G1111111  ..........double *real.......... dblc    000000000000001100000001G1111111  .........complex *cmpx.......... bignum  ...int length...0000001 G1111111  .........short *digits.......... bigpos  ...int length...00000010G1111111  .........short *digits.......... bigneg  ...int length...00000011G1111111  .........short *digits..........                         xxxxxxxx = code assigned by newsmob(); promise 000000000000000fxxxxxxxxG1111111  ...........SCM val.............. arbiter 000000000000000lxxxxxxxxG1111111  ...........SCM name............. macro   000000000000000mxxxxxxxxG1111111  ...........SCM name............. array   ...short rank..cxxxxxxxxG1111111  ............*array..............