The interactive file manager requires Javascript. Please enable it or use sftp or scp.
You may still browse the files here.

Download Latest Version mlton-20130715.src.tgz (25.6 MB)
Email in envelope

Get an email when there's a new version of MLton

Home / mlton / 20011006
Name Modified Size InfoDownloads / Week
Parent folder
mlton_20011006.1-2_i386.deb 2002-02-23 3.3 MB
mlton-20011006-1.rhat6x.i386.tgz 2001-10-07 3.4 MB
mlton-20011006-1.i386.tgz 2001-10-07 3.5 MB
mlton-20011006-1.rhat6x.i386.rpm 2001-10-07 3.4 MB
mlton-20011006-1.i386.rpm 2001-10-07 3.5 MB
mlton-20011006-1.rhat6x.src.rpm 2001-10-07 2.4 MB
mlton-20011006-1.src.rpm 2001-10-07 2.4 MB
mlton-20011006-1.src.tgz 2001-10-07 2.4 MB
README.txt 2001-10-07 4.1 kB
Totals: 9 Items   24.1 MB 1
Here are the changes from version 20010806 to version 20011006.

Summary:
   + Added MLton.Exn.history, which is similar to SMLofNJ.exnHistory.
   + Support for #line directives of the form (*#line line.col "file"*).
   + Performance improvements in native codegenerator.
   + Bug fixes in front-end, optimizer, register allocator,
     Real.{maxFinite, minPos, toManExp}, and in heap save and restore.

* 2001-10-5
  - Fixed a bug in polymorphic layered patterns, like
	val 'a a as b = []
    These would always fail due to the variable "a" not being handled correctly.
  - Fixed the syntax of "val rec" so that a pattern is allowed on the left-hand
    side of the =.  Thus, we used to reject, but now accept, the following.
	val rec a as b as c = fn _ => ()
	val rec a : unit -> unit : unit -> unit = fn () => ()
    Thanks again to Andreas Rossberg's test files.  This is now tested for in
    valrec.sml.
  - Fixed dynamic semantics of "val rec" so that if "val rec" is used to
    override constructor status, then at run time, the Bind exception is raised
    as per rule 126 of the Definition.  So, for example, the following program
    type checks and compiles, but raises Bind at run time.
	val rec NONE = fn () => ()
	val _ = NONE ()
    Again, this is checked in valrec.sml.
  - Added '\r\n' to ml.lex so that Windows style newlines are acceptable in
    input files.

* 2001-10-4
  - Fixed bug in the implementation of "open" declarations, which in the case of
    "open A B" had opened A and then looked up B in the resulting environment.
    The correct behaviour (see rule 22 of the Definition) is to lookup each
    longstrid in the current environment, and then open them all in sequence.
    This is now checked for in the open.sml regression test.  Thanks to Andreas
    Rossberg for pointing this bug out.
  - Fixed bug that caused tyvars of length 1 (i.e. ') to be rejected.  This is
    now checked in the id.sml regression test.  Again, thanks to Andreas
    Rossberg for the test.

* 2001-10-2
  - Fixed bugs in Real.toManExp (which always returned the wrong result because
    the call to frexp was not treated as side-effecting by the optimizer) and
    in Real.minPos, which was zero because of a mistake with extra precision
    bits.

* 2001-10-1
  - Added MLton.Exn.history.
  - Fixed register allocation bug with fucom instruction.  Was
    allowing fucomp when the first source was not removable.
  - Changed Real.isFinite to use the C math.h finite function.  This fixed the
    nontermination bug which occurred in any program that used Real.maxFinite.

* 2001-9-22
  - Bug fixes found from Ramsey's lrtl in contify.fun and unused-args.fun, both
    of which caused compile-time exceptions to be raised.

* 2001-9-21
  - Fixed MLton.World.{load,save} so that the saved world does not store the
    max heap size.  Instead, the max heap size is computed upon load world in
    exactly the same way as at program startup.  This fixes a long standing (but
    only recently noticed) problem in which mlton (which uses a saved world)
    would attempt to use as much memory as was on the machine used to build
    world.mlton.

* 2001-8-22
  - Added support for #line directives of the form
	(*#line line.col "file"*)
    These directives only affect error messages produced by the parser and
    elaborator.   

* 2001-8-17
  - Fixed bug in removeUnused optimzation that caused the following program to
    fail to compile.
	fun f l = case l of [] => f l | _ :: l => f l
	val _ = f [13]

* 2001-8-14
  - New x86-codegen infrastructure.
    o support for tracking liveness of stack slots and carrying them
       in registers across basic blocks
    o more specific Entry and Transfer datatypes to make calling convention
       distinctions more explicit
    o new heuristic for carrying values in registers across basic blocks
       (look Ma, no Overflows!)
    o new "predict" model for generating register allocation hints
    o additional bug fixes

* 2001-8-7
  - MLton.Socket.shutdownWrite flushes the outstream.
Source: README.txt, updated 2001-10-07