[ The Types Forum (announcements only), 
     http://lists.seas.upenn.edu/mailman/listinfo/types-announce ]

We are happy to announce the first public release of our type error
slicing software for the SML programming language.

All information can be found at this URL:

  http://www.macs.hw.ac.uk/ultra/compositional-analysis/type-error-slicing/

The aim of our type error slicer is to provide useful type error
reports for pieces of code written in SML.  Our type error slicer:

  * Identifies all of the program points that contribute to a type
    error (including the spot with the actual programming error that
    caused the type error),
  * Highlights these program points in the original, unchanged source
    code, and
  * Avoids showing internal details of the operation of the type
    inference machinery.

At the URL mentioned above, you can find a compiled package of the
software that is ready to be used.  The package contains:

  * Installation instructions and an installation shell script.
  * A compiled SML binary for Linux on the i386 architecture.  We
    have tested this on CentOS 5.3, Fedora 7, Ubuntu 9.04 and
    Gentoo.
  * Emacs Lisp code that extends GNU Emacs with commands that
    highlight source code with information about type error slices.
    We have tested this with GNU Emacs versions 22.1, 22.3 and 23.1.
  * A 19 page user guide containing detailed explanations of how to
    use the software and interpret the type error slices.
  * A very large number of sample test cases.

Known limitations:

  * We have not yet built the software for other operating systems
    than Linux.
  * The only currently supported user interface is via GNU Emacs (or
    our web demo).
  * Some features of the SML language are not parsed (the user will be
    notified if this is the case), and some type errors are not yet
    discovered (the user will need to rely on their usual type checker
    in these cases).  Notable spots where the implementation is
    incomplete are functors, overloading, equality types, and fixity
    declarations.
  * The details of the SML basis library are woefully incomplete
    (fortunately the user can add any additional details they are
    using).
  * The software does not currently scale well to very large programs
    (we are still improving this).  It is currently suitable for small
    programs and use in teaching.
  * We have some known issues with statuses of long identifiers
    and exceptions which yields wrong error reports.

There is also a web demonstration of the software with over 270 sample
test cases, so you can try without needing to install the software.

Best wishes,

Vincent Rahli and Joe Wells

Reply via email to