|
|
BSD 4.3
APPENDIX B
Special Symbols
The values of these symbols have a predefined meaning.
Some values are counters while others are simply flags whose
value the user can change to affect the operation of lisp
system. In all cases, only the value cell of the symbol is
important, the function cell is not. The value of some of
the symbols (like ER%misc) are functions - what this means
is that the value cell of those symbols either contains a
lambda expression, a binary object, or symbol with a func-
tion binding.
The values of the special symbols are:
$gccount$ - The number of garbage collections which have
occurred.
$gcprint - If bound to a non nil value, then after each
garbage collection and subsequent storage allocation a
summary of storage allocation will be printed.
$ldprint - If bound to a non nil value, then during each
_f_a_s_l or _c_f_a_s_l a diagnostic message will be printed.
ER%all - The function which is the error handler for all
errors (see 10)
ER%brk - The function which is the handler for the error
signal generated by the evaluation of the _b_r_e_a_k func-
tion (see 10).
ER%err - The function which is the handler for the error
signal generated by the evaluation of the _e_r_r function
(see 10).
ER%misc - The function which is the handler of the error
signal generated by one of the unclassified errors (see
10). Most errors are unclassified at this point.
ER%tpl - The function which is the handler to be called when
an error has occurred which has not been handled (see
10).
ER%undef - The function which is the handler for the error
signal generated when a call to an undefined function
is made.
9
9 B-1
B-2
^w - When bound to a non nil value this will prevent output
to the standard output port (poport) from reaching the
standard output (usually a terminal). Note that ^w is
a two character symbol and should not be confused with
^W which is how we would denote control-w. The value
of ^w is checked when the standard output buffer is
flushed which occurs after a _t_e_r_p_r, _d_r_a_i_n or when the
buffer overflows. This is most useful in conjunction
with ptport described below. System error handlers
rebind ^w to nil when they are invoked to assure that
error messages are not lost. (This was introduced for
Maclisp compatibility).
defmacro-for-compiling - The has an effect during compila-
tion. If non-nil it causes macros defined by defmacro
to be compiled and included in the object file.
environment - The UNIX environment in assoc list form.
errlist - When a _r_e_s_e_t is done, the value of errlist is
saved away and control is thrown to the top level.
_E_v_a_l is then mapped over the saved away value of this
list.
errport - This port is initially bound to the standard error
file.
evalhook - The value of this symbol, if bound, is the name
of a function to handle evalhook traps (see 14.4)
float-format - The value of this symbol is a string which is
the format to be used by print to print flonums. See
the documentation on the UNIX function printf for a
list of allowable formats.
funcallhook - The value of this symbol, if bound, is the
name of a function to handle funcallhook traps (see
14.4).
gcdisable - If non nil, then garbage collections will not be
done automatically when a collectable data type runs
out.
ibase - This is the input radix used by the lisp reader. It
may be either eight or ten. Numbers followed by a
decimal point are assumed to be decimal regardless of
what ibase is.
linel - The line length used by the pretty printer, pp.
This should be used by _p_r_i_n_t but it is not at this
time.
nil - This symbol represents the null list and thus can be
Printed: July 21, 1983
B-3
written (). Its value is always nil. Any attempt to
change the value will result in an error.
piport - Initially bound to the standard input (usually the
keyboard). A read with no arguments reads from piport.
poport - Initially bound to the standard output (usually the
terminal console). A print with no second argument
writes to poport. See also: ^w and ptport.
prinlength - If this is a positive fixnum, then the _p_r_i_n_t
function will print no more than prinlength elements of
a list or hunk and further elements abbreviated as
`...'. The initial value of prinlength is nil.
prinlevel - If this is a positive fixnum, then the _p_r_i_n_t
function will print only prinlevel levels of nested
lists or hunks. Lists below this level will be abbre-
viated by `&' and hunks below this level will be abbre-
viated by a `%'. The initial value of prinlevel is
nil.
ptport - Initially bound to nil. If bound to a port, then
all output sent to the standard output will also be
sent to this port as long as this port is not also the
standard output (as this would cause a loop). Note
that ptport will not get a copy of whatever is sent to
poport if poport is not bound to the standard output.
readtable - The value of this is the current readtable. It
is an array but you should NOT try to change the value
of the elements of the array using the array functions.
This is because the readtable is an array of bytes and
the smallest unit the array functions work with is a
full word (4 bytes). You can use _s_e_t_s_y_n_t_a_x to change
the values and (_s_t_a_t_u_s _s_y_n_t_a_x ...) to read the values.
t - This symbol always has the value t. It is possible to
change the value of this symbol for short periods of
time but you are strongly advised against it.
top-level - In a lisp system without
/usr/lib/lisp/toplevel.l loaded, after a _r_e_s_e_t is done,
the lisp system will _f_u_n_c_a_l_l the value of top-level if
it is non nil. This provides a way for the user to
introduce his own top level interpreter. When
/usr/lib/lisp/toplevel.l is loaded, it sets top-level
to franz-top-level and changes the _r_e_s_e_t function so
that once franz-top-level starts, it cannot be replaced
by changing top-level. Franz-top-level does provide a
way of changing the top level however, and that is
through user-top-level.
9
9 Printed: July 21, 1983
B-4
user-top-level - If this is bound then after a _r_e_s_e_t, the
top level function will _f_u_n_c_a_l_l the value of this sym-
bol rather than go through a read eval print loop.
9
9 Printed: July 21, 1983
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.