- /* It would be better to put the mark-bit together with the
- following datatype identification field in an 8- or 16-bit
- integer rather than playing funny games with changing
- header->implementation and "wasting" 32 bits on the below
- pointer. The type-id would then be a 7 or 15 bit index into a
- table of lrecord-implementations rather than a direct pointer.
- There would be 24 (or 16) bits left over for datatype-specific
- per-instance flags.
-
- The below is the simplest thing to do for the present,
- and doesn't incur that much overhead as most Emacs records
- are of such a size that the overhead isn't too bad.
- (The marker datatype is the worst case.)
-
- It also has the very very very slight advantage that type-checking
- involves one memory read (of the "implementation" slot) and a
- comparison against a link-time constant address rather than a
- read and a comparison against a variable value. (Variable since
- it is a very good idea to assign the indices into the hypothetical
- type-code table dynamically rather that pre-defining them.)
- I think I remember that Elk Lisp does something like this.
- Gee, I wonder if some cretin has patented it? */
-
- /*
- * If USE_INDEXED_LRECORD_IMPLEMENTATION is defined, we are
- * implementing the scheme described in the 'It would be better
- * ...' paragraph above.
- */
-#ifdef USE_INDEXED_LRECORD_IMPLEMENTATION