hat: The Haskell tracer, generating and viewing Haskell execution traces

[ development, library, program ] [ Propose Tags ] [ Report a vulnerability ]

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.9 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.9 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.9.5.

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. The tracing transformation does produce code with lots of overlapping patterns.

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.

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 2.7.0.0, 2.7.0.1, 2.7.0.2, 2.7.0.3, 2.7.0.4, 2.7.0.5, 2.7.0.6, 2.7.0.7, 2.7.0.8, 2.7.0.9, 2.7.0.10, 2.7.0.11, 2.7.0.12, 2.8.0.0, 2.9.0.0, 2.9.1, 2.9.2, 2.9.3, 2.9.4
Dependencies base (>=4.5 && <5), bytestring (>=0.9), containers (>=0.5.2), directory (>=1.1), filepath (>=1.3), haskeline (>=0.6), haskell-src-exts (>=1.16 && <1.17), old-locale (>=1.0), old-time (>=1.1), polyparse (>=1.11), process (>=1.1), random (>=1.0) [details]
Tested with ghc ==7.8.3
License LicenseRef-OtherLicense
Copyright (c) 2000-2015 Hat team
Author Hat team
Maintainer oc@kent.ac.uk
Revised Revision 1 made by HerbertValerioRiedel at 2016-08-21T11:02:45Z
Category Development
Home page http://projects.haskell.org/hat/
Bug tracker oc@kent.ac.uk
Source repo head: git clone git://github.com/OlafChitil/hat.git
Uploaded by OlafChitil at 2015-07-16T15:38:06Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Executables hat-make, hat-delta, pretty-hat, hat-anim, hat-nonterm, black-hat, hat-cover, hat-view, hat-check, hat-detect, hat-explore, hat-stack, hat-observe, hat-trail, hat-trans
Downloads 16146 total (82 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2015-07-16 [all 1 reports]