diff --git a/docs/internals/object.tex b/docs/internals/object.tex index 82b4988c47d559180ac2142072915768f08a178f..a6a3deafa9fca83c77d17ef5b2e2259df01a8397 100644 --- a/docs/internals/object.tex +++ b/docs/internals/object.tex @@ -224,7 +224,8 @@ bits, including the other-immediate tag, so we can think of the type bits as one type -- not an other-immediate major type and a subtype. Also, fetching a byte and comparing it against a constant is more efficient than wasting even a small amount of time shifting out the other-immediate tag to compare against a -five bit constant. +five bit constant. (The current values can be obtained from the +generated \code{internals.h} file.) \begin{verbatim} HEX Number (< 36) @@ -232,52 +233,56 @@ Number (< 36) ratio 14 0E single-float 18 12 double-float 22 16 - complex 26 1A - (complex single-float) 30 1E - (complex double-float) 34 22 - -Array (>= 38 code 118) - Simple-Array (>= 38 code 102) - simple-array 38 26 - Vector (>= 42 code 114) - simple-string 42 2A - simple-bit-vector 46 2E - simple-vector 50 32 - (simple-array (unsigned-byte 2) (*)) 54 36 - (simple-array (unsigned-byte 4) (*)) 58 3A - (simple-array (unsigned-byte 8) (*)) 62 3E - (simple-array (unsigned-byte 16) (*)) 66 42 - (simple-array (unsigned-byte 32) (*)) 70 46 - (simple-array (signed-byte 8) (*)) 74 4A - (simple-array (signed-byte 16) (*)) 78 4E - (simple-array (signed-byte 30) (*)) 82 52 - (simple-array (signed-byte 32) (*)) 86 56 - (simple-array single-float (*)) 90 5A - (simple-array double-float (*)) 94 5E - (simple-array (complex single-float) (*) 98 62 - (simple-array (complex double-float) (*) 102 66 - complex-string 106 6A - complex-bit-vector 110 6E - (array * (*)) -- general complex vector. 114 72 - complex-array 118 76 - -code-header-type 122 7A -function-header-type 126 7E -closure-header-type 130 82 -funcallable-instance-header-type 134 86 -unused-function-header-1-type 138 8A -unused-function-header-2-type 142 8E -unused-function-header-3-type 146 92 -closure-function-header-type 150 96 -return-pc-header-type (a.k.a LRA) 154 9A -value-cell-header-type 158 9E -symbol-header-type 162 A2 -base-character-type 166 A6 -system-area-pointer-type (header type) 170 AA -unbound-marker 174 AE -weak-pointer-type 178 B2 -structure-header-type 182 B6 -fdefn-type 186 BA + double-double-float 26 1A + complex 30 1E + (complex single-float) 34 22 + (complex double-float) 38 26 + (complex double-double-float) 42 2A + +Array (<= 46 code 118) + Simple-Array (<= 46 code 118) + simple-array 46 2E + Vector (<= 50 code 118) + simple-string 50 32 + simple-bit-vector 54 36 + simple-vector 58 3A + (simple-array (unsigned-byte 2) (*)) 62 3E + (simple-array (unsigned-byte 4) (*)) 66 42 + (simple-array (unsigned-byte 8) (*)) 70 46 + (simple-array (unsigned-byte 16) (*)) 74 4A + (simple-array (unsigned-byte 32) (*)) 78 4E + (simple-array (signed-byte 8) (*)) 82 52 + (simple-array (signed-byte 16) (*)) 86 56 + (simple-array (signed-byte 30) (*)) 90 5A + (simple-array (signed-byte 32) (*)) 94 5E + (simple-array single-float (*)) 98 62 + (simple-array double-float (*)) 102 66 + (simple-array double-double-float (*)) 106 6A + (simple-array (complex single-float) (*) 110 6E + (simple-array (complex double-float) (*) 114 72 + (simple-array (complex double-double) (*) 118 76 + complex-string 122 7A + complex-bit-vector 126 7E + (array * (*)) -- general complex vector. 130 82 + complex-array 134 86 + +code-header-type 138 8A +function-header-type 142 8E +closure-header-type 146 92 +funcallable-instance-header-type 150 96 +byte-code-function-header-type 154 9A +byte-code-closure-header-type 158 9E +closure-function-header-type 162 A2 +return-pc-header-type (a.k.a LRA) 166 A6 +value-cell-header-type 170 AA +symbol-header-type 174 AE +base-character-type 178 B2 +system-area-pointer-type (header type) 182 B6 +unbound-marker 186 BA +weak-pointer-type 190 BE +instance-header-type 194 C2 +fdefn-type 198 C6 +scavenger-hook-type 202 CA \end{verbatim} \section{Strings}