Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | Credits |
2 | ======= | |
3 | ||
4 | MLton was designed and implemented by HenryCejtin, | |
5 | MatthewFluet, SureshJagannathan, and <:StephenWeeks:>. | |
6 | ||
7 | * <:HenryCejtin:> wrote the `IntInf` implementation, the original | |
8 | profiler, the original man pages, the `.spec` files for the RPMs, | |
9 | and lots of little hacks to speed stuff up. | |
10 | ||
11 | * <:MatthewFluet:> implemented the X86 and AMD64 native code generators, | |
12 | ported `mlprof` to work with the native code generator, did a lot | |
13 | of work on the SSA optimizer, both adding new optimizations and | |
14 | improving or porting existing optimizations, updated the | |
15 | <:BasisLibrary:Basis Library> implementation, ported | |
16 | <:ConcurrentML:> and <:MLNLFFI:ML-NLFFI> to MLton, implemented the | |
17 | <:MLBasis: ML Basis system>, ported MLton to 64-bit platforms, | |
18 | and currently leads the project. | |
19 | ||
20 | * <:SureshJagannathan:> implemented some early inlining and uncurrying | |
21 | optimizations. | |
22 | ||
23 | * <:StephenWeeks:> implemented most of the original version of MLton, and | |
24 | continues to keep his fingers in most every part. | |
25 | ||
26 | Many people have helped us over the years. Here is an alphabetical | |
27 | list. | |
28 | ||
29 | * <:JesperLouisAndersen:> sent several patches to improve the runtime on | |
30 | FreeBSD and ported MLton to run on NetBSD and OpenBSD. | |
31 | ||
32 | * <:JohnnyAndersen:> implemented `BinIO`, modified MLton so it could | |
33 | cross compile to MinGW, and provided useful discussion about | |
34 | cross-compilation. | |
35 | ||
36 | * Alexander Abushkevich extended support for OpenBSD. | |
37 | ||
38 | * Ross Bayer added the `-keep ast` compile-time option and experimented with | |
39 | porting the build system to CMake. | |
40 | ||
41 | * Kevin Bradley added initial support for <:SuccessorML:> features. | |
42 | ||
43 | * Bryan Camp added `-disable-pass _regex_` and `enable-pass _regex_` compile | |
44 | options to generalize `-drop-pass _regex_` and added `Array_copyArray` and | |
45 | `Array_copyVector` primitives. | |
46 | ||
47 | * Jason Carr added a parser combinator library and a parser for the <:SXML:> | |
48 | IR, extended compilation to start with a `.sxml` file, and experimented with | |
49 | alternate control-flow analyses for <:ClosureConvert: closure conversion>. | |
50 | ||
51 | * Christopher Cramer contributed support for additional | |
52 | `Posix.ProcEnv.sysconf` variables, performance improvements for | |
53 | `String.concatWith`, and Debian packaging. | |
54 | ||
55 | * Alain Deutsch and | |
56 | http://www.polyspace.com/[PolySpace Technologies] provided many bug | |
57 | fixes and runtime system improvements, code to help the Sparc/Solaris | |
58 | port, and funded a number of improvements to MLton. | |
59 | ||
60 | * Armando Doval updated `mlnlffigen` to warn and skip functions with | |
61 | `struct`/`union` arguments. | |
62 | ||
63 | * Martin Elsman provided helpful discussions in the development of | |
64 | the <:MLBasis:ML Basis system>. | |
65 | ||
66 | * Brent Fulgham ported MLton most of the way to MinGW. | |
67 | ||
68 | * <:AdamGoode:> provided a script to build the PDF MLton Guide and | |
69 | maintains the | |
70 | https://admin.fedoraproject.org/pkgdb/acls/name/mlton[Fedora] | |
71 | packages. | |
72 | ||
73 | * Simon Helsen provided bug reports, suggestions, and helpful | |
74 | discussions. | |
75 | ||
76 | * Joe Hurd provided useful discussion and feedback on source-level | |
77 | profiling. | |
78 | ||
79 | * <:VesaKarvonen:> contributed `esml-mode.el` and `esml-mlb-mode.el` (see <:Emacs:>), | |
80 | contributed patches for improving match warnings, | |
81 | contributed `esml-du-mlton.el` and extended def-use output to include types of variable definitions (see <:EmacsDefUseMode:>), and | |
82 | improved constant folding of floating-point operations. | |
83 | ||
84 | * Richard Kelsey provided helpful discussions. | |
85 | ||
86 | * Ville Laurikari ported MLton to IA64/HPUX, HPPA/HPUX, PowerPC/AIX, PowerPC64/AIX. | |
87 | ||
88 | * Brian Leibig implemented the <:LLVMCodegen:>. | |
89 | ||
90 | * Geoffrey Mainland helped with FreeBSD packaging. | |
91 | ||
92 | * Eric McCorkle ported MLton to Intel Mac. | |
93 | ||
94 | * <:TomMurphy:> wrote the original version of `MLton.Syslog` as part | |
95 | of his `mlftpd` project, and has sent many useful bug reports and | |
96 | suggestions. | |
97 | ||
98 | * Michael Neumann helped to patch the runtime to compile under | |
99 | FreeBSD. | |
100 | ||
101 | * Barak Pearlmutter built the original | |
102 | http://packages.debian.org/mlton[Debian package] for MLton, and | |
103 | helped us to take over the process. | |
104 | ||
105 | * Filip Pizlo ported MLton to (PowerPC) Darwin. | |
106 | ||
107 | * Vedant Raiththa extended the <:ForeignFunctionInterface:> with support for | |
108 | `pure` and `impure` attributes to `_import`. | |
109 | ||
110 | * Krishna Ravikumar added initial support for vector expressions and the | |
111 | `Vector_vector` primitive. | |
112 | ||
113 | * John Reppy assisted in porting MLton to Intel Mac. | |
114 | ||
115 | * Sam Rushing ported MLton to FreeBSD. | |
116 | ||
117 | * Rob Simmons refactored the array and vector implementation in the | |
118 | <:BasisLibrary: Basis Library:> into a primitive implementation (using | |
119 | `SeqInt.int` for indexing) and a wrapper implementation (using the default | |
120 | `Int.int` for indexing). | |
121 | ||
122 | * Jeffrey Mark Siskind provided helpful discussions and inspiration | |
123 | with his Stalin Scheme compiler. | |
124 | ||
125 | * Matthew Surawski added <:LoopUnroll:> and <:LoopUnswitch:> SSA optimizations. | |
126 | ||
127 | * <:WesleyTerpstra:> added support for `MLton.Process.create`, made | |
128 | a number of contributions to the <:ForeignFunctionInterface:>, | |
129 | contributed a number of runtime system patches, | |
130 | added support for compiling to a <:LibrarySupport:C library>, | |
131 | ported MLton to http://mingw.org[MinGW] and all http://packages.debian.org/search?keywords=mlton&searchon=names&suite=all§ion=all[Debian] supported architectures with <:CrossCompiling:cross-compiling> support, | |
132 | and maintains the http://packages.debian.org/search?keywords=mlton&searchon=names&suite=all§ion=all[Debian] and http://mingw.org[MinGW] packages. | |
133 | ||
134 | * Maksim Yegorov added rudimentary support for `./configure` and other | |
135 | improvements to the build system and implemented the <:ShareZeroVec:> SSA | |
136 | optimization. | |
137 | ||
138 | * Luke Ziarek assisted in porting MLton to (PowerPC) Darwin. | |
139 | ||
140 | We have also benefited from other software development tools and | |
141 | used code from other sources. | |
142 | ||
143 | * MLton was developed using | |
144 | <:SMLNJ:Standard ML of New Jersey> and the | |
145 | <:CompilationManager:Compilation Manager (CM)> | |
146 | ||
147 | * MLton's lexer (`mlton/frontend/ml.lex`), parser | |
148 | (`mlton/frontend/ml.grm`), and precedence-parser | |
149 | (`mlton/elaborate/precedence-parse.fun`) are modified versions of | |
150 | code from SML/NJ. | |
151 | ||
152 | * The MLton <:BasisLibrary:Basis Library> implementation of | |
153 | conversions between binary and decimal representations of reals uses | |
154 | David Gay's http://www.netlib.org/fp/[gdtoa] library. | |
155 | ||
156 | * The MLton <:BasisLibrary:Basis Library> implementation uses | |
157 | modified versions of portions of the the SML/NJ Basis Library | |
158 | implementation modules `OS.IO`, `Posix.IO`, `Process`, | |
159 | and `Unix`. | |
160 | ||
161 | * The MLton <:BasisLibrary:Basis Library> implementation uses | |
162 | modified versions of portions of the <:MLKit:ML Kit> Version 4.1.4 | |
163 | Basis Library implementation modules `Path`, `Time`, and | |
164 | `Date`. | |
165 | ||
166 | * Many of the benchmarks come from the SML/NJ benchmark suite. | |
167 | ||
168 | * Many of the regression tests come from the ML Kit Version 4.1.4 | |
169 | distribution, which borrowed them from the | |
170 | http://www.dina.kvl.dk/%7Esestoft/mosml.html[Moscow ML] distribution. | |
171 | ||
172 | * MLton uses the http://www.gnu.org/software/gmp/gmp.html[GNU multiprecision library] for its implementation of `IntInf`. | |
173 | ||
174 | * MLton's implementation of <:MLLex: mllex>, <:MLYacc: mlyacc>, | |
175 | the <:CKitLibrary:ckit Library>, | |
176 | the <:MLLPTLibrary:ML-LPT Library>, | |
177 | the <:MLRISCLibrary:MLRISC Library>, | |
178 | the <:SMLNJLibrary:SML/NJ Library>, | |
179 | <:ConcurrentML:Concurrent ML>, | |
180 | mlnlffigen and <:MLNLFFI:ML-NLFFI> | |
181 | are modified versions of code from SML/NJ. |