From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id A1BD0BC37 for ; Fri, 13 Nov 2009 20:28:46 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtkCAEpC/UrRVdK2kGdsb2JhbACCHjKPP4lFPwEBAQEJCQwHEwOoYIE5hjWIawEDAwWENwSBbQ X-IronPort-AV: E=Sophos;i="4.44,739,1249250400"; d="scan'208";a="40078978" Received: from mail-yx0-f182.google.com ([209.85.210.182]) by mail1-smtp-roc.national.inria.fr with ESMTP; 13 Nov 2009 20:28:45 +0100 Received: by yxe12 with SMTP id 12so3272922yxe.1 for ; Fri, 13 Nov 2009 11:28:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type; bh=fubfGkY/hgKC0i9m1STfkkPjDA3lHDTiPJXo+q8jKUU=; b=eZbFy09DT8ErGfNjVQSMTGwAxafV+gAZ+Yq345yia2W44SEJuNqiZZ93A1rxpeY91G aK3GF0jBPltNDCjD62rmddYp2ymQIq7AsJL86QDOM1mH0Qxa3pzzekmjUrTePxgNvbrT Sax0DEYWFasKDA22gtvhbe/6Bjmbp7PQKDeZ0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=YEMcPT9iNzSmXWjOnUbpBz3AFrRkhULcUWES/lSR31uxW8mOAIuuzuy4aE+sNRm+Ex tBOIrYtUIMkLLshtnxgpM09PZPBqyCkM/tKHwrKDyCH358sWvu8bmtXBEewJ2bPJjtGG WnFVhE/xfVWAsDpDc67EqmE6bESwm6/OV2DjQ= MIME-Version: 1.0 Received: by 10.213.0.138 with SMTP id 10mr451539ebb.56.1258140524377; Fri, 13 Nov 2009 11:28:44 -0800 (PST) Date: Fri, 13 Nov 2009 19:28:44 +0000 Message-ID: <950ae21c0911131128p6afabbc5vd6218e9c4f9e3507@mail.gmail.com> Subject: Release of version 0.4 of the ULTRA type error slicer for SML From: rahli vincent To: caml-list@yquem.inria.fr Content-Type: multipart/alternative; boundary=000e0cdfdb1e0878ac047845abfe X-Spam: no; 0.00; emacs:01 clashes:01 emacs:01 clashes:01 datatype:01 inference:01 checker:01 functors:01 functor:01 dependencies:01 datatype:01 inference:01 checker:01 functors:01 functor:01 --000e0cdfdb1e0878ac047845abfe Content-Type: text/plain; charset=ISO-8859-1 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: http://www2.macs.hw.ac.uk/~rahli/cgi-bin/slicer/downloads.html 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 declarations. * 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 --000e0cdfdb1e0878ac047845abfe Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable We are happy to announce the release of the version 0.4 of our type
erro= r slicing software for the SML programming language.

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

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

Even more c= hanges are documented in the ChangeLog file.

The aim of our type err= or slicer is to provide useful type error
reports for pieces of code written in SML:
=A0 * It identifies all of th= e program points that contribute to a type
=A0=A0=A0 error, including th= e spot with the actual programming error that
=A0=A0=A0 caused the type = error.
=A0 * It highlights these program points in the original, unchanged
=A0= =A0=A0 source code.
=A0 * It avoids showing internal details of the oper= ation of the type
=A0=A0=A0 inference machinery.

A new compiled p= ackage of our type error slicer can be found at this URL:

=A0 http://www2.macs.hw.ac.uk/~rahli/cgi-bin/slicer/downloads.html<= br>
Known limitations:
=A0 * We have not yet built the software for o= ther operating systems
=A0=A0=A0 than Linux.
=A0 * The only currently supported user interface = is via GNU Emacs (or
=A0=A0=A0 our web demo).
=A0 * Some features of = the SML language are not parsed (the user will be
=A0=A0=A0 notified if = this is the case), and some type errors are not yet
=A0=A0=A0 discovered (the user will need to rely on their usual type checke= r
=A0=A0=A0 in these cases).=A0 Notable spots where the implementation i= s
=A0=A0=A0 incomplete are functors (you can work around this by includi= ng
=A0=A0=A0 signatures on functor applications), equality types, and fi= xity
=A0=A0=A0 declarations.
=A0 * We don't yet handle overloaded constan= ts (for example 1 is always
=A0=A0=A0 of type int).
=A0 * The details= of the SML basis library are incomplete (fortunately
=A0=A0=A0 the user= can add any additional details they are using).
=A0 * The software does not currently scale well to very large programs
= =A0=A0=A0 (we are still improving this).=A0 It is currently suitable for sm= all
=A0=A0=A0 programs and use in teaching.
=A0 * We have some known = issues with context dependencies on long
=A0=A0=A0 identifiers which yields wrong error reports.

Best wishes,=

Vincent Rahli and Joe Wells
--000e0cdfdb1e0878ac047845abfe--