RuntimeError.mesa
For Dragon
Copyright © 1985 by Xerox Corporation. All rights reserved.
Levin on May 25, 1983 5:21 pm
Russ Atkinson (RRA) February 19, 1985 1:01:44 pm PST
Doug Wyatt, February 26, 1985 3:11:29 pm PST
Carl Hauser, April 30, 1987 12:52:57 pm PDT
RuntimeError: DEFINITIONS
= BEGIN
Signals and errors generated by the Mesa runtime
BoundsFault:
ERROR;
raised by bounds checking
DivideCheck:
SAFE
SIGNAL;
raised by overflow on a divide
PointerFault:
ERROR;
raised by NIL pointer checking
ResumeError:
SIGNAL;
raised when an ERROR is resumed
UnwindError:
ERROR;
raised when an UNWIND catch phrase tries to start another UNWIND;
SendMsgSignal:
SIGNAL
RETURNS [message:
WORD, signal:
SIGNAL
ANY
RETURNS
ANY];
used to request the current signal and message inside of an ANY catch phrase
StartFault:
SIGNAL [dest:
PROGRAM];
StackError:
ERROR;
... is typically disastrous, caused by bad or clobbered code
UnboundProcedure:
SIGNAL [dest:
PROC
ANY
RETURNS
ANY]
RETURNS [
PROC
ANY
RETURNS
ANY];
... raised when transfer is attempted to an unbound procedure
UNCAUGHT:
SAFE
ERROR [signal:
SIGNAL
ANY
RETURNS
ANY, parameters:
WORD];
... raised when the UncaughtSignalHandler is about to be called. Using UNCAUGHT is much better than handling ANY! UNCAUGHT should be provided by the compiler, eventually.
ZeroDivisor:
SAFE
SIGNAL;
the classic divide by zero signal
Related procedures
UCSProc:
TYPE =
PROC [msg:
WORD, signal:
SIGNAL
ANY
RETURNS
ANY, frame:
POINTER];
RegisterUncaughtSignalHandler:
PROC [proc: UCSProc]
RETURNS [old: UCSProc];
Registration mechanism for the global uncaught signal handling function.
InformationalSignal:
SAFE PROC [signal:
SIGNAL];
This is a temporary kludge that provides a minimal informational signal mechanism.
END.