![Hat Logo](hat.gif)
Hat 2.04 Wish List
This is a list of wishes (not bugs) to improve Hat 2.04.
Elsewhere, there is a bug list of things
that are incorrect. Please report any more wishes you can
think of to: hat@haskell.org.
Little Wishes
-
backspace to correct slips in : command-lines
(Use stty erase ^H if readline is not available)
-
separate cutoff length for strings from general cutoff depth
-
advice for users wishing to use hat but not hmake
-
in hat-observe allow application patterns after "in"
-
in hat-observe, an option to show the number of instances of
each uniquely represented application
-
in hat-observe bring back % progress indicators
-
in any viewing tool accept :S [qualified] name
-
scrolling and resizing of source windows (with line numbers instead
of fixed source reference line)
-
viewing tools compare time-stamps of trace files with those
of sources and issue warning if appropriate
Bigger Wishes
-
combine traced and untraced modules by a more drastic wrapping
(eg. data structures of type T computed within the wrapped module
recorded as {T}) and subclassing to get around mismatch of
method types (eg. Ord T => TOrd T and Ord a => Ord (R a))
-
support tracing of locally defined functions by recording
bindings for free variables (eg. add refs to static parent
names in local name nodes and extend local argument lists to
include free variables defined within top-level parent with
the name entries for these variables)
-
with or without 2, hat-observe to support observation of
locally defined functions or data values if :set locals on.
Locals to be listed by :i (indented below their parents?)
and observations of locals to be split into same-instance
groups (headed by whatever contextual bindings for variables
are available)
-
extensional observation by hat-observe of a (\..) selected
in hat-trail (important to ensure that all observations
are of exactly this function not just a function with same
source)
-
evaluation windows with bindings to selected expressions
from trace viewers (quite easy for expressions that only contain
top-level function names and/or fully evaluated data; anything
else poses representation problems)
-
hat-trail to list the sequence of IO actions, not just text
output to stdout
-
further decompose textual output into pieces connected by ++
-
hat-trail to support multiple steps along trails Eg:
- to nearest ancestral application of any top-level function
- to nearest ancestral application of a named function
- to nearest non-recursive ditto
-
hat-trail to support single-step forward reduction from a redex
(perhaps shown as indented lines starting ->)
-
option to assert trust in named modules or top-level functions
in all trace-viewing tools
-
hat-detect for new-format traces including correct handling of
untrusted computation in a trusted context and an option to show
all children of current EDT node
Done, see hat-detect
-
generalise hat-observe to hat-query, with a user-programmable
query language for more general and powerful access to the
hat trace than current commands
-
user-programmable display of expressions in textual or graphical
form
-
hat-observe option to see arguments and results of trusted
(and perhaps other) functions that have 0-arity definitions
-
a coordinating environment for tracing that, for example,
automatically closes trace windows when program is modified
and/or run again
-
a tool that cleanly truncates a trace file as if the computation
had been interrupted at some specified break-point
-
more support in hat-trail for tracing parent uses of zero-arity
definitions and their source locations
-
run-time options to report the number of reductions (or other
computational steps) in an untraced computation and to report
corresponding numbers (or better still, a % indicator) at
intervals during a traced computation
-
make source windows active, for example allowing selection of
an application or function for observation in hat-observe
-
editable command lines with readline functionality
Done
-
special-purpose tool to locate black-holes in traces
Done, see black-hat
-
add an evaluation bit to projection/forward nodes allowing
{_}/{?} to be displayed as _ where appropriate
Controversial Wishes
-
option to show lambda expressions in full
-
a graphical user interface for hat viewers
-
always display error "... message ..." if available, not _|_
-
a Free Navigation viewer
Done, see hat-source
-
support for tracing stateful monadic computations in terms
of sequences of states
-
option to use unification instead of one-way matching with
application patterns in hat-observe
-
:o in hat-trail to use the currently selected expression as
the implicit application pattern to observe
This page last updated: 5th February 2003