Backport from sid to buster
[hcoop/debian/mlton.git] / doc / guide / src / Projects.adoc
CommitLineData
7f918cf1
CE
1Projects
2========
3
4We have lots of ideas for projects to improve MLton, many of which we
5do not have time to implement, or at least haven't started on yet.
6Here is a list of some of those improvements, ranging from the easy (1
7week) to the difficult (several months). If you have any interest in
8working on one of these, or some other improvement to MLton not listed
9here, please send mail to
10mailto:MLton-devel@mlton.org[`MLton-devel@mlton.org`].
11
12* Port to new platform: Windows (native, not Cygwin or MinGW), ...
13* Source-level debugger
14* Heap profiler
15* Interfaces to libraries: OpenGL, Gtk+, D-BUS, ...
16* More libraries written in SML (see <!ViewGitProj(mltonlib)>)
17* Additional constant types: `structure Real80: REAL`, ...
18* An IDE (possibly integrated with <:Eclipse:>)
19* Port MLRISC and use for code generation
20* Optimizations
21** Improved closure representation
22+
23Right now, MLton's closure conversion algorithm uses a simple flat closure to represent each function.
24+
25*** http://www.mlton.org/pipermail/mlton/2003-October/024570.html
26*** http://www.mlton.org/pipermail/mlton-user/2007-July/001150.html
27*** <!Cite(ShaoAppel94)>
28** Elimination of array bounds checks in loops
29** Elimination of overflow checks on array index computations
30** Common-subexpression elimination of repeated array subscripts
31** Loop-invariant code motion, especially for tuple selects
32** Partial redundancy elimination
33*** http://www.mlton.org/pipermail/mlton/2006-April/028598.html
34** Loop unrolling, especially for small loops
35** Auto-vectorization, for MMX/SSE/3DNow!/AltiVec (see the http://gcc.gnu.org/projects/tree-ssa/vectorization.html[work done on GCC])
36** Optimize `MLton_eq`: pointer equality is necessarily false when one of the arguments is freshly allocated in the block
37* Analyses
38** Uncaught exception analysis