[MLton-devel] nucleic benchmark times

Henry Cejtin henry@sourcelight.com
Tue, 12 Nov 2002 22:25:42 -0600


Note, with regards to the cost of using integer returns instead of actual
code addresses in the C backend, although MLton goes to a lot of effort to
make loops, there are cases it just can't do with the current idea of loops
not using stack.  The canonical bad case is probably something like recursive
fib, where the dispatch on return is probably adding quite a bit to the cost.
Note, this is a rather silly example, but I bet things like that come up in
real code.  A more realistic example might be a non-tail-recursive version of
map.  MLton will inline in most cases the function arg to map, but will still
do a general call/return per cons cell.
The basis library doesn't use this definition of map, but it is very natural
for many cases to do stuff like this.
Mind you, I would much rather that a good solution for the native back end
could be figured out rather than a `fix' for the C code generator.  I.e., even
if return addresses are used, MLton's function call is a bit heavy weight.


-------------------------------------------------------
This sf.net email is sponsored by: 
To learn the basics of securing your web site with SSL, 
click here to get a FREE TRIAL of a Thawte Server Certificate: 
http://www.gothawte.com/rd522.html
_______________________________________________
MLton-devel mailing list
MLton-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlton-devel