Diego and I seek your comments on the following (loose) proposal.

It is sometimes hard to remember which printing function is used
for debugging a type, or even which type you have.

We propose to rely on overloading to unify the interface to a small
set of function names.  Every major data type should have associated
debug/dump functionality.  We will unify the current *_dump/*_debug
functions under the same common overloaded name.

We intend to only apply this approach to functions that take the
type to display as an argument, and that are routinely used in
debugging.

We propose to provide several function overload sets, as below.


dump_pretty

    This function overload set provides the bulk of the printing.
    They will use the existing pretty-printer functions in their
    implementation.

dump_raw

    This function overload set provides the raw oriented dump,
    e.g. a tuple.

dump_verbose

    This function overload set provides the extra details dump.


All of these functions come in two forms.

    function (FILE *, item_to_dump, formatting)
    function (item_to_dump, formatting)

If the FILE* is not specified, the output is to stderr.  The
formatting argument is optional, with a default suitable to the kind
of item to dump.


We should remove tree-browser.c.  It is not used at all and it is
likely broken.

-- 
Lawrence Crowl

Reply via email to