[MLton-devel] MLton report and survey

Stephen Weeks MLton@mlton.org
Tue, 7 Jan 2003 18:46:38 -0800

I was thinking of sending the following to MLton-user and
comp.lang.ml.  Comments on the report or survey (please try it out)

I thought it would be nice to start the new year with a report on the
MLton optimizing Standard ML compiler: our history, progress in 2002,
and plans for the future.  If you have any questions about MLton, you
can check our web page at www.mlton.org, contact the development team
at MLton@mlton.org, or reach the MLton user community at

MLton started in July 1997 as a defunctorizer for Standard ML.  From
there, MLton morphed into a full-fledged compiler for SML and was
first released in March 1999.  From the start, MLton has been driven
by whole-program optimization and an emphasis on performance.  Also
from the start, MLton has had a fast C FFI and IntInf based on the GNU
multiprecision library.  At its first release, MLton was 48,006 lines.

Between the March 1999 and January 2002, MLton grew to 102,541 lines,
as we added a native code generator, mllex, mlyacc, a profiler, many
optimizations, and many libraries including threads and signal
handling.  During 2002, we had releases in April and September and
MLton grew to 112,204 lines, as we added support for cross compilation
and used this to enable MLton to run on Cygwin/Windows and FreeBSD.
We also made improvements to the garbage collector, so that it now
works with large arrays and up to 4G of memory and so that it
automatically uses copying, mark-compact, or generational collection
depending on heap usage and RAM size.  We also continued improvements
to the optimizer and libraries.

We anticipate the next release of MLton will be in February 2003.
This release will include source-level profiling for both time and
allocation and the ability to display the call-graph of the source
program.  It will also include a basis library matching the 2002
specification and the Net* and Socket modules.  Beyond that release,
we are considering many improvements, including:

        * a proper front-end
        * ports to new OSes (MinGW, Windows, ...) 
        * ports to new architectures (x86-64, Itanium, ...)
        * a space profiler
        * additional integer or real types (Int64, Real32, Real80)
        * support for calling SML from C
        * improvements to the C code generator
        * a source-level debugger
        * a port of CML to MLton
        * documentation of compiler internals 
        * additional optimizations
                - variant-tag elimination
                - bounds-check elimination
                - double alignment
                - array flattening

We would like to hear both from those of you who already use MLton and
those of you who might like to use MLton in the future, but haven't
yet done so for some reason.  To that end, we have created a short
survey at


The survey will help us to understand the improvements to MLton that
would be most useful to our users and to set priorities for 2003.
Thank you very much for filling it out.

Happy SML programming in 2003.
-- The MLton Team

This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
MLton-devel mailing list