Page Numbers: Yes First Page: 81 X: 527 Y: 10.5"
Margins: Binding: 13
Odd Heading:
Alto/Mesa Traps
Even Heading: Not-on-first-page
Alto/Mesa Traps
Alto/Mesa Traps
October 1980
All traps generated by Mesa are converted into signals or errors of the same name. Except for the parity error and stack error traps, all of the signals described below are related to specific language features and are described in more detail in the Mesa Language Manual (see the index). They are defined in TrapDefs.
StartFault: SIGNAL [dest: GlobalFrameHandle];
An attempt was made to start or restart the frame dest, but it is not a valid global frame. Usually this means that a module or program was not bound, a program being restarted does not STOP, or a module that has parameters is being started as a result of a start trap.
ControlFault: SIGNAL [source: FrameHandle] RETURNS [ControlLink];
An attempt was made to transfer to a null control link while executing in the frame source. Usually this means some external links have been clobbered. This signal can be resumed with a control link that will be used to retry the transfer.
UnboundProcedure: SIGNAL [dest: UNSPECIFIED] RETURNS [ControlLink];
An attempt was made to transfer to dest but it had an unbound tag. Usually this means some external links have not been bound or the GFT entry of dest is null (probably a deleted module). This signal can be resumed with a control link that will be used to retry the transfer.
BoundsFault: SIGNAL;
An attempt has been made to exceed the bounds of a STRING, ARRAY or SubRange (note that this includes assigning a negative INTEGER to a CARDINAL.) in a module that was compiled with the /b switch.
PointerFault: SIGNAL;
An attempt has been made to dereference NIL in a module that was compiled with the /n switch.
LinkageFault: ERROR;
A transfer has been attempted through a port that has not been connected to some other port or procedure (the link field of the port was null).
PortFault: ERROR;
A transfer has been attempted to a port which is not pending (the frame field of the destination port is null). This error is used to handle the startup transients common in a configuration of coroutines.
ParityError: SIGNAL [address: POINTER];
A parity error has occured in the word pointed to by address.
PhantomParityError: SIGNAL;
The parity error process was started, but a sweep through memory found no errors.
ResumeError: ERROR;
A catchphrase has attempted to RESUME either an ERROR or a SIGNAL that has been raised by the ERROR construct.
StackError: SIGNAL;
The stack has either overflowed or underflowed. Usually this means that either some code has been smashed or some external link is incorrect.
Fine point: external links may be incorrect because the user forgot to rebind after a recompilation, or procedure variables were incorrectly LOOPHOLEd.
Not all of the following signals are generated by Alto/Mesa.
ZeroDivisor: SIGNAL;
An attempt was made to divide by zero.
DivideCheck: SIGNAL;
The result of a dividing a 32-bit quantity by a 16-bit quantity did not fit in 16 bits.
UnimplementedInst: SIGNAL;
An attempt was made to execute an unimplemented instruction.
WakeupError: SIGNAL;
Too many enable or disable interrupt instructions were performed.
HardwareError: SIGNAL;
Some undefined hardware error occured.
PageFault: SIGNAL [page: CARDINAL];
An attempt was make to reference a nonexistent page.
WriteProtectFault: SIGNAL [page: CARDINAL];
An attempt was make to write in a protected page.