Previous: , Up: layout bitfid immediate   [Contents][Index]


2.2.2.4 Bit patterns of special objects

The representation in machine words uses the least significant byte:

00000000 00000000 00000000 00001110 value=()      C_SCHEME_END_OF_LIST
00000000 00000000 00000000 00011110 value=(void)  C_SCHEME_UNDEFINED
00000000 00000000 00000000 00101110 unbound-var   C_SCHEME_UNBOUND
00000000 00000000 00000000 00111110 value=#!eof   C_SCHEME_END_OF_FILE

This list is exhaustive: currently there are only four special objects. There is a lot of room for adding other special objects, if that ever becomes necessary.

The “unbound variable” representation cannot be captured by a program: when it is evaluated, it immediately raises an exception; this is its intended function.

The constants: C_SCHEME_END_OF_LIST, C_SCHEME_UNDEFINED, C_SCHEME_UNBOUND, C_SCHEME_END_OF_FILE are preprocessor symbols defined at the C language level, in the header file chicken.h.


Previous: , Up: layout bitfid immediate   [Contents][Index]