Next: , Previous: , Up: Design Choices and Extensions   [Contents][Index]


2.2 Default Interrupts for Lisp

CMUCL has several interrupt handlers defined when it starts up, as follows:

SIGINT ^c

causes Lisp to enter a break loop. This puts you into the debugger which allows you to look at the current state of the computation. If you proceed from the break loop, the computation will proceed from where it was interrupted.

SIGQUIT ^L

causes Lisp to do a throw to the top-level. This causes the current computation to be aborted, and control returned to the top-level read-eval-print loop.

SIGTSTP (^z)

causes Lisp to suspend execution and return to the Unix shell. If control is returned to Lisp, the computation will proceed from where it was interrupted.

[SIGILL, SIGBUS, SIGSEGV, and SIGFPE]

cause Lisp to signal an error.

For keyboard interrupt signals, the standard interrupt character is in parentheses. Your .login may set up different interrupt characters. When a signal is generated, there may be some delay before it is processed since Lisp cannot be interrupted safely in an arbitrary place. The computation will continue until a safe point is reached and then the interrupt will be processed. See signal-handlers to define your own signal handlers.