Arguments: &key context>
If called with context specified
true, evaluation is done, as best as possible
(see warning just below) with respect to the current frame rather than
the top level. All known local variables (those printed by the :local command) can be referenced by name
in ordinary Lisp forms, if their names were saved during the
compilation of the function associated with the frame. See save-local-names-switch
and save-local-scopes-switch
for information
on when the compiler saves local names.
Setting those variables sets the value in the frame. All specials
will also evaluate to their value in the context of the current
frame. If context is specified nil
, evaluation is done with respect to the top
level, not the current frame.
Warning: The context evaluation mode (i.e. when running in
:evalmode :context t
) is intended only as a
debugging aid, and is not supported for normal extended operation of
the lisp system. Its purpose is to emulate a dynamic-binding style
debugging interface to make interactions with variables within
compiled-functions easier. The emulation is not and can never be
perfect, due to the information loss that occurs during compilation in
a lexically-scoped lisp like Common Lisp. Therefore, extreme care must
be used when running in context mode, and the normal operating
environment must be a no-context evaluation mode.
In particular, whenever the current read-eval-print-loop changes, there is a possibility that the context sensitivity will be inconsistent, due to the binding and unbinding of special variables. Context evaluation simulates the binding environment of the desired context frame, not by unbinding the bindstack to the required point, but by binding again those specials to their previously bound values. This simulates the desired context adequately for most simple evaluations, but because the bindstack actually grows instead of shrinking, some binding-orders are lost and the top-level might become confused. Thus, context evaluation may or may not continue after pops or resets.
See top-level.htm for more information on top-level commands. See debugging.htm for information on the debugger.
The documentation is described in introduction.htm and the index is in index.htm.
Copyright (c) 1998-2000, Franz Inc. Berkeley, CA., USA. All rights reserved.
Created 2000.10.5.