mlton vs NJ compiled mlton
Stephen Weeks
MLton@sourcelight.com
Mon, 8 Oct 2001 18:23:05 -0700
Here are the running times in seconds of MLton, separately compiled by SML/NJ
110.36 and compiled by mlton 20011006. The benchmark is of course, a
self-compile (not counting the gcc and assemble times).
NJ mlton mlton mutator + gc
---- ----- -----------------
pre codegen 1671 239 (96 + 143)
codegen 666 202 (142.16 + 60.05)
total 2337 441 (238.10 + 202.66)
So, we're more than 5 times faster.
It took SML/NJ 419 seconds to separately compile mlton, while it takes mlton 477
seconds to compile itself.
All this on a 733MhZ machine.
As to compiling MLton as a whole-program with SML/NJ, I tried it, but after 2
hours and 47 minutes (and huge memory usage, about 700m), NJ reported a compiler
bug. Here's the tail of the transcript.
/usr/local/src/sml-nj-110.36/bin/sml: Error -- unable to map 375717888 bytes, errno = 12
/usr/local/src/sml-nj-110.36/bin/sml: Error -- unable to allocate to-space for generation 5; trying smaller size
Error: MLRisc bug: ClusterRA.mkNodes: too many instructions
uncaught exception Error
raised at: ../MLRISC/cm/../control/mlriscErrormsg.sml:16.14-16.19
../compiler/Basics/stats/stats.sml:189.40
../compiler/Basics/stats/stats.sml:189.40
../compiler/Basics/stats/stats.sml:189.40
../compiler/Basics/stats/stats.sml:189.40
../compiler/TopLevel/interact/evalloop.sml:35.55
-
real 188m53.860s
user 136m20.280s
sys 10m31.250s