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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
Primary data types:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx010 Number
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx100 Symbol
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx000 Pair
Number
|
V
+-----+-----+
| DIG | | |
+-----+--+--+
|
V
+-----+-----+
| DIG | | |
+-----+--+--+
|
V
+-----+-----+
| DIG | / |
+-----+-----+
Pair
|
V
+-----+-----+
| CAR | CDR |
+-----+-----+
Symbol
|
V
+-----+-----+
| | | VAL |
+--+--+-----+
| tail
|
V name
+-----+-----+ +-----+-----+ +-----+-----+ +-----+-----+
| | | ---+---> | KEY | ---+---> | | | ---+---> |'cba'| / |
+--+--+-----+ +-----+-----+ +--+--+-----+ +-----+-----+
| |
V V
+-----+-----+ +-----+-----+
| VAL | KEY | | VAL | KEY |
+-----+-----+ +-----+-----+
NIL: /
|
V
+-----+-----+-----+-----+
| / | / | / | / |
+-----+--+--+-----+-----+
External Symbols:
+-------------+-+-------------+-+----+
Block 0: | Free 0| Next 0| << |
+-------------+-+-------------+-+----+
0 BLK 2*Blk+1
+-------------+-+
Free: | Link 0|
+-------------+-+
0
+-------------+-+----
ID-Block: | Link 1| Data
+-------------+-+----
0 BLK
+-------------+-+----
EXT-Block: | Link n| Data
+-------------+-+----
0 BLK
Assumptions:
- 8 bits per byte
- word: sizeof(void*) == sizeof(unsigned long)
- word2: sizeof(unsigned long long) == 2 * sizeof(unsigned long)
- gcc
Functions aligned to 4-byte boundaries
Zero- or variable-length arrays
Conditionals with Omitted Operands
Unused argument attributes
Noreturn attributes
|