Import Debian changes 20180207-1
[hcoop/debian/mlton.git] / doc / guide / localhost / Projects
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>Projects</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>Projects</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>We have lots of ideas for projects to improve MLton, many of which we\r
32do not have time to implement, or at least haven&#8217;t started on yet.\r
33Here is a list of some of those improvements, ranging from the easy (1\r
34week) to the difficult (several months). If you have any interest in\r
35working on one of these, or some other improvement to MLton not listed\r
36here, please send mail to\r
37<a href="mailto:MLton-devel@mlton.org"><span class="monospaced">MLton-devel@mlton.org</span></a>.</p></div>\r
38<div class="ulist"><ul>\r
39<li>\r
40<p>\r
41Port to new platform: Windows (native, not Cygwin or MinGW), &#8230;\r
42</p>\r
43</li>\r
44<li>\r
45<p>\r
46Source-level debugger\r
47</p>\r
48</li>\r
49<li>\r
50<p>\r
51Heap profiler\r
52</p>\r
53</li>\r
54<li>\r
55<p>\r
56Interfaces to libraries: OpenGL, Gtk+, D-BUS, &#8230;\r
57</p>\r
58</li>\r
59<li>\r
60<p>\r
61More libraries written in SML (see <a href="https://github.com/MLton/mltonlib"><span class="monospaced">mltonlib</span></a>)\r
62</p>\r
63</li>\r
64<li>\r
65<p>\r
66Additional constant types: <span class="monospaced">structure Real80: REAL</span>, &#8230;\r
67</p>\r
68</li>\r
69<li>\r
70<p>\r
71An IDE (possibly integrated with <a href="Eclipse">Eclipse</a>)\r
72</p>\r
73</li>\r
74<li>\r
75<p>\r
76Port MLRISC and use for code generation\r
77</p>\r
78</li>\r
79<li>\r
80<p>\r
81Optimizations\r
82</p>\r
83<div class="ulist"><ul>\r
84<li>\r
85<p>\r
86Improved closure representation\r
87</p>\r
88<div class="paragraph"><p>Right now, MLton&#8217;s closure conversion algorithm uses a simple flat closure to represent each function.</p></div>\r
89<div class="ulist"><ul>\r
90<li>\r
91<p>\r
92<a href="http://www.mlton.org/pipermail/mlton/2003-October/024570.html">http://www.mlton.org/pipermail/mlton/2003-October/024570.html</a>\r
93</p>\r
94</li>\r
95<li>\r
96<p>\r
97<a href="http://www.mlton.org/pipermail/mlton-user/2007-July/001150.html">http://www.mlton.org/pipermail/mlton-user/2007-July/001150.html</a>\r
98</p>\r
99</li>\r
100<li>\r
101<p>\r
102<a href="References#ShaoAppel94">ShaoAppel94</a>\r
103</p>\r
104</li>\r
105</ul></div>\r
106</li>\r
107<li>\r
108<p>\r
109Elimination of array bounds checks in loops\r
110</p>\r
111</li>\r
112<li>\r
113<p>\r
114Elimination of overflow checks on array index computations\r
115</p>\r
116</li>\r
117<li>\r
118<p>\r
119Common-subexpression elimination of repeated array subscripts\r
120</p>\r
121</li>\r
122<li>\r
123<p>\r
124Loop-invariant code motion, especially for tuple selects\r
125</p>\r
126</li>\r
127<li>\r
128<p>\r
129Partial redundancy elimination\r
130</p>\r
131<div class="ulist"><ul>\r
132<li>\r
133<p>\r
134<a href="http://www.mlton.org/pipermail/mlton/2006-April/028598.html">http://www.mlton.org/pipermail/mlton/2006-April/028598.html</a>\r
135</p>\r
136</li>\r
137</ul></div>\r
138</li>\r
139<li>\r
140<p>\r
141Loop unrolling, especially for small loops\r
142</p>\r
143</li>\r
144<li>\r
145<p>\r
146Auto-vectorization, for MMX/SSE/3DNow!/AltiVec (see the <a href="http://gcc.gnu.org/projects/tree-ssa/vectorization.html">work done on GCC</a>)\r
147</p>\r
148</li>\r
149<li>\r
150<p>\r
151Optimize <span class="monospaced">MLton_eq</span>: pointer equality is necessarily false when one of the arguments is freshly allocated in the block\r
152</p>\r
153</li>\r
154</ul></div>\r
155</li>\r
156<li>\r
157<p>\r
158Analyses\r
159</p>\r
160<div class="ulist"><ul>\r
161<li>\r
162<p>\r
163Uncaught exception analysis\r
164</p>\r
165</li>\r
166</ul></div>\r
167</li>\r
168</ul></div>\r
169</div>\r
170</div>\r
171</div>\r
172<div id="footnotes"><hr></div>\r
173<div id="footer">\r
174<div id="footer-text">\r
175</div>\r
176<div id="footer-badges">\r
177</div>\r
178</div>\r
179</body>\r
180</html>\r