English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
Release of version 0.4 of the ULTRA type error slicer for SML
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2009-11-13 (19:28)
From: rahli vincent <vincent.rahli@g...>
Subject: Release of version 0.4 of the ULTRA type error slicer for SML
We are happy to announce the release of the version 0.4 of our type
error slicing software for the SML programming language.

Major improvements over the previous release:
  * Overloaded operators can now be specified.
  * Special comments can now inform the type error slicer about
    identifiers in the top-level environment with their
    types/signatures.  (This allows handling things like "use" and
    "CM.autoload" and working around the fact that we do not yet
    support "open".)
  * We provide a larger basis including more of the standard SML basis
    and some SML/NJ-specific declarations.
  * We fixed many cases where the Emacs interface failed silently.

Other less important changes/improvements are:
  * We improved the error slices for record clashes.
  * We improved the pretty printing of error slices.
  * We improved the highlighting of white spaces.
  * We improved our error slice minimisation algorithm.
  * We improved the communication between our type error slicer and
    its Emacs interface.
  * We provide new error messages on status clashes (for example
    between an exception constructor and a datatype constructor).
  * Our test case database is much bigger, so there are fewer problems
    in general.
  * And we solved many bugs.

Even more changes are documented in the ChangeLog file.

The aim of our type error slicer is to provide useful type error
reports for pieces of code written in SML:
  * It 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.
  * It highlights these program points in the original, unchanged
    source code.
  * It avoids showing internal details of the operation of the type
    inference machinery.

A new compiled package of our type error slicer can be found at this URL:


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 (you can work around this by including
    signatures on functor applications), equality types, and fixity
  * We don't yet handle overloaded constants (for example 1 is always
    of type int).
  * The details of the SML basis library are 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 context dependencies on long
    identifiers which yields wrong error reports.

Best wishes,

Vincent Rahli and Joe Wells