Releases of Moscow SML

1.00 (1 September 1994) 
  * First public release, supposed to be reliable.

1.01 (2 September 1994) 
  * Fixed the bewildering error message from test R021B-FL.

1.02 (6 September 1994)
  * Removed `Internal error: domPatAcc' from the function of that name in 
    asynt.ml, which was reported upon elaborating 
	val ref (x as (y, z)) = ref (1, 2)

  * Made the compiler reject unbalanced comments: (op *) (2,3);
    and record labels starting with 0: {02 = true};

1.03 (12 September 1994)
  * In the implementation of `use', open_in replaced with
    open_in_bin, to avoid wrong calculation of file positions
    when reporting errors.

1.10 (28 September 1994)
  * Exceptions in integer and real arithmetic operations are raised
    correctly. (Including floor.)  The real arithmetic exceptions work
    under DOS, Windows, Linux, Ultrix, OSF/1, HP/UX, Sun OS.

  * The representation of top-level exceptions has been changed
    to enable SML programs to handle the exceptions raised by
    the Caml Light run-time system.

    As a consequence, the exception Interrupt can now be
    handled by SML programs. (The Caml Light name of that
    exception is sys__Break.)

    Evaluating expressions like  10 div 0  no longer causes
    Moscow SML to crash.

  * datatype X = A | B of unit; B (); now accepted.

  * Now ~100 div 10 = ~10. (Previously it was ~11!).

  * Too large integer or real constants now give rise to error reports.

  * Error reports produced by the type-checker for the
    expressions like 0 = [1,2,3] has been made more
    understandable.

  * Unbound variables are identified before type-checking.  (To
    avoid strange error reports in expressions like 2*~2.)

  * As required by the Definition, inexhaustive patterns in 
    valbinds at the top level are no longer reported. (For 
    example, in val nil = [].)
