We are happy to announce the release of the version 0.4 of our type<br>error slicing software for the SML programming language.<br><br>Major improvements over the previous release:<br> * Overloaded operators can now be specified.<br>
* Special comments can now inform the type error slicer about<br> identifiers in the top-level environment with their<br> types/signatures. (This allows handling things like "use" and<br> "CM.autoload" and working around the fact that we do not yet<br>
support "open".)<br> * We provide a larger basis including more of the standard SML basis<br> and some SML/NJ-specific declarations.<br> * We fixed many cases where the Emacs interface failed silently.<br>
<br>Other less important changes/improvements are:<br> * We improved the error slices for record clashes.<br> * We improved the pretty printing of error slices.<br> * We improved the highlighting of white spaces.<br> * We improved our error slice minimisation algorithm.<br>
* We improved the communication between our type error slicer and<br> its Emacs interface.<br> * We provide new error messages on status clashes (for example<br> between an exception constructor and a datatype constructor).<br>
* Our test case database is much bigger, so there are fewer problems<br> in general.<br> * And we solved many bugs.<br><br>Even more changes are documented in the ChangeLog file.<br><br>The aim of our type error slicer is to provide useful type error<br>
reports for pieces of code written in SML:<br> * It identifies all of the program points that contribute to a type<br> error, including the spot with the actual programming error that<br> caused the type error.<br>
* It highlights these program points in the original, unchanged<br> source code.<br> * It avoids showing internal details of the operation of the type<br> inference machinery.<br><br>A new compiled package of our type error slicer can be found at this URL:<br>
<br> <a href="http://www2.macs.hw.ac.uk/~rahli/cgi-bin/slicer/downloads.html">http://www2.macs.hw.ac.uk/~rahli/cgi-bin/slicer/downloads.html</a><br><br>Known limitations:<br> * We have not yet built the software for other operating systems<br>
than Linux.<br> * The only currently supported user interface is via GNU Emacs (or<br> our web demo).<br> * Some features of the SML language are not parsed (the user will be<br> notified if this is the case), and some type errors are not yet<br>
discovered (the user will need to rely on their usual type checker<br> in these cases). Notable spots where the implementation is<br> incomplete are functors (you can work around this by including<br> signatures on functor applications), equality types, and fixity<br>
declarations.<br> * We don't yet handle overloaded constants (for example 1 is always<br> of type int).<br> * The details of the SML basis library are incomplete (fortunately<br> the user can add any additional details they are using).<br>
* The software does not currently scale well to very large programs<br> (we are still improving this). It is currently suitable for small<br> programs and use in teaching.<br> * We have some known issues with context dependencies on long<br>
identifiers which yields wrong error reports.<br><br>Best wishes,<br><br>Vincent Rahli and Joe Wells<br>