hat-trans transforms Module.hs into Hat/Module.hs such that when the program is
executed, a trace file Programname.hat is generated.
Various tools (hat-trail, hat-observe, hat-explore ...) then allow viewing the
trace file in different ways, to locate a bug or understand how a program works.
Hat 2.8 uses the haskell-src-exts parser and other Hackage libraries to
reduce its own size and simplify extensions. Module imports and exports have
also been improved to handle nearly all kinds of renaming, hiding, etc.
Hat 2.8 works only with ghc for Haskell 98 (plus a few extensions) and
the standard Haskell 98 libraries plus some Haskell 2010 libraries.
Although it should build on any operating system,
most viewing tools use ASCII console escape sequences and they open xterms;
hence they will only work well under Unix and X11.
Tested on MacOS X 10.8.4.
Installation:
> cabal -v install
Flag -v allows you to see what is going on. Building takes a long time
(one module has 25.000 lines of code). Don't worry about numerous warning messages.
Use:
> hat-make MyProgram.hs
transforms and compiles all modules of your program and produces the tracing
version Hat/MyProgram.
Run your program
> Hat/MyProgram
which will produce trace files MyProgram.hat*
Use the viewing tools to explore the trace:
> hat-trail / hat-observe / hat-explore /... MyProgram
There is documentation in the "docs" folder, but it is partially outdated.
There are a few small programs for exploring tracing in the "examples" folder.