BSD 4_3 development
[unix-history] / usr / lib / lisp / manual / chb.r
CommitLineData
f9a8037d
C
1
2
3
4
5
6
7
8 APPENDIX B
9
10
11 Special Symbols
12
13
14
15
16 The values of these symbols have a predefined meaning.
17Some values are counters while others are simply flags whose
18value the user can change to affect the operation of lisp
19system. In all cases, only the value cell of the symbol is
20important, the function cell is not. The value of some of
21the symbols (like ER%misc) are functions - what this means
22is that the value cell of those symbols either contains a
23lambda expression, a binary object, or symbol with a func-
24tion binding.
25
26 The values of the special symbols are:
27
28$gccount$ - The number of garbage collections which have
29 occurred.
30
31$gcprint - If bound to a non nil value, then after each
32 garbage collection and subsequent storage allocation a
33 summary of storage allocation will be printed.
34
35$ldprint - If bound to a non nil value, then during each
36 _\bf_\ba_\bs_\bl or _\bc_\bf_\ba_\bs_\bl a diagnostic message will be printed.
37
38ER%all - The function which is the error handler for all
39 errors (see 10)
40
41ER%brk - The function which is the handler for the error
42 signal generated by the evaluation of the _\bb_\br_\be_\ba_\bk func-
43 tion (see 10).
44
45ER%err - The function which is the handler for the error
46 signal generated by the evaluation of the _\be_\br_\br function
47 (see 10).
48
49ER%misc - The function which is the handler of the error
50 signal generated by one of the unclassified errors (see
51 10). Most errors are unclassified at this point.
52
53ER%tpl - The function which is the handler to be called when
54 an error has occurred which has not been handled (see
55 10).
56
57ER%undef - The function which is the handler for the error
58 signal generated when a call to an undefined function
59 is made.
60\e9
61
62\e9 B-1
63
64
65
66
67
68
69
70 B-2
71
72
73^w - When bound to a non nil value this will prevent output
74 to the standard output port (poport) from reaching the
75 standard output (usually a terminal). Note that ^w is
76 a two character symbol and should not be confused with
77 ^W which is how we would denote control-w. The value
78 of ^w is checked when the standard output buffer is
79 flushed which occurs after a _\bt_\be_\br_\bp_\br, _\bd_\br_\ba_\bi_\bn or when the
80 buffer overflows. This is most useful in conjunction
81 with ptport described below. System error handlers
82 rebind ^w to nil when they are invoked to assure that
83 error messages are not lost. (This was introduced for
84 Maclisp compatibility).
85
86defmacro-for-compiling - The has an effect during compila-
87 tion. If non-nil it causes macros defined by defmacro
88 to be compiled and included in the object file.
89
90environment - The UNIX environment in assoc list form.
91
92errlist - When a _\br_\be_\bs_\be_\bt is done, the value of errlist is
93 saved away and control is thrown to the top level.
94 _\bE_\bv_\ba_\bl is then mapped over the saved away value of this
95 list.
96
97errport - This port is initially bound to the standard error
98 file.
99
100evalhook - The value of this symbol, if bound, is the name
101 of a function to handle evalhook traps (see 14.4)
102
103float-format - The value of this symbol is a string which is
104 the format to be used by print to print flonums. See
105 the documentation on the UNIX function printf for a
106 list of allowable formats.
107
108funcallhook - The value of this symbol, if bound, is the
109 name of a function to handle funcallhook traps (see
110 14.4).
111
112gcdisable - If non nil, then garbage collections will not be
113 done automatically when a collectable data type runs
114 out.
115
116ibase - This is the input radix used by the lisp reader. It
117 may be either eight or ten. Numbers followed by a
118 decimal point are assumed to be decimal regardless of
119 what ibase is.
120
121linel - The line length used by the pretty printer, pp.
122 This should be used by _\bp_\br_\bi_\bn_\bt but it is not at this
123 time.
124
125nil - This symbol represents the null list and thus can be
126
127
128 Printed: July 21, 1983
129
130
131
132
133
134
135
136 B-3
137
138
139 written (). Its value is always nil. Any attempt to
140 change the value will result in an error.
141
142piport - Initially bound to the standard input (usually the
143 keyboard). A read with no arguments reads from piport.
144
145poport - Initially bound to the standard output (usually the
146 terminal console). A print with no second argument
147 writes to poport. See also: ^w and ptport.
148
149prinlength - If this is a positive fixnum, then the _\bp_\br_\bi_\bn_\bt
150 function will print no more than prinlength elements of
151 a list or hunk and further elements abbreviated as
152 `...'. The initial value of prinlength is nil.
153
154prinlevel - If this is a positive fixnum, then the _\bp_\br_\bi_\bn_\bt
155 function will print only prinlevel levels of nested
156 lists or hunks. Lists below this level will be abbre-
157 viated by `&' and hunks below this level will be abbre-
158 viated by a `%'. The initial value of prinlevel is
159 nil.
160
161ptport - Initially bound to nil. If bound to a port, then
162 all output sent to the standard output will also be
163 sent to this port as long as this port is not also the
164 standard output (as this would cause a loop). Note
165 that ptport will not get a copy of whatever is sent to
166 poport if poport is not bound to the standard output.
167
168readtable - The value of this is the current readtable. It
169 is an array but you should NOT try to change the value
170 of the elements of the array using the array functions.
171 This is because the readtable is an array of bytes and
172 the smallest unit the array functions work with is a
173 full word (4 bytes). You can use _\bs_\be_\bt_\bs_\by_\bn_\bt_\ba_\bx to change
174 the values and (_\bs_\bt_\ba_\bt_\bu_\bs _\bs_\by_\bn_\bt_\ba_\bx ...) to read the values.
175
176t - This symbol always has the value t. It is possible to
177 change the value of this symbol for short periods of
178 time but you are strongly advised against it.
179
180top-level - In a lisp system without
181 /usr/lib/lisp/toplevel.l loaded, after a _\br_\be_\bs_\be_\bt is done,
182 the lisp system will _\bf_\bu_\bn_\bc_\ba_\bl_\bl the value of top-level if
183 it is non nil. This provides a way for the user to
184 introduce his own top level interpreter. When
185 /usr/lib/lisp/toplevel.l is loaded, it sets top-level
186 to franz-top-level and changes the _\br_\be_\bs_\be_\bt function so
187 that once franz-top-level starts, it cannot be replaced
188 by changing top-level. Franz-top-level does provide a
189 way of changing the top level however, and that is
190 through user-top-level.
191\e9
192
193\e9 Printed: July 21, 1983
194
195
196
197
198
199
200
201 B-4
202
203
204user-top-level - If this is bound then after a _\br_\be_\bs_\be_\bt, the
205 top level function will _\bf_\bu_\bn_\bc_\ba_\bl_\bl the value of this sym-
206 bol rather than go through a read eval print loop.
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256\e9
257
258\e9 Printed: July 21, 1983
259
260
261