Diff of /pde.xmlf [c13f92] .. [5d2657] Maximize Restore

  Switch to unified view

a/pde.xmlf b/pde.xmlf
1
<?xml version="1.0"?><!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1//EN" "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd">
1
<?xml version="1.0" encoding="utf-8"?>
2
<book lang="en">
2
<!DOCTYPE book [
3
<!ENTITY % eclent SYSTEM "ecl.ent">
4
%eclent;
5
]>
6
<book xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en">
3
<chapter id="Program-development">
7
<chapter xml:id="Program-development">
4
 <title>Program Development Facilities</title>
8
 <title>Program Development Facilities</title>
5
9
6
<section id="The-stepper">
10
<section xml:id="The-stepper">
7
<title>The Stepper</title>
11
<title>The Stepper</title>
8
<blockquote>
12
<blockquote>
9
<screen><indexterm role="fn"><primary>step</primary></indexterm>&mdash; Macro: <function>step</function> <varname>form</varname></screen>
13
<screen><indexterm role="fn"><primary>step</primary></indexterm>&#151; Macro: <function>step</function> <varname>form</varname></screen>
10
<para>Starts evaluating the <replaceable>form</replaceable> in the single-step mode.  In this mode, before
14
<para>Starts evaluating the <replaceable>form</replaceable> in the single-step mode.  In this mode, before
11
any form is evaluated, the Stepper will print the form and prompt the user for
15
any form is evaluated, the Stepper will print the form and prompt the user for
12
a Stepper command.  The Stepper binds the two variables print-level
16
a Stepper command.  The Stepper binds the two variables print-level
13
and print-length both to <literal>2</literal>, so that the current form may not
17
and print-length both to <literal>2</literal>, so that the current form may not
14
occupy too much space on the screen.  A Stepper command will be executed when
18
occupy too much space on the screen.  A Stepper command will be executed when
...
...
73
</listitem>
77
</listitem>
74
</varlistentry>
78
</varlistentry>
75
</variablelist>
79
</variablelist>
76
</section>
80
</section>
77
81
78
<section id="Errors">
82
<section xml:id="Errors">
79
<title>Errors</title>
83
<title>Errors</title>
80
<blockquote>
84
<blockquote>
81
<screen><indexterm role="vr"><primary>*break-enable*</primary></indexterm>&mdash; Variable: <varname>*break-enable*</varname></screen>
85
<screen><indexterm role="vr"><primary>*break-enable*</primary></indexterm>&#151; Variable: <varname>*break-enable*</varname></screen>
82
<para>This variable is used to determine whether to enter the break loop (see Section
86
<para>This variable is used to determine whether to enter the break loop (see Section
83
5.4) when an error occurs.  Even the function <literal>break</literal> checks this
87
5.4) when an error occurs.  Even the function <literal>break</literal> checks this
84
variable.  Initially, this variable is set to <replaceable>T</replaceable>, and thus an error will
88
variable.  Initially, this variable is set to <replaceable>T</replaceable>, and thus an error will
85
invoke the break loop.  If the value is (), functions that cause fatal
89
invoke the break loop.  If the value is (), functions that cause fatal
86
errors, such as <literal> error</literal>, will just print an error message and control
90
errors, such as <literal> error</literal>, will just print an error message and control
...
...
93
<para>When the break loop is entered, break-enable will be bound to
97
<para>When the break loop is entered, break-enable will be bound to
94
().</para>
98
().</para>
95
</blockquote>
99
</blockquote>
96
</section>
100
</section>
97
101
98
<section id="The-break-loop">
102
<section xml:id="The-break-loop">
99
<title>The Break Loop</title>
103
<title>The Break Loop</title>
100
<para>The break loop is a read-eval-print loop similar to the top-level loop.  In
104
<para>The break loop is a read-eval-print loop similar to the top-level loop.  In
101
addition to ordinary Lisp forms, the break loop accepts various commands with
105
addition to ordinary Lisp forms, the break loop accepts various commands with
102
which the user can inspect and modify the state of the program execution.  Each
106
which the user can inspect and modify the state of the program execution.  Each
103
break loop command is identified with a keyword (i.e., a symbol in the
107
break loop command is identified with a keyword (i.e., a symbol in the
...
...
178
<para>The break loop commands are described below.  Some of the commands allow
182
<para>The break loop commands are described below.  Some of the commands allow
179
abbreviation in the keywords that identify them.  For example, the user may
183
abbreviation in the keywords that identify them.  For example, the user may
180
abbreviate <replaceable>:current</replaceable> as <replaceable>:c</replaceable>.  The break loop commands return no values
184
abbreviate <replaceable>:current</replaceable> as <replaceable>:c</replaceable>.  The break loop commands return no values
181
at all.</para>
185
at all.</para>
182
<blockquote>
186
<blockquote>
183
<screen><indexterm role="fn"><primary>:current</primary></indexterm>&mdash; Break Command: <function>:current</function></screen>
187
<screen><indexterm role="fn"><primary>:current</primary></indexterm>&#151; Break Command: <function>:current</function></screen>
184
<screen><indexterm role="fn"><primary>:c</primary></indexterm>&mdash; Break Command: <function>:c</function> <varname></varname></screen>
188
<screen><indexterm role="fn"><primary>:c</primary></indexterm>&#151; Break Command: <function>:c</function> <varname></varname></screen>
185
<para>Prints the event symbol of the current event.</para>
189
<para>Prints the event symbol of the current event.</para>
186
</blockquote>
190
</blockquote>
187
<blockquote>
191
<blockquote>
188
<screen><indexterm role="fn"><primary>:previous</primary></indexterm>&mdash; Break Command: <function>:previous</function> <varname>&amp;optional</varname> <varname>n</varname></screen>
192
<screen><indexterm role="fn"><primary>:previous</primary></indexterm>&#151; Break Command: <function>:previous</function> <varname>&amp;optional</varname> <varname>n</varname></screen>
189
<screen><indexterm role="fn"><primary>:p</primary></indexterm>&mdash; Break Command: <function>:p</function> <varname>&amp;optional n</varname></screen>
193
<screen><indexterm role="fn"><primary>:p</primary></indexterm>&#151; Break Command: <function>:p</function> <varname>&amp;optional n</varname></screen>
190
<para>Makes the <replaceable>n</replaceable>-th previous visible event the
194
<para>Makes the <replaceable>n</replaceable>-th previous visible event the
191
new current event.  Invisible events are not counted.  If there are
195
new current event.  Invisible events are not counted.  If there are
192
less than <replaceable>n</replaceable> previous events, then the first visible event in the
196
less than <replaceable>n</replaceable> previous events, then the first visible event in the
193
invocation sequence becomes the new current event. <replaceable>n</replaceable> must be a
197
invocation sequence becomes the new current event. <replaceable>n</replaceable> must be a
194
positive integer and the default is <literal>1</literal>.</para>
198
positive integer and the default is <literal>1</literal>.</para>
195
</blockquote>
199
</blockquote>
196
<blockquote>
200
<blockquote>
197
<screen><indexterm role="fn"><primary>:next</primary></indexterm>&mdash; Break Command: <function>:next</function> <varname>&amp;optional</varname> <varname>n</varname></screen>
201
<screen><indexterm role="fn"><primary>:next</primary></indexterm>&#151; Break Command: <function>:next</function> <varname>&amp;optional</varname> <varname>n</varname></screen>
198
<screen><indexterm role="fn"><primary>:n</primary></indexterm>&mdash; Break Command: <function>:n</function> <varname>&amp;optional n</varname></screen>
202
<screen><indexterm role="fn"><primary>:n</primary></indexterm>&#151; Break Command: <function>:n</function> <varname>&amp;optional n</varname></screen>
199
<para>Makes the <replaceable>n</replaceable>-th next visible event the
203
<para>Makes the <replaceable>n</replaceable>-th next visible event the
200
new current event.  If there are less than <replaceable>n</replaceable> next events,
204
new current event.  If there are less than <replaceable>n</replaceable> next events,
201
then the last visible event in the invocation sequence
205
then the last visible event in the invocation sequence
202
becomes the new current event. <replaceable>n</replaceable>  must be a positive integer and the
206
becomes the new current event. <replaceable>n</replaceable>  must be a positive integer and the
203
default is <literal>1</literal>.</para>
207
default is <literal>1</literal>.</para>
204
</blockquote>
208
</blockquote>
205
<blockquote>
209
<blockquote>
206
<screen><indexterm role="fn"><primary>:backtrace</primary></indexterm>&mdash; Break Command: <function>:backtrace</function></screen>
210
<screen><indexterm role="fn"><primary>:backtrace</primary></indexterm>&#151; Break Command: <function>:backtrace</function></screen>
207
<screen><indexterm role="fn"><primary>:b</primary></indexterm>&mdash; Break Command: <function>:b</function> <varname></varname></screen>
211
<screen><indexterm role="fn"><primary>:b</primary></indexterm>&#151; Break Command: <function>:b</function> <varname></varname></screen>
208
<para>Prints the event symbols of all visible events in order.  The symbol of
212
<para>Prints the event symbols of all visible events in order.  The symbol of
209
the current event is printed
213
the current event is printed
210
in upper-case letters and the event symbols of other events are in lower-case.</para>
214
in upper-case letters and the event symbols of other events are in lower-case.</para>
211
</blockquote>
215
</blockquote>
212
<blockquote>
216
<blockquote>
213
<screen><indexterm role="fn"><primary>:help</primary></indexterm>&mdash; Break Command: <function>:help</function></screen>
217
<screen><indexterm role="fn"><primary>:help</primary></indexterm>&#151; Break Command: <function>:help</function></screen>
214
<screen><indexterm role="fn"><primary>:h</primary></indexterm>&mdash; Break Command: <function>:h</function> <varname></varname></screen>
218
<screen><indexterm role="fn"><primary>:h</primary></indexterm>&#151; Break Command: <function>:h</function> <varname></varname></screen>
215
<para>Lists the break loop commands.</para>
219
<para>Lists the break loop commands.</para>
216
</blockquote>
220
</blockquote>
217
<blockquote>
221
<blockquote>
218
<screen><indexterm role="fn"><primary>:quit</primary></indexterm>&mdash; Break Command: <function>:quit</function> <varname>&amp;optional</varname> <varname>n</varname></screen>
222
<screen><indexterm role="fn"><primary>:quit</primary></indexterm>&#151; Break Command: <function>:quit</function> <varname>&amp;optional</varname> <varname>n</varname></screen>
219
<screen><indexterm role="fn"><primary>:q</primary></indexterm>&mdash; Break Command: <function>:q</function> <varname>&amp;optional n</varname></screen>
223
<screen><indexterm role="fn"><primary>:q</primary></indexterm>&#151; Break Command: <function>:q</function> <varname>&amp;optional n</varname></screen>
220
<para>Returns control to the level <replaceable>n</replaceable> break loop.  If <replaceable>n</replaceable> is 0 or if <replaceable>n</replaceable>
224
<para>Returns control to the level <replaceable>n</replaceable> break loop.  If <replaceable>n</replaceable> is 0 or if <replaceable>n</replaceable>
221
is omitted, then control will return to the top-level loop. <replaceable>n</replaceable> must be a
225
is omitted, then control will return to the top-level loop. <replaceable>n</replaceable> must be a
222
non-negative integer smaller than the current break level.</para>
226
non-negative integer smaller than the current break level.</para>
223
</blockquote>
227
</blockquote>
224
<blockquote>
228
<blockquote>
225
<screen><indexterm role="fn"><primary>:continue</primary></indexterm>&mdash; Break Command: <function>:continue</function></screen>
229
<screen><indexterm role="fn"><primary>:continue</primary></indexterm>&#151; Break Command: <function>:continue</function></screen>
226
<screen><indexterm role="fn"><primary>:c</primary></indexterm>&mdash; Break Command: <function>:c</function> <varname></varname></screen>
230
<screen><indexterm role="fn"><primary>:c</primary></indexterm>&#151; Break Command: <function>:c</function> <varname></varname></screen>
227
<para>Returns control to the caller of the break loop.  If the break loop has been
231
<para>Returns control to the caller of the break loop.  If the break loop has been
228
entered from <literal>cerror</literal>, <literal>cerror</literal> returns () as its value and
232
entered from <literal>cerror</literal>, <literal>cerror</literal> returns () as its value and
229
control will resume at that point.  Otherwise, this command returns control to
233
control will resume at that point.  Otherwise, this command returns control to
230
the previous break loop (or to the top-level loop, if the current break level
234
the previous break loop (or to the top-level loop, if the current break level
231
is <literal>1</literal>).</para>
235
is <literal>1</literal>).</para>
232
</blockquote>
236
</blockquote>
233
<blockquote>
237
<blockquote>
234
<screen><indexterm role="fn"><primary>:variables</primary></indexterm>&mdash; Break Command: <function>:variables</function></screen>
238
<screen><indexterm role="fn"><primary>:variables</primary></indexterm>&#151; Break Command: <function>:variables</function></screen>
235
<screen><indexterm role="fn"><primary>:v</primary></indexterm>&mdash; Break Command: <function>:v</function> <varname></varname></screen>
239
<screen><indexterm role="fn"><primary>:v</primary></indexterm>&#151; Break Command: <function>:v</function> <varname></varname></screen>
236
<para>Prints the names of the bound variables in the current
240
<para>Prints the names of the bound variables in the current
237
environment.  To see the value of a bound variable, just type the
241
environment.  To see the value of a bound variable, just type the
238
variable name.</para>
242
variable name.</para>
239
</blockquote>
243
</blockquote>
240
<blockquote>
244
<blockquote>
241
<screen><indexterm role="fn"><primary>:functions</primary></indexterm>&mdash; Break Command: <function>:functions</function></screen>
245
<screen><indexterm role="fn"><primary>:functions</primary></indexterm>&#151; Break Command: <function>:functions</function></screen>
242
<para>Prints the names of the local functions and local macros in the current
246
<para>Prints the names of the local functions and local macros in the current
243
environment.  To see the definition of a local function or macro, use the
247
environment.  To see the definition of a local function or macro, use the
244
function special form in the usual way.  That is, <literal>(function <replaceable>name</replaceable>)</literal>
248
function special form in the usual way.  That is, <literal>(function <replaceable>name</replaceable>)</literal>
245
will return the definition of the local function or macro whose name is
249
will return the definition of the local function or macro whose name is
246
<replaceable>name</replaceable>.  Local functions and local macros may be invoked as usual.</para>
250
<replaceable>name</replaceable>.  Local functions and local macros may be invoked as usual.</para>
247
</blockquote>
251
</blockquote>
248
<blockquote>
252
<blockquote>
249
<screen><indexterm role="fn"><primary>:blocks</primary></indexterm>&mdash; Break Command: <function>:blocks</function></screen>
253
<screen><indexterm role="fn"><primary>:blocks</primary></indexterm>&#151; Break Command: <function>:blocks</function></screen>
250
<para>Prints the names of the blocks established in the current environment.  If a
254
<para>Prints the names of the blocks established in the current environment.  If a
251
block <replaceable>block</replaceable> is established, then the <literal>return-from</literal> form
255
block <replaceable>block</replaceable> is established, then the <literal>return-from</literal> form
252
<literal>(return-from <replaceable>block value</replaceable>)</literal> works as usual.  That is, the block form
256
<literal>(return-from <replaceable>block value</replaceable>)</literal> works as usual.  That is, the block form
253
that established <replaceable>block</replaceable> will return <replaceable>value</replaceable> as its value and control
257
that established <replaceable>block</replaceable> will return <replaceable>value</replaceable> as its value and control
254
will resume at that point.</para>
258
will resume at that point.</para>
255
</blockquote>
259
</blockquote>
256
<blockquote>
260
<blockquote>
257
<screen><indexterm role="fn"><primary>:tags</primary></indexterm>&mdash; Break Command: <function>:tags</function></screen>
261
<screen><indexterm role="fn"><primary>:tags</primary></indexterm>&#151; Break Command: <function>:tags</function></screen>
258
<para>Prints the tags established in the current environment.  If a tag <replaceable>tag</replaceable> is
262
<para>Prints the tags established in the current environment.  If a tag <replaceable>tag</replaceable> is
259
established, then the <literal>go</literal> form <literal>(go <replaceable>tag</replaceable>)</literal> works as usual.
263
established, then the <literal>go</literal> form <literal>(go <replaceable>tag</replaceable>)</literal> works as usual.
260
That is, control will resume at the position of <replaceable>tag</replaceable> in the surrounding
264
That is, control will resume at the position of <replaceable>tag</replaceable> in the surrounding
261
<literal>tagbody</literal>.</para>
265
<literal>tagbody</literal>.</para>
262
</blockquote>
266
</blockquote>
263
<blockquote>
267
<blockquote>
264
<screen><indexterm role="fn"><primary>:local</primary></indexterm>&mdash; Break Command: <function>:local</function> <varname>&amp;optional</varname> <varname>n</varname></screen>
268
<screen><indexterm role="fn"><primary>:local</primary></indexterm>&#151; Break Command: <function>:local</function> <varname>&amp;optional</varname> <varname>n</varname></screen>
265
<screen><indexterm role="fn"><primary>:l</primary></indexterm>&mdash; Break Command: <function>:l</function> <varname>&amp;optional n</varname></screen>
269
<screen><indexterm role="fn"><primary>:l</primary></indexterm>&#151; Break Command: <function>:l</function> <varname>&amp;optional n</varname></screen>
266
<para>If <replaceable>n</replaceable> is <literal>0</literal> or if it is omitted, then this command prints the value
270
<para>If <replaceable>n</replaceable> is <literal>0</literal> or if it is omitted, then this command prints the value
267
stored in the main stack entry that is pointed to by the current event
271
stored in the main stack entry that is pointed to by the current event
268
environment. <replaceable>n</replaceable> is an offset from that entry.  If <replaceable>n</replaceable> is positive,
272
environment. <replaceable>n</replaceable> is an offset from that entry.  If <replaceable>n</replaceable> is positive,
269
then the value of the <emphasis>n</emphasis>-th next (i.e., toward the top of the main stack)
273
then the value of the <emphasis>n</emphasis>-th next (i.e., toward the top of the main stack)
270
entry is printed.  If <replaceable>n</replaceable> is negative, then the value of the <replaceable>n</replaceable>-th
274
entry is printed.  If <replaceable>n</replaceable> is negative, then the value of the <replaceable>n</replaceable>-th
271
previous (i.e., toward the bottom of the main stack) entry is printed. <replaceable>n</replaceable>
275
previous (i.e., toward the bottom of the main stack) entry is printed. <replaceable>n</replaceable>
272
must be an integer.  It is an error if the specified entry does not lie between
276
must be an integer.  It is an error if the specified entry does not lie between
273
the bottom and the top of the stack.</para>
277
the bottom and the top of the stack.</para>
274
</blockquote>
278
</blockquote>
275
<blockquote>
279
<blockquote>
276
<screen><indexterm role="fn"><primary>:hide</primary></indexterm>&mdash; Break Command: <function>:hide</function> <varname>symbol</varname></screen>
280
<screen><indexterm role="fn"><primary>:hide</primary></indexterm>&#151; Break Command: <function>:hide</function> <varname>symbol</varname></screen>
277
<para>Hides all events whose event symbol is <replaceable>symbol</replaceable>.  In particular, by
281
<para>Hides all events whose event symbol is <replaceable>symbol</replaceable>.  In particular, by
278
<literal>:hide 'lambda</literal> and <literal>hide 'lambda-closure</literal>, all events become
282
<literal>:hide 'lambda</literal> and <literal>hide 'lambda-closure</literal>, all events become
279
invisible whose event functions are lambda-expressions and closures,
283
invisible whose event functions are lambda-expressions and closures,
280
respectively.  If the event symbol of the current event happens to be
284
respectively.  If the event symbol of the current event happens to be
281
<replaceable>symbol</replaceable>, then the last previous visible event will become the new current
285
<replaceable>symbol</replaceable>, then the last previous visible event will become the new current
...
...
285
event function is either <literal>eval</literal> or <literal>evalhook</literal>.  Keeping both of them
289
event function is either <literal>eval</literal> or <literal>evalhook</literal>.  Keeping both of them
286
visible is the simplest way to avoid the silly attempts of the user to hide all
290
visible is the simplest way to avoid the silly attempts of the user to hide all
287
events.</para>
291
events.</para>
288
</blockquote>
292
</blockquote>
289
<blockquote>
293
<blockquote>
290
<screen><indexterm role="fn"><primary>:hide-package</primary></indexterm>&mdash; Break Command: <function>:hide-package</function> <varname>package</varname></screen>
294
<screen><indexterm role="fn"><primary>:hide-package</primary></indexterm>&#151; Break Command: <function>:hide-package</function> <varname>package</varname></screen>
291
<para>Hides all events whose event symbol belongs to the package
295
<para>Hides all events whose event symbol belongs to the package
292
<replaceable>package</replaceable>. <replaceable>package</replaceable> may be any object that represents a package, i.e.,
296
<replaceable>package</replaceable>. <replaceable>package</replaceable> may be any object that represents a package, i.e.,
293
a package object, a symbol, or a string.  If the event symbol of the current
297
a package object, a symbol, or a string.  If the event symbol of the current
294
event happens to belong to the package <replaceable>package</replaceable>, then the last previous
298
event happens to belong to the package <replaceable>package</replaceable>, then the last previous
295
visible event will become the new current event.  Even if <literal>lisp</literal> package
299
visible event will become the new current event.  Even if <literal>lisp</literal> package
296
was specified as <replaceable>package</replaceable>, events of <literal>eval</literal> and <literal>evalhook</literal> do
300
was specified as <replaceable>package</replaceable>, events of <literal>eval</literal> and <literal>evalhook</literal> do
297
not become invisible.  See the description of <replaceable>:hide</replaceable> above.</para>
301
not become invisible.  See the description of <replaceable>:hide</replaceable> above.</para>
298
</blockquote>
302
</blockquote>
299
<blockquote>
303
<blockquote>
300
<screen><indexterm role="fn"><primary>:unhide</primary></indexterm>&mdash; Break Command: <function>:unhide</function> <varname>symbol</varname></screen>
304
<screen><indexterm role="fn"><primary>:unhide</primary></indexterm>&#151; Break Command: <function>:unhide</function> <varname>symbol</varname></screen>
301
<para><replaceable>:unhide</replaceable> is the inverse command of <replaceable>:hide</replaceable>.  If, however, <replaceable> symbol</replaceable>
305
<para><replaceable>:unhide</replaceable> is the inverse command of <replaceable>:hide</replaceable>.  If, however, <replaceable> symbol</replaceable>
302
belongs to one of the <replaceable>:hide-package</replaceable>d packages, events of <replaceable>symbol</replaceable>
306
belongs to one of the <replaceable>:hide-package</replaceable>d packages, events of <replaceable>symbol</replaceable>
303
become visible only after the package is <literal>:unhide-package
307
become visible only after the package is <literal>:unhide-package
304
'd</literal>. <replaceable>symbol</replaceable> must be a symbol.</para>
308
'd</literal>. <replaceable>symbol</replaceable> must be a symbol.</para>
305
</blockquote>
309
</blockquote>
306
<blockquote>
310
<blockquote>
307
<screen><indexterm role="fn"><primary>:unhide-package</primary></indexterm>&mdash; Break Command: <function>:unhide-package</function> <varname>package</varname></screen>
311
<screen><indexterm role="fn"><primary>:unhide-package</primary></indexterm>&#151; Break Command: <function>:unhide-package</function> <varname>package</varname></screen>
308
<para><replaceable>:unhide-package</replaceable> is the inverse command of <replaceable>:hide-package</replaceable>.  However, an
312
<para><replaceable>:unhide-package</replaceable> is the inverse command of <replaceable>:hide-package</replaceable>.  However, an
309
event whose event symbol belongs to <replaceable>package</replaceable> becomes visible only after
313
event whose event symbol belongs to <replaceable>package</replaceable> becomes visible only after
310
the symbol is <literal>unhide 'd</literal>, if the symbol was <replaceable>:code 'd</replaceable>
314
the symbol is <literal>unhide 'd</literal>, if the symbol was <replaceable>:code 'd</replaceable>
311
before. <replaceable>package</replaceable> may be any object that represents a package, i.e., a
315
before. <replaceable>package</replaceable> may be any object that represents a package, i.e., a
312
package object, a symbol, or a string.</para>
316
package object, a symbol, or a string.</para>
...
...
384
388
385
&gt;                      ;;;  Top-level.
389
&gt;                      ;;;  Top-level.
386
</screen></para>
390
</screen></para>
387
</section>
391
</section>
388
392
389
<section id="Describe-and-inspect">
393
<section xml:id="Describe-and-inspect">
390
<title>Describe and Inspect</title>
394
<title>Describe and Inspect</title>
391
<blockquote>
395
<blockquote>
392
<screen><indexterm role="fn"><primary>describe</primary></indexterm>&mdash; Function: <function>describe</function> <varname>object</varname></screen>
396
<screen><indexterm role="fn"><primary>describe</primary></indexterm>&#151; Function: <function>describe</function> <varname>object</varname></screen>
393
<para>Prints the information about <replaceable>object</replaceable> to the stream that is the value of
397
<para>Prints the information about <replaceable>object</replaceable> to the stream that is the value of
394
<literal>*standard-output*</literal>.  The description of an object consists of several
398
<literal>*standard-output*</literal>.  The description of an object consists of several
395
fields, each of which is described in a recursive manner.  For example, a
399
fields, each of which is described in a recursive manner.  For example, a
396
symbol may have fields such as home package, variable documentation, value,
400
symbol may have fields such as home package, variable documentation, value,
397
function documentation, function binding, type documentation, <literal>deftype</literal>
401
function documentation, function binding, type documentation, <literal>deftype</literal>
398
definition, properties.</para>
402
definition, properties.</para>
399
</blockquote>
403
</blockquote>
400
<blockquote>
404
<blockquote>
401
<screen><indexterm role="fn"><primary>inspect</primary></indexterm>&mdash; Function: <function>inspect</function> <varname>object</varname></screen>
405
<screen><indexterm role="fn"><primary>inspect</primary></indexterm>&#151; Function: <function>inspect</function> <varname>object</varname></screen>
402
<para>Prints the information about <replaceable>object</replaceable> in an interactive manner.  The output
406
<para>Prints the information about <replaceable>object</replaceable> in an interactive manner.  The output
403
of inspect is similar to that of <literal>describe</literal>, but after printing the label
407
of inspect is similar to that of <literal>describe</literal>, but after printing the label
404
and the value of a field (the value itself is not <literal>describe 'd</literal>), it
408
and the value of a field (the value itself is not <literal>describe 'd</literal>), it
405
prompts the user to input a one-character command.  The input to <literal>inspect</literal>
409
prompts the user to input a one-character command.  The input to <literal>inspect</literal>
406
is taken from the stream that is the value of <literal>*query-io*</literal>.  Normally, the
410
is taken from the stream that is the value of <literal>*query-io*</literal>.  Normally, the
...
...
462
</varlistentry>
466
</varlistentry>
463
</variablelist>
467
</variablelist>
464
</blockquote>
468
</blockquote>
465
</section>
469
</section>
466
470
467
<section id="The-profiler">
471
<section xml:id="The-profiler">
468
<title>The Profiler</title>
472
<title>The Profiler</title>
469
<para>The profiler tool is enabled by default in the basic &ECL; configuration.  It
473
<para>The profiler tool is enabled by default in the basic &ECL; configuration.  It
470
can be disabled with the <literal>configure</literal> option <literal>--disable-profiler</literal>.</para>
474
can be disabled with the <literal>configure</literal> option <literal>--disable-profiler</literal>.</para>
471
<blockquote>
475
<blockquote>
472
<screen><indexterm role="fn"><primary>profile</primary></indexterm>&mdash; sys: <function>profile</function> <varname>grain</varname> <varname>&amp;optional</varname> <varname>address</varname></screen>
476
<screen><indexterm role="fn"><primary>profile</primary></indexterm>&#151; sys: <function>profile</function> <varname>grain</varname> <varname>&amp;optional</varname> <varname>address</varname></screen>
473
<para>This function activates the profiling of subsequent executions.  <replaceable>grain</replaceable> is
477
<para>This function activates the profiling of subsequent executions.  <replaceable>grain</replaceable> is
474
a value between 1 and 16384 which indicates the granularity of code segments to
478
a value between 1 and 16384 which indicates the granularity of code segments to
475
consider. There is a counter for each such segment.  With each clock tick, the
479
consider. There is a counter for each such segment.  With each clock tick, the
476
current segment is identified and its corresponding histogram count is
480
current segment is identified and its corresponding histogram count is
477
incremented.  A value of 0 for <replaceable>grain</replaceable> means stop profiling.  <replaceable>address</replaceable>
481
incremented.  A value of 0 for <replaceable>grain</replaceable> means stop profiling.  <replaceable>address</replaceable>
478
indicates the base address for the code being profiled.</para>
482
indicates the base address for the code being profiled.</para>
479
</blockquote>
483
</blockquote>
480
<blockquote>
484
<blockquote>
481
<screen><indexterm role="fn"><primary>display-profile</primary></indexterm>&mdash; sys: <function>display-profile</function></screen>
485
<screen><indexterm role="fn"><primary>display-profile</primary></indexterm>&#151; sys: <function>display-profile</function></screen>
482
<para>Displays the histogram of accumulated tick counts.  The ticks are attributed to
486
<para>Displays the histogram of accumulated tick counts.  The ticks are attributed to
483
the compiled Lisp function whose base address is closest to the start of the
487
the compiled Lisp function whose base address is closest to the start of the
484
segment.  This may not be totally accurate for system functions which invoke
488
segment.  This may not be totally accurate for system functions which invoke
485
some auxiliary function to do the job.</para>
489
some auxiliary function to do the job.</para>
486
</blockquote>
490
</blockquote>
487
<blockquote>
491
<blockquote>
488
<screen><indexterm role="fn"><primary>clear-profile</primary></indexterm>&mdash; sys: <function>clear-profile</function></screen>
492
<screen><indexterm role="fn"><primary>clear-profile</primary></indexterm>&#151; sys: <function>clear-profile</function></screen>
489
<para>Clears the profile histogram.</para>
493
<para>Clears the profile histogram.</para>
490
</blockquote>
494
</blockquote>
491
<blockquote>
495
<blockquote>
492
<screen><indexterm role="vr"><primary>sys</primary></indexterm>&mdash; Variable: <varname>sys</varname> <type>*profile-array*</type></screen>
496
<screen><indexterm role="vr"><primary>sys</primary></indexterm>&#151; Variable: <varname>sys</varname> <type>*profile-array*</type></screen>
493
<para>Contains the profile histogram: two short integer counters are packed in each
497
<para>Contains the profile histogram: two short integer counters are packed in each
494
value of this array of fixnums.</para>
498
value of this array of fixnums.</para>
495
</blockquote>
499
</blockquote>
496
</section>
500
</section>
497
501
498
<section id="Online-help">
502
<section xml:id="Online-help">
499
<title>Online Help</title>
503
<title>Online Help</title>
500
<para>Online help is provided by the following functions.</para>
504
<para>Online help is provided by the following functions.</para>
501
<blockquote>
505
<blockquote>
502
<screen><indexterm role="fn"><primary>help</primary></indexterm>&mdash; Function: <function>help</function> <varname>&amp;optional symbol</varname></screen>
506
<screen><indexterm role="fn"><primary>help</primary></indexterm>&#151; Function: <function>help</function> <varname>&amp;optional symbol</varname></screen>
503
<para><literal>help</literal> with no arguments prints a greeting message to &ECL; beginners.
507
<para><literal>help</literal> with no arguments prints a greeting message to &ECL; beginners.
504
<literal>help</literal> with a symbol argument prints the documentation associated
508
<literal>help</literal> with a symbol argument prints the documentation associated
505
with the symbol.</para>
509
with the symbol.</para>
506
</blockquote>
510
</blockquote>
507
<blockquote>
511
<blockquote>
508
<screen><indexterm role="fn"><primary>help*</primary></indexterm>&mdash; Function: <function>help*</function> <varname>string &amp;optional package</varname></screen>
512
<screen><indexterm role="fn"><primary>help*</primary></indexterm>&#151; Function: <function>help*</function> <varname>string &amp;optional package</varname></screen>
509
<para>Prints the documentation associated with those symbols in the specified
513
<para>Prints the documentation associated with those symbols in the specified
510
<replaceable>package</replaceable> whose print names contain <replaceable>string</replaceable> as substring.
514
<replaceable>package</replaceable> whose print names contain <replaceable>string</replaceable> as substring.
511
<replaceable>string</replaceable> may be a symbol, in which case the print name of that symbol is
515
<replaceable>string</replaceable> may be a symbol, in which case the print name of that symbol is
512
used. <replaceable>package</replaceable> is optional and defaults to the LISP package.
516
used. <replaceable>package</replaceable> is optional and defaults to the LISP package.
513
If <replaceable>package</replaceable> is (), then all packages are searched.</para>
517
If <replaceable>package</replaceable> is (), then all packages are searched.</para>