MTS 8: LISP and SLIP in MTS
Page Revised January 1983 June 1976
The way to exit from a break loop is to evaluate NIL at the break
level (i.e., simply enter NIL). The value returned from BREAK is always
NIL.
Note: The file prefix characters for LISPIN and LISPOUT are * and ,
respectively. The file prefix characters for ERRIN and ERROUT are ?
and +, respectively. Thus, the user can easily tell whether or not he
is in a break loop.
A call to BREAK in batch mode causes execution to terminate.
(RES N) _________
RES is the LISP internal restart function, and may be called to
continue the current evaluation after an attention interrupt, a timer
interrupt, or a STEP error (see the description of the STEP function
later in this subsection). These interrupts are processed by LISP as
follows: a single attention interrupt will cause a flag to be set, and
when LISP reaches a state from which it can be restarted, the interrupt
will be processed, and the error form associated with a type 1 error
will be evaluated.
If a second attention interrupt is issued before the first one is
processed, it will be recognized immediately and the error form will be
EVALed. However, when this occurs, no restart is possible.
Assuming that only one interrupt has been issued, a call to RES with
no arguments will cause execution to be resumed at the point where it
was interrupted. If the argument N is given, it must be a positive
integer, and the Nth previous outstanding interrupt will be restarted.
Timer interrupts are always deferred until the system reaches a state
from which it can be restarted. However, upon receiving a timer
interrupt, the system immediately prints a comment on *MSINK* acknow-
ledging the timer interrupt. At that point, the user may interrupt if
he so desires. If an attention interrupt is issued while a timer
interrupt is still pending, it will be processed immediately (and no
restart will be possible).
(DUMP N SW) _______________
DUMP is the LISP system dumping and traceback program. DUMP can be
called in two modes. The first mode occurs when no second argument is
given. In this mode, the value of N indicates what error recovery
actions should be performed. The code values described below should be
added together to specify the actions desired. The numbers in parenthe-
ses after the action description specify the relative order of perfor-
mance of the various actions. The default value of N is 7.
58 LISP

MTS 8: LISP and SLIP in MTS
June 1976 Page Revised January 1983
Code Action ____ ______
1 Print current error message and expression which generated
the error (1).
2 Print a traceback of EVAL forms. The number of levels to be
printed is determined by the system traceback number (5).
4 Call BREAK (6).
8 Print PSW and contents of general registers (2).
16 Dump 32 bytes of memory starting 16 bytes before PSW
location (3).
32 Dump LISP stack data (4).
(DUMP), the default form for all errors, causes the error message and
error-generating form to be printed, a traceback to be given, and a
break loop to be entered.
There are three internal parameters controlling the traceback pro-
duced by DUMP. These may be altered by calling STATUS. The first
parameter is the terse printout switch. Ordinarily, only the first
output line of each expression is printed by dump, in order to eliminate
long tracebacks. By calling STATUS the user may reset this parameter
and receive full traceback printout. The second parameter controls the
printing of arguments. Ordinarily the CAR function specification and
CDR argument list of each form in the traceback will be printed. The
user may, by calling STATUS, suppress the printing of the argument list
and receive a traceback of function specifications only. The third
parameter controls how many forms will be traced. This defaults to 3,
but may be set to any number.
(DUMP 0) is a special code which causes a traceback of all
outstanding EVAL forms to be printed.
Note: DUMP codes (other than 1 and 4) begin the dump at the location
of the most recent error block on the stack. These dump codes should be
used only within an error block.
The second mode of DUMP operation occurs when a SW argument is given.
If SW is an integer, then that number of bytes, starting at address N,
will be dumped in hexadecimal form (SW is rounded to a multiple of 16).
If SW is not a number, then N is assumed to be the address of a LISP
structure, and that structure is printed.
DUMP always returns NIL.
Note: The user can very easily generate a type 0 error (program
interrupt) by asking DUMP to print a LISP structure, and giving it an
address which is not a LISP structure. This will not do any harm,
however.
LISP 59
Previous Page Next Page