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