|
|
1.1 root 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.
17: Some values are counters while others are simply flags whose
18: value the user can change to affect the operation of lisp
19: system. In all cases, only the value cell of the symbol is
20: important, the function cell is not. The value of some of
21: the symbols (like ER%misc) are functions - what this means
22: is that the value cell of those symbols either contains a
23: lambda expression, a binary object, or symbol with a func-
24: tion 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: _f_a_s_l or _c_f_a_s_l a diagnostic message will be printed.
37:
38: ER%all - The function which is the error handler for all
39: errors (see 10)
40:
41: ER%brk - The function which is the handler for the error
42: signal generated by the evaluation of the _b_r_e_a_k func-
43: tion (see 10).
44:
45: ER%err - The function which is the handler for the error
46: signal generated by the evaluation of the _e_r_r function
47: (see 10).
48:
49: ER%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:
53: ER%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:
57: ER%undef - The function which is the handler for the error
58: signal generated when a call to an undefined function
59: is made.
60: 9
61:
62: 9 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 _t_e_r_p_r, _d_r_a_i_n 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:
86: defmacro-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:
90: environment - The UNIX environment in assoc list form.
91:
92: errlist - When a _r_e_s_e_t is done, the value of errlist is
93: saved away and control is thrown to the top level.
94: _E_v_a_l is then mapped over the saved away value of this
95: list.
96:
97: errport - This port is initially bound to the standard error
98: file.
99:
100: evalhook - The value of this symbol, if bound, is the name
101: of a function to handle evalhook traps (see 14.4)
102:
103: float-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:
108: funcallhook - The value of this symbol, if bound, is the
109: name of a function to handle funcallhook traps (see
110: 14.4).
111:
112: gcdisable - If non nil, then garbage collections will not be
113: done automatically when a collectable data type runs
114: out.
115:
116: ibase - 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:
121: linel - The line length used by the pretty printer, pp.
122: This should be used by _p_r_i_n_t but it is not at this
123: time.
124:
125: nil - 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:
142: piport - Initially bound to the standard input (usually the
143: keyboard). A read with no arguments reads from piport.
144:
145: poport - 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:
149: prinlength - If this is a positive fixnum, then the _p_r_i_n_t
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:
154: prinlevel - If this is a positive fixnum, then the _p_r_i_n_t
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:
161: ptport - 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:
168: readtable - 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 _s_e_t_s_y_n_t_a_x to change
174: the values and (_s_t_a_t_u_s _s_y_n_t_a_x ...) to read the values.
175:
176: t - 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:
180: top-level - In a lisp system without
181: /usr/lib/lisp/toplevel.l loaded, after a _r_e_s_e_t is done,
182: the lisp system will _f_u_n_c_a_l_l 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 _r_e_s_e_t 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: 9
192:
193: 9 Printed: July 21, 1983
194:
195:
196:
197:
198:
199:
200:
201: B-4
202:
203:
204: user-top-level - If this is bound then after a _r_e_s_e_t, the
205: top level function will _f_u_n_c_a_l_l 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: 9
257:
258: 9 Printed: July 21, 1983
259:
260:
261:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.