Hat Logo

Hat status


The latest stable release is 2.02. The CVS development tree is now at version 2.03. Bugfixes and important changes to the system are described here for the two most recent released versions.


Hat 2.02 (2003-03-26) features

  • New: Hat supports hierarchical module namespaces, and the distribution includes a tracing version of (a subset of) the base package of standard hierarchical libraries.
  • New: Hat supports multi-parameter type classes and functional dependencies, provided your underlying compiler supports them (i.e. ghc).
  • New: The browsing tools support qualified name syntax.
  • Performance: The speed of traced programs is now much improved. There is a new "known-arity" optimisation within Hat itself, which gives a speed-up of ~20-40%. Also, if you use --buildwith=-O when configuring Hat for ghc, you will get another 20-40% improvement. Beware however that -O requires a lot of memory (≥512Mb).
  • Bugfix: Named field constructions and updates are now displayed in the browsing tools as named fields.
  • Bugfix: The viewing tools displayed some sugared lists misleadingly: when the tail of a sugared list was cut off or undefined it was shown as if it was a final element. Now it has an ellipsis (...) to indicate possible extra elements.
  • Bugfix: After :set recursive off hat-observe showed the non-recursive calls of f even if given the application pattern f in f.
  • Bugfix: hat-observe :info counts did not necessarily match the number of observations if there were partial or super-saturated applications.
  • Bugfix: hat-trail now works correctly in environments (e.g. Solaris) that do not have stty cbreak mode.
  • Bugfix: Scrolling sometimes blanked the upper part of the hat-trail display when the trace was extended deeper than the window.
  • Bugfix: The hat-trail display became corrupted if a single trail expression or equation was large enough to scroll off the screen.
  • Bugfix: Hat-trans generated wrongly-parenthesised code for some lambda expressions.
  • Bugfix: Hat-trans generated incorrect values for some non-printing characters.
  • Tidyup: For consistency, the :observe command within hat-observe now starts a fresh hat-observe window. Also, in hat-trail, if if you give a query pattern to the :observe command, it now uses that as the first query, instead of the currently highlighted function.
  • Numerous other small bugfixes in the various trace browsing tools.

Hat 2.00 (2002-06-14) features

  • The first version released separately from nhc98. It uses a different file format to store the trace, and the browsing tools have been completely rewritten to improve performance, integration, and correctness.

Status of various components

The basic components of hat are:

  • hat-trans, the program transformer.
  • hat-lib, the runtime library that is linked to a transformed program.
  • hat-observe, a browser driven by expression patterns.
  • hat-trail, a browser driven by backward exploration.
  • hat-detect, a browser implementing algorithmic debugging. (NOT INCLUDED)
  • hat-stack, a browser showing a back-trace from an error.
  • hat-view, a source-code viewer.
  • hat-check, to verify the integrity of a .hat file.

The latest updates to these pages are available on the WWW from http://www.haskell.org/hat/
http://www.cs.york.ac.uk/fp/hat/

This page last modified: 26th March 2003
York Functional Programming Group