A large number of symbols will be pre-defined when a CMU Common Lisp system is fired up. A few of these are so fundamental to the operation of the system that their addresses have to be known to the assembler routines. These symbols are listed here. All of these symbols are in static space, so they will not move around.
NIL
¶9400000016 The value of NIL is always NIL; it is an error to alter it. The plist of NIL is always NIL; it is an error to alter it. NIL is unique among symbols in that it is stored in Cons cell space and thus you can take its CAR and CDR, yielding NIL in either case. NIL has been placed in Cons cell space so that the more common operations on lists will yield the desired results. This slows down some symbol operations but this should be insignificant compared to the savings in list operations. A test for NIL for the IBM RT PC is:
xiu R0,P,X'9400' bz IsNIL or bnz IsNotNIL
T
¶8C00000016 The value of T is always T; it is an error to alter it. A similar sequence of code as for NIL above can test for T, if necessary.
%SP-Internal-Apply
¶8C00001416 The function stored in the definition cell of this symbol is called by an assembler routine whenever compiled code calls an interpreted function.
%SP-Internal-Error
¶8C00002816 The function stored in the definition cell of this symbol is called whenever an error is detected during the execution of an assembler routine. See Errors for details.
%SP-Software-Interrupt-Handler
¶8C00003C16 The function stored in the definition cell of this symbol is called whenever a software interrupt occurs. See Interrupts for details.
%SP-Internal-Throw-Tag
¶8C00005016 This symbol is bound to the tag being thrown when a Catch-All frame is encountered on the stack. See Catch for details.
%Initial-function
¶8c00006416 This symbol’s function cell should contain a function that is called when the initial core image is started. This function should initialize all the data structures that Lisp needs to run.
%Link-table-header
¶8c00007816 This symbol’s value cell contains a pointer to the link table information.
Current-allocation-space
¶8c00008c16 This symbol’s value cell contains an encoded form of the current space that new lisp objects are to be allocated in.
%SP-bignum/fixnum
¶8c0000a016 This function is invoked by the miscops when a division of a bignum by a fixnum results in a ratio.
%SP-bignum/bignum
¶8c0000b416 This function is invoked by the miscops when a division of a fixnum by a bignum results in a ratio.
%SP-bignum/bignum
¶8c0000c816 This function is invoked by the miscops when a division of a bignum by a bignum results in a ratio.
%SP-abs-ratio
¶8c0000dc16 This function is invoked by the miscops when the absolute value of a ratio is taken.
%SP-abs-complex
¶8c0000f016 This function is invoked by the miscops when the absolute value of a complex is taken.
%SP-negate-ratio
¶8c00010416 This function is invoked by the miscops when a ratio is to be negated.
%SP-negate-ratio
¶8c00011816 This function is invoked by the miscops when a complex is to be negated.
%SP-integer+ratio
¶8c00012c16 This function is invoked by the miscops when a fixnum or bignum is added to a ratio.
%SP-ratio+ratio
¶8c00014016 This function is invoked by the miscops when a ratio is added to a ratio.
%SP-complex+number
¶8c00015416 This function is invoked by the miscops when a complex is added to a number.
%SP-number+complex
¶8c00016816 This function is invoked by the miscops when a number is added to a complex.
%SP-complex+complex
¶8c00017c16 This function is invoked by the miscops when a number is added to a complex.
%SP-1+ratio
¶8c00019016 This function is invoked by the miscops when 1 is added to a ratio.
%SP-1+complex
¶8c00019016 This function is invoked by the miscops when 1 is added to a complex.
%SP-ratio-integer
¶8c0001b816 This function is invoked by the miscops when an integer is subtracted from a ratio.
%SP-ratio-ratio
¶8c0001cc16 This function is invoked by the miscops when an ratio is subtracted from a ratio.
%SP-complex-number
¶8c0001e016 This function is invoked by the miscops when a complex is subtracted from a number.
%SP-number-complex
¶8c0001f416 This function is invoked by the miscops when a number is subtracted from a complex.
%SP-complex-complex
¶8c00020816 This function is invoked by the miscops when a complex is subtracted from a complex.
%SP-1-complex
¶8c00023016 This function is invoked by the miscops when 1 is subtracted from a complex.
%SP-ratio*ratio
¶8c00024416 This function is invoked by the miscops to multiply two ratios.
%SP-number*complex
¶8c00025816 This function is invoked by the miscops to multiply a number by a complex.
%SP-complex*number
¶8c00026c16 This function is invoked by the miscops to multiply a complex by a number.
%SP-complex*complex
¶8c00028016 This function is invoked by the miscops to multiply a complex by a complex.
%SP-integer/ratio
¶8c00029416 This function is invoked by the miscops to divide an integer by a ratio.
%SP-ratio/integer
¶8c0002a816 This function is invoked by the miscops to divide a ratio by an integer.
%SP-ratio/ratio
¶8c0002bc16 This function is invoked by the miscops to divide a ratio by a ratio.
%SP-number/complex
¶8c0002d016 This function is invoked by the miscops to divide a number by a complex.
%SP-complex/number
¶8c0002e416 This function is invoked by the miscops to divide a complex by a number.
%SP-complex/complex
¶8c0002f816 This function is invoked by the miscops to divide a complex by a complex.
%SP-integer-truncate-ratio
¶8c00030c16 This function is invoked by the miscops to truncate an integer by a ratio.
%SP-ratio-truncate-integer
¶8c00032016 This function is invoked by the miscops to truncate a ratio by an integer.
%SP-ratio-truncate-ratio
¶8c00033416 This function is invoked by the miscops to truncate a ratio by a ratio.
%SP-number-truncate-complex
¶8c00034816 This function is invoked by the miscops to truncate a number by a complex.
%SP-complex-truncate-number
¶8c00035c16 This function is invoked by the miscops to truncate a complex by a number.
%SP-complex-truncate-complex
¶8c00037016 This function is invoked by the miscops to truncate a complex by a complex.
Maybe-GC
¶8c00038416 This function may be invoked by any miscop that does allocation. This function determines whether it is time to garbage collect or not. If it is it performs a garbage collection. Whether it invokes a garbage collection or not, it returns the single argument passed to it.
Lisp-environment-list
¶8c00039816 The value of this symbol is set to the a list of the Unix environment strings passed into the Lisp process. This list by Lisp to obtain various environment information, such as the user’s home directory, etc.
Call-lisp-from-C
¶8c0003ac16 This function is called whenever a C function called by Lisp tries to call a Lisp function.
Lisp-command-line-list
¶8c0003c016 The value of this symbol is set to the list of strings passed into the Lisp process as the command line.
*Nameserverport*
¶8c0003d416 The value of this symbol is set to the C global variable name_server_port. This allows Lisp to access the name server.
*Ignore-Floating-Point-Underflow*
¶8c0003e816 If the the value of this symbol is NIL then an error is signalled when floating point underflow occurs, otherwise the operation quietly returns zero.