We are happy to announce the release of the version 0.5 of our type<br>error slicing software for the SML programming language.<br><br>Major improvements over the previous release:<br> * Handling of the SML 'open' feature.<br>
* Handling of the SML datatype replication feature.<br> * Type error slices can now be displayed in a terminal window or in<br> a web browser.<br> * We supply Ubuntu and Fedora packages.<br><br>Other less important improvement is:<br>
* We improved our minimisation algorithm.<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>New Ubuntu (Debian based) and Fedora (Red-Hat based) packages of our<br>type error slicer can be found at this URL:<br>
<a href="http://www.macs.hw.ac.uk/ultra/compositional-analysis/type-error-slicing/">http://www.macs.hw.ac.uk/ultra/compositional-analysis/type-error-slicing/</a><br><br>We will also shortly release a plain archive of our type error<br>
slicer.<br><br>At the time of the release of version 0.4, we forgot to update the web<br>demo. We have now updated our web demo from version 0.3 to version 0.5.<br><br>Known limitations:<br> * We have not yet built the software for other operating systems<br>
than Linux.<br> * The currently supported user interfaces are via a terminal window,<br> GNU Emacs (or our web demo). We are currently developing a Vim<br> interface.<br> * Some type errors are not yet discovered (the user will need to<br>
rely on their usual type checker in these cases). Notable spots<br> where the implementation is incomplete are functors (you can work<br> around this by including signatures on functor applications),<br> equality types.<br>
* Concerning fixity declarations, programs are parsed as though the<br> declarations were not there, which gives wrong results.<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 do not report free identifiers anymore.<br> * We have some known issues ';' that can lead to incorrect<br> constraint generations and so to wrong type error messages. We<br>
are currently working on a new version of the slicer that will fix<br> this issue.<br><br>Best wishes,<br><br>Vincent Rahli and Joe Wells<br>