Package COM.INFORMATIMAGO.COMMON-LISP.LISP.STEPPER.INTERNAL

This is an internal package of the Common Lisp stepper.
This package exports the  stepper generator functions,
and defines stepper interactive functions (not exported).

See the documentation of the package
COM.INFORMATIMAGO.COMMON-LISP.LISP.STEPPER.

BUGS: we should probably design it with hooks so that clients may
      define the stepping/tracing user interface.

Copyright Pascal J. Bourguignon 2012 - 2015
This package is provided under the Afero General Public License 3.
See the source file for details.

*step-level*
variable
The level.
Initial value: 0
*step-max-trace-depth*
variable
The maximum depth of function calls that should be traced.  When
more than that depth of calls occur, the *step-mode* switches to
:run.
Initial value: NIL
*step-mode*
variable
May be :run, :function :trace or :step.

:run       don't print anything, just evaluate the forms.

:function just prints the function calls and their results.

:trace    just prints the forms and their results as they are evaluted.

:step     prints the form, then ask the user what to do (step over,
          step into, trace, run).

When break-points are implemented, :run, :function and :trace will run
until a break-point is reached.

Initial value: RUN
*step-package*
variable
The package bound to *PACKAGE* while printing tracing logs.
Initial value: #<Package "COMMON-LISP-USER">
*step-print-case*
variable
The value bound to *PRINT-CASE* while printing tracing logs.
Initial value: DOWNCASE
*step-print-length*
variable
The value bound to *PRINT-LENGTH* while printing tracing logs.
Initial value: 10
*step-print-level*
variable
The value bound to *PRINT-LEVEl* while printing tracing logs.
Initial value: 3
*step-print-readably*
variable
The value bound to *PRINT-READABLY* while printing tracing logs.
Initial value: NIL
*step-trace-output*
variable
The stream where the stepper traces are written to.
Initial value: #<SYNONYM-STREAM to *TRACE-OUTPUT* #x302001A3327D>
(did-bind variable value &optional stream)
function
RETURN: VALUE

DID-STEP

DID-TAG

PRINT-STEP-RESULTS

SIMPLE-STEP

STEP-ATOM

STEP-BINDINGS

STEP-BODY

(step-break-entry &rest fnames)
macro
DO:             Enable breaking on entry of functions named by FNAMES.

FNAMES:         A list of function names.

NOTE:           The functions must have been compiled with the operators from
                the CL-STEPPER package not the CL package.

RETURN:         The list of function names added.
(step-break-exit &rest fnames)
macro
DO:             Enable breaking on exit of functions named by FNAMES.

FNAMES:         A list of function names.

NOTE:           The functions must have been compiled with the operators from
                the CL-STEPPER package not the CL package.

RETURN:         The list of function names added.

STEP-CHOICE

STEP-CONDITION

(step-disabled form)
function
RETURN:         A form where FORM is evaluated in an environment where
                all the stepper special operator macros expand to CL
                special operators.

STEP-EXPRESSION

(step-function kind name lambda-list body env)
function
KIND:           A lambda-list kind (:ordinary for functions,
                :specialized for methods,
                :destructuring for macros).

NAME:           The name of the defined function or macro.

LAMBDA-FORM:    A lambda form.

BODY:           A list of forms, the body of the function.

RETURN:         A stepping body.
(step-lambda lambda-form &key kind name environment)
function

ENV:            An environment.

LAMBDA-FORM:    A lambda form.

KIND:           A lambda-list kind (:ordinary for functions, :generic
                for generic functions, :specialized for methods,
                :destructuring for macros, etc).

NAME:           The name of the defined function or macro.

RETURN:         A stepping lambda-form from the LAMBDA-FORM.

STEP-MESSAGE

STEP-SIMPLE-FORM

(step-trace-function &rest fnames)
macro
DO:             Enable tracing of functions named by FNAMES.

FNAMES:         A list of function names.

NOTE:           The functions must have been compiled with the operators from
                the CL-STEPPER package not the CL package.

RETURN:         The list of function names added.
(step-unbreak-entry &rest fnames)
macro
DO:             Disable breaking on entry of functions named by FNAMES.

FNAMES:         A list of function names.

NOTE:           The functions must have been compiled with the operators from
                the CL-STEPPER package not the CL package.

RETURN:         The list of step-break-entry functions remaining.
(step-unbreak-exit &rest fnames)
macro
DO:             Disable breaking on exit of functions named by FNAMES.

FNAMES:         A list of function names.

NOTE:           The functions must have been compiled with the operators from
                the CL-STEPPER package not the CL package.

RETURN:         The list of step-break-entry functions remaining.
(step-untrace-function &rest fnames)
macro
DO:             Disable tracing of functions named by FNAMES.

FNAMES:         A list of function names.

NOTE:           The functions must have been compiled with the operators from
                the CL-STEPPER package not the CL package.

RETURN:         The list of step-traced functions remaining.

STEPPER-DECLARATION-P

SUBSTITUTE-IGNORABLE

WILL-STEP