SET-TRACE-EVISC-TUPLE.html -- ACL2 Version 6.3

## SET-TRACE-EVISC-TUPLE

set the trace evisc tuple

    Major Section:  TRACE

A trace evisc-tuple, which is set by this utility, provides a means to restrict printing during tracing. See evisc-tuple for an introduction to evisc-tuples; also see set-evisc-tuple and see set-iprint.

By default the ACL2 trace mechanism, `trace$`, automatically deals with stobjs, the logical world, and certain other large structures. See trace$, in particular the documentation of `trace$` option `:hide`. However, even with that default behavior you may want to restrict what is printed according to the print-level and print-length of an evisc-tuple; see evisc-tuple.

    Examples:

    ; Set trace evisc tuple to a standard value, using current Lisp *print-level*
    ; and *print-length* variables:
    (set-trace-evisc-tuple t state)

    ; Set trace evisc tuple back to its default:
    (set-trace-evisc-tuple nil state)

    ; Set trace evisc tuple to restrict print-level to 3 and print-length to 4,
    ; while hiding the logical world and suitably printing stobjs even if trace$
    ; option ``:hide nil'' is used.  (Note: calling trace-evisceration-alist
    ; directly requires removing this function as `untouchable', which requires a
    ; trust tag; see remove-untouchable.)
    (set-trace-evisc-tuple
     (evisc-tuple 3 4 (trace-evisceration-alist state) nil)
     state)

    General Forms:

    (set-trace-evisc-tuple nil state) ; trace evisc-tuple set to standard value
    (set-trace-evisc-tuple   t state) ; trace evisc-tuple set to hide the logical
                                      ;   world and deal with stobjs even when
                                      ;   trace$ option ``:hide nil'' is supplied
    (set-trace-evisc-tuple evisc-tuple state)
                                      ; tracing set to use indicated evisc-tuple

See trace$ for a discussion of ACL2 tracing. The evisc-tuple used by that trace utility is the one last installed by `set-trace-evisc-tuple` (or by `set-evisc-tuple` for the trace-evisc-tuple) -- initially to the default of `nil` -- unless overriden by trace option `:evisc-tuple`.

Remark. If you use value `t`, then ACL2 will ensure that the logical world and stobjs are kept up-to-date in the trace evisc-tuple.