I am pleased to announce the release of version 1.2 of HaMLet.

HaMLet is a faithful implementation of the Standard ML programming language (SML'97) that aims to be

  - an accurate reference implementation of the language specification,
  - a platform for experimentation with the language semantics,
  - a useful tool for educational purposes.

The HaMLet sources are intended to be as direct a translation of the language formalisation as possible. Even program evaluation is performed by a direct implementation of the rules of the dynamic semantics. The source code follows the structure of the SML Definition and is heavily cross-referenced.

HaMLet can perform different phases of execution - like parsing, type checking, and evaluation - selectively. In particular, it is possible to execute programs in an untyped manner, thus exploring the universe where even ML programs "can go wrong".

The main improvements relative to version 1.1 are:

  - Source code restructured for better clarity and extensibility.
  - Checking of syntactic restrictions made a separate pass
    (renders parsing and evaluation-only functionality more accurate).
  - Bug fixes and improvements in the elaborator. Some additional
    issues in the Definition resolved.
  - Improved usability (error locations, pretty printing).
  - Sync'ed with published Basis Library specification. Bug fixes.
  - Additional test cases exploring dark corners of the language.
  - Updated support for building with different SML systems.

See http://www.ps.uni-sb.de/hamlet/CHANGES.txt for details.

For download and more information, please visit the HaMLet homepage at:

	http://www.ps.uni-sb.de/hamlet/
