ld
suppresses details when printing
Major Section: MISCELLANEOUS
Ld-evisc-tuple
is an ld
special (see ld). The accessor is
(ld-evisc-tuple state)
and the updater is
(set-ld-evisc-tuple val state)
. Ld-evisc-tuple
must be either
nil
or a list of the form
(alist print-level print-length hiding-cars)where
alist
is an alist that pairs objects to strings, print-level
and print-length
are either nil
or non-negative integers, and
hiding-cars
is a list of symbols. The initial value of
ld-evisc-tuple
is nil
.
The general-purpose ACL2 read-eval-print loop, ld
, reads forms from
standard-oi
, evaluates them and prints the result to standard-co
.
However, there are various flags that control ld
's behavior and
ld-evisc-tuple
is one of them. Ld
may print the forms it is
evaluating and/or the results of evaluation. If the value of
ld-evisc-tuple
is a list as shown above, then ld
``eviscerates'' the
objects it prints before printing them. To ``eviscerate'' an object
we replace certain substructures within it by strings which are
printed in their stead. Print-level
and print-length
, above, are
used as described in CLTL (pp 372) to replace those substructures
deeper than print-level
by ``#
'' and those longer than print-length
by ``...
''. Alist
is used to replace any substructure occuring as a
key in alist
by the corresponding string. Finally, any consp
x
that starts with one of the symbols in hiding-cars
is printed as
<hidden>
.
The printing of error messages and warnings, as well as certain other output,
uses a different such evisc-tuple, (default-evisc-tuple state)
. The
advanced user can override this evisc-tuple with the state global
user-default-evisc-tuple
. Similarly, some other printing uses yet
another evisc-tuple, (term-evisc-tuple t state)
, which can be overridden
with state global user-term-evisc-tuple
. We may document these
mechanisms more fully if there is sufficient user interest.