Import Upstream version 20180207
[hcoop/debian/mlton.git] / doc / guide / localhost / Credits
CommitLineData
7f918cf1
CE
1<!DOCTYPE html>\r
2<html lang="en">\r
3<head>\r
4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\r
5<meta name="generator" content="AsciiDoc 8.6.9">\r
6<title>Credits</title>\r
7<link rel="stylesheet" href="./asciidoc.css" type="text/css">\r
8<link rel="stylesheet" href="./pygments.css" type="text/css">\r
9\r
10\r
11<script type="text/javascript" src="./asciidoc.js"></script>\r
12<script type="text/javascript">\r
13/*<![CDATA[*/\r
14asciidoc.install();\r
15/*]]>*/\r
16</script>\r
17<link rel="stylesheet" href="./mlton.css" type="text/css">\r
18</head>\r
19<body class="article">\r
20<div id="banner">\r
21<div id="banner-home">\r
22<a href="./Home">MLton 20180207</a>\r
23</div>\r
24</div>\r
25<div id="header">\r
26<h1>Credits</h1>\r
27</div>\r
28<div id="content">\r
29<div id="preamble">\r
30<div class="sectionbody">\r
31<div class="paragraph"><p>MLton was designed and implemented by HenryCejtin,\r
32MatthewFluet, SureshJagannathan, and <a href="StephenWeeks">StephenWeeks</a>.</p></div>\r
33<div class="ulist"><ul>\r
34<li>\r
35<p>\r
36<a href="HenryCejtin">HenryCejtin</a> wrote the <span class="monospaced">IntInf</span> implementation, the original\r
37 profiler, the original man pages, the <span class="monospaced">.spec</span> files for the RPMs,\r
38 and lots of little hacks to speed stuff up.\r
39</p>\r
40</li>\r
41<li>\r
42<p>\r
43<a href="MatthewFluet">MatthewFluet</a> implemented the X86 and AMD64 native code generators,\r
44 ported <span class="monospaced">mlprof</span> to work with the native code generator, did a lot\r
45 of work on the SSA optimizer, both adding new optimizations and\r
46 improving or porting existing optimizations, updated the\r
47 <a href="BasisLibrary">Basis Library</a> implementation, ported\r
48 <a href="ConcurrentML">ConcurrentML</a> and <a href="MLNLFFI">ML-NLFFI</a> to MLton, implemented the\r
49 <a href="MLBasis"> ML Basis system</a>, ported MLton to 64-bit platforms,\r
50 and currently leads the project.\r
51</p>\r
52</li>\r
53<li>\r
54<p>\r
55<a href="SureshJagannathan">SureshJagannathan</a> implemented some early inlining and uncurrying\r
56 optimizations.\r
57</p>\r
58</li>\r
59<li>\r
60<p>\r
61<a href="StephenWeeks">StephenWeeks</a> implemented most of the original version of MLton, and\r
62 continues to keep his fingers in most every part.\r
63</p>\r
64</li>\r
65</ul></div>\r
66<div class="paragraph"><p>Many people have helped us over the years. Here is an alphabetical\r
67list.</p></div>\r
68<div class="ulist"><ul>\r
69<li>\r
70<p>\r
71<a href="JesperLouisAndersen">JesperLouisAndersen</a> sent several patches to improve the runtime on\r
72 FreeBSD and ported MLton to run on NetBSD and OpenBSD.\r
73</p>\r
74</li>\r
75<li>\r
76<p>\r
77<a href="JohnnyAndersen">JohnnyAndersen</a> implemented <span class="monospaced">BinIO</span>, modified MLton so it could\r
78 cross compile to MinGW, and provided useful discussion about\r
79 cross-compilation.\r
80</p>\r
81</li>\r
82<li>\r
83<p>\r
84Alexander Abushkevich extended support for OpenBSD.\r
85</p>\r
86</li>\r
87<li>\r
88<p>\r
89Ross Bayer added the <span class="monospaced">-keep ast</span> compile-time option and experimented with\r
90 porting the build system to CMake.\r
91</p>\r
92</li>\r
93<li>\r
94<p>\r
95Kevin Bradley added initial support for <a href="SuccessorML">SuccessorML</a> features.\r
96</p>\r
97</li>\r
98<li>\r
99<p>\r
100Bryan Camp added <span class="monospaced">-disable-pass _regex_</span> and <span class="monospaced">enable-pass _regex_</span> compile\r
101 options to generalize <span class="monospaced">-drop-pass _regex_</span> and added <span class="monospaced">Array_copyArray</span> and\r
102 <span class="monospaced">Array_copyVector</span> primitives.\r
103</p>\r
104</li>\r
105<li>\r
106<p>\r
107Jason Carr added a parser combinator library and a parser for the <a href="SXML">SXML</a>\r
108 IR, extended compilation to start with a <span class="monospaced">.sxml</span> file, and experimented with\r
109 alternate control-flow analyses for <a href="ClosureConvert"> closure conversion</a>.\r
110</p>\r
111</li>\r
112<li>\r
113<p>\r
114Christopher Cramer contributed support for additional\r
115 <span class="monospaced">Posix.ProcEnv.sysconf</span> variables, performance improvements for\r
116 <span class="monospaced">String.concatWith</span>, and Debian packaging.\r
117</p>\r
118</li>\r
119<li>\r
120<p>\r
121Alain Deutsch and\r
122 <a href="http://www.polyspace.com/">PolySpace Technologies</a> provided many bug\r
123 fixes and runtime system improvements, code to help the Sparc/Solaris\r
124 port, and funded a number of improvements to MLton.\r
125</p>\r
126</li>\r
127<li>\r
128<p>\r
129Armando Doval updated <span class="monospaced">mlnlffigen</span> to warn and skip functions with\r
130 <span class="monospaced">struct</span>/<span class="monospaced">union</span> arguments.\r
131</p>\r
132</li>\r
133<li>\r
134<p>\r
135Martin Elsman provided helpful discussions in the development of\r
136 the <a href="MLBasis">ML Basis system</a>.\r
137</p>\r
138</li>\r
139<li>\r
140<p>\r
141Brent Fulgham ported MLton most of the way to MinGW.\r
142</p>\r
143</li>\r
144<li>\r
145<p>\r
146<a href="AdamGoode">AdamGoode</a> provided a script to build the PDF MLton Guide and\r
147 maintains the\r
148 <a href="https://admin.fedoraproject.org/pkgdb/acls/name/mlton">Fedora</a>\r
149 packages.\r
150</p>\r
151</li>\r
152<li>\r
153<p>\r
154Simon Helsen provided bug reports, suggestions, and helpful\r
155 discussions.\r
156</p>\r
157</li>\r
158<li>\r
159<p>\r
160Joe Hurd provided useful discussion and feedback on source-level\r
161 profiling.\r
162</p>\r
163</li>\r
164<li>\r
165<p>\r
166<a href="VesaKarvonen">VesaKarvonen</a> contributed <span class="monospaced">esml-mode.el</span> and <span class="monospaced">esml-mlb-mode.el</span> (see <a href="Emacs">Emacs</a>),\r
167 contributed patches for improving match warnings,\r
168 contributed <span class="monospaced">esml-du-mlton.el</span> and extended def-use output to include types of variable definitions (see <a href="EmacsDefUseMode">EmacsDefUseMode</a>), and\r
169 improved constant folding of floating-point operations.\r
170</p>\r
171</li>\r
172<li>\r
173<p>\r
174Richard Kelsey provided helpful discussions.\r
175</p>\r
176</li>\r
177<li>\r
178<p>\r
179Ville Laurikari ported MLton to IA64/HPUX, HPPA/HPUX, PowerPC/AIX, PowerPC64/AIX.\r
180</p>\r
181</li>\r
182<li>\r
183<p>\r
184Brian Leibig implemented the <a href="LLVMCodegen">LLVMCodegen</a>.\r
185</p>\r
186</li>\r
187<li>\r
188<p>\r
189Geoffrey Mainland helped with FreeBSD packaging.\r
190</p>\r
191</li>\r
192<li>\r
193<p>\r
194Eric McCorkle ported MLton to Intel Mac.\r
195</p>\r
196</li>\r
197<li>\r
198<p>\r
199<a href="TomMurphy">TomMurphy</a> wrote the original version of <span class="monospaced">MLton.Syslog</span> as part\r
200 of his <span class="monospaced">mlftpd</span> project, and has sent many useful bug reports and\r
201 suggestions.\r
202</p>\r
203</li>\r
204<li>\r
205<p>\r
206Michael Neumann helped to patch the runtime to compile under\r
207 FreeBSD.\r
208</p>\r
209</li>\r
210<li>\r
211<p>\r
212Barak Pearlmutter built the original\r
213 <a href="http://packages.debian.org/mlton">Debian package</a> for MLton, and\r
214 helped us to take over the process.\r
215</p>\r
216</li>\r
217<li>\r
218<p>\r
219Filip Pizlo ported MLton to (PowerPC) Darwin.\r
220</p>\r
221</li>\r
222<li>\r
223<p>\r
224Vedant Raiththa extended the <a href="ForeignFunctionInterface">ForeignFunctionInterface</a> with support for\r
225 <span class="monospaced">pure</span> and <span class="monospaced">impure</span> attributes to <span class="monospaced">_import</span>.\r
226</p>\r
227</li>\r
228<li>\r
229<p>\r
230Krishna Ravikumar added initial support for vector expressions and the\r
231 <span class="monospaced">Vector_vector</span> primitive.\r
232</p>\r
233</li>\r
234<li>\r
235<p>\r
236John Reppy assisted in porting MLton to Intel Mac.\r
237</p>\r
238</li>\r
239<li>\r
240<p>\r
241Sam Rushing ported MLton to FreeBSD.\r
242</p>\r
243</li>\r
244<li>\r
245<p>\r
246Rob Simmons refactored the array and vector implementation in the\r
247 <a href="BasisLibrary"> Basis Library:</a> into a primitive implementation (using\r
248 <span class="monospaced">SeqInt.int</span> for indexing) and a wrapper implementation (using the default\r
249 <span class="monospaced">Int.int</span> for indexing).\r
250</p>\r
251</li>\r
252<li>\r
253<p>\r
254Jeffrey Mark Siskind provided helpful discussions and inspiration\r
255 with his Stalin Scheme compiler.\r
256</p>\r
257</li>\r
258<li>\r
259<p>\r
260Matthew Surawski added <a href="LoopUnroll">LoopUnroll</a> and <a href="LoopUnswitch">LoopUnswitch</a> SSA optimizations.\r
261</p>\r
262</li>\r
263<li>\r
264<p>\r
265<a href="WesleyTerpstra">WesleyTerpstra</a> added support for <span class="monospaced">MLton.Process.create</span>, made\r
266 a number of contributions to the <a href="ForeignFunctionInterface">ForeignFunctionInterface</a>,\r
267 contributed a number of runtime system patches,\r
268 added support for compiling to a <a href="LibrarySupport">C library</a>,\r
269 ported MLton to <a href="http://mingw.org">MinGW</a> and all <a href="http://packages.debian.org/search?keywords=mlton&amp;searchon=names&amp;suite=all&amp;section=all">Debian</a> supported architectures with <a href="CrossCompiling">cross-compiling</a> support,\r
270 and maintains the <a href="http://packages.debian.org/search?keywords=mlton&amp;searchon=names&amp;suite=all&amp;section=all">Debian</a> and <a href="http://mingw.org">MinGW</a> packages.\r
271</p>\r
272</li>\r
273<li>\r
274<p>\r
275Maksim Yegorov added rudimentary support for <span class="monospaced">./configure</span> and other\r
276 improvements to the build system and implemented the <a href="ShareZeroVec">ShareZeroVec</a> SSA\r
277 optimization.\r
278</p>\r
279</li>\r
280<li>\r
281<p>\r
282Luke Ziarek assisted in porting MLton to (PowerPC) Darwin.\r
283</p>\r
284</li>\r
285</ul></div>\r
286<div class="paragraph"><p>We have also benefited from other software development tools and\r
287used code from other sources.</p></div>\r
288<div class="ulist"><ul>\r
289<li>\r
290<p>\r
291MLton was developed using\r
292 <a href="SMLNJ">Standard ML of New Jersey</a> and the\r
293 <a href="CompilationManager">Compilation Manager (CM)</a>\r
294</p>\r
295</li>\r
296<li>\r
297<p>\r
298MLton&#8217;s lexer (<span class="monospaced">mlton/frontend/ml.lex</span>), parser\r
299 (<span class="monospaced">mlton/frontend/ml.grm</span>), and precedence-parser\r
300 (<span class="monospaced">mlton/elaborate/precedence-parse.fun</span>) are modified versions of\r
301 code from SML/NJ.\r
302</p>\r
303</li>\r
304<li>\r
305<p>\r
306The MLton <a href="BasisLibrary">Basis Library</a> implementation of\r
307 conversions between binary and decimal representations of reals uses\r
308 David Gay&#8217;s <a href="http://www.netlib.org/fp/">gdtoa</a> library.\r
309</p>\r
310</li>\r
311<li>\r
312<p>\r
313The MLton <a href="BasisLibrary">Basis Library</a> implementation uses\r
314 modified versions of portions of the the SML/NJ Basis Library\r
315 implementation modules <span class="monospaced">OS.IO</span>, <span class="monospaced">Posix.IO</span>, <span class="monospaced">Process</span>,\r
316 and <span class="monospaced">Unix</span>.\r
317</p>\r
318</li>\r
319<li>\r
320<p>\r
321The MLton <a href="BasisLibrary">Basis Library</a> implementation uses\r
322 modified versions of portions of the <a href="MLKit">ML Kit</a> Version 4.1.4\r
323 Basis Library implementation modules <span class="monospaced">Path</span>, <span class="monospaced">Time</span>, and\r
324 <span class="monospaced">Date</span>.\r
325</p>\r
326</li>\r
327<li>\r
328<p>\r
329Many of the benchmarks come from the SML/NJ benchmark suite.\r
330</p>\r
331</li>\r
332<li>\r
333<p>\r
334Many of the regression tests come from the ML Kit Version 4.1.4\r
335 distribution, which borrowed them from the\r
336 <a href="http://www.dina.kvl.dk/%7Esestoft/mosml.html">Moscow ML</a> distribution.\r
337</p>\r
338</li>\r
339<li>\r
340<p>\r
341MLton uses the <a href="http://www.gnu.org/software/gmp/gmp.html">GNU multiprecision library</a> for its implementation of <span class="monospaced">IntInf</span>.\r
342</p>\r
343</li>\r
344<li>\r
345<p>\r
346MLton&#8217;s implementation of <a href="MLLex"> mllex</a>, <a href="MLYacc"> mlyacc</a>,\r
347 the <a href="CKitLibrary">ckit Library</a>,\r
348 the <a href="MLLPTLibrary">ML-LPT Library</a>,\r
349 the <a href="MLRISCLibrary">MLRISC Library</a>,\r
350 the <a href="SMLNJLibrary">SML/NJ Library</a>,\r
351 <a href="ConcurrentML">Concurrent ML</a>,\r
352 mlnlffigen and <a href="MLNLFFI">ML-NLFFI</a>\r
353 are modified versions of code from SML/NJ.\r
354</p>\r
355</li>\r
356</ul></div>\r
357</div>\r
358</div>\r
359</div>\r
360<div id="footnotes"><hr></div>\r
361<div id="footer">\r
362<div id="footer-text">\r
363</div>\r
364<div id="footer-badges">\r
365</div>\r
366</div>\r
367</body>\r
368</html>\r