16 Credits
MLton was designed and implemented by Henry Cejtin, Matthew Fluet, Suresh
Jagannathan, and Stephen Weeks.
- Henry Cejtin (henry at sourcelight.com) wrote the IntInf
implementation, the original profiler, the original man pages, the .spec files for the RPMs, and lots of little hacks to speed stuff up.
- Matthew Fluet (fluet at cs.cornell.edu) implemented the
X86 native code generator, ported mlprof to work with the
native code generator, did a lot of work on the SSA optimizer, both
adding new optimizations and improving or porting existing
optimizations, updated the basis library implementation, and
implemented MLBs.
- Suresh Jagannathan (suresh at cs.purdue.edu) implemented
some early inlining and uncurrying optimizations.
- Stephen Weeks (sweeks at sweeks.com) implemented most of the original
version of MLton, and continues to keep his fingers in most every part.
Many people have helped us over the years. Here is an alphabetical list.
- Jesper Louis Andersen (jlouis at mongers.org) sent several patches
to improve the runtime on FreeBSD and ported MLton to run on NetBSD
and OpenBSD.
- ÁNOQ of the Sun (anoq at HardcoreProcessing.com) implemented BinIO, modified MLton so it could cross compile to MinGW, and provided useful
discussion about cross-compilation.
- Alain Deutsch (deutsch at polyspace.com) and PolySpace
Technologies provided many bug fixes and
runtime system improvements, as well as some code to help the Sparc
port.
- Martin Elsman (mael at itu.dk) provided helpful discussions in the
development of MLBs.
- Brent Fulgham ported MLton to MinGW.
- Simon Helsen (shelsen at acm.org) has provided bug reports, suggestions,
and helpful discussions.
- Joe Hurd (joe.hurd at cl.cam.ac.uk) provided useful discussion
and feedback on source-level profiling.
- Richard Kelsey (kelsey at research.nj.nec.com) provided helpful
discussions.
- Tom Murphy (twm at andrew.cmu.edu) wrote the original version
of MLton.Syslog as part of his mlftpd project, and has
sent many useful bug reports and suggestions.
- Michael Neumann (uu9r at rz.uni-karlsruhe.de) helped to patch the runtime
to compile under FreeBSD.
- Barak Pearlmutter (bap at cs.unm.edu) built the original
Debian packages
for MLton, and helped us to take over the process.
- Filip Pizlo (filip at cs.purdue.edu) ported MLton to
Darwin.
- Sam Rushing (rushing at nightmare.com) ported MLton to FreeBSD.
- Jeffrey Mark Siskind (qobi at purdue.edu) provided helpful discussions
and inspiration with his Stalin Scheme compiler.
- Luke Ziarek (lziarek at cs.purdue.edu) assisted in porting
MLton to Darwin.
We have also benefited from other software development tools and borrowed code
from other sources.
- MLton was developed using
Standard ML of New Jersey
and the
Compilation Manager (CM).
- MLton's lexer (mlton/frontend/ml.lex),
parser (mlton/frontend/ml.grm),
and precedence-parser (mlton/elaborate/precedence-parse.fun)
are modified versions of code from the SML/NJ.
- MLton uses the SML/NJ library implementation of splay trees.
- The MLton basis library implementation of Real.{fmt, fromDecimal, fromString, scan, toDecimal, toString} uses David Gay's
gdtoa
library.
- The MLton basis library implementation uses modified versions of
portions of the the SML/NJ basis library modules OS.IO, Posix.IO, Process, and Unix.
- The MLton basis library implementation uses modified versions of
portions of the
ML Kit Version 3
basis library modules Path, Time, and Date.
- Many of the benchmarks come from the SML/NJ benchmark suite.
- Many of the regression tests come from the ML Kit Version 3 distribution, which
borrowed them from the
Moscow ML
distribution.
- MLton uses the
GNU multiprecision library
for its implementation of IntInf.