[MLton] Bug#220046: mlton: Build-Depends on itself

Stephen Weeks sweeks@sweeks.com
Tue, 11 Nov 2003 09:38:16 -0800


Hi Aaron.  As the maintainer of the Debian smlnj package, I have a
question for you.  Does smlnj build-depend on itself?  If not, how
does it build from source?

I ask because the MLton package build-depends on itself and I think
that this is the right thing to do, since MLton is written in SML and
therefore requires some SML compiler to build.

Roland Stigge has suggested having MLton build-depend on smlnj instead
of MLton.  I think this is a bad idea for many reasons.

* In order to build MLton, we need some SML compiler anyways.  Since I
  believe SML/NJ must build-depend on itself, it doesn't make the
  Debian world significantly less incestuous to remove MLton's build
  dependency on itself and replace it with a dependency on another
  incestuous compiler.

* A version of MLton compiled by SML/NJ runs *much* more slowly than
  one compiled by MLton.  So slow that I haven't done a full bootstrap
  in years, IIRC.  We're talking more than a factor of 5 in time here.
  I.E. over an hour instead of 5-10 minutes.  This hurts my
  development process.

* There are many portability issues in maintaining MLton to run under
  both SML/NJ and MLton.  So, while we do use an SML/NJ-compiled MLton
  for small tests, I am not at all as confident in the stability of an
  SML/NJ-compiled MLton as I am a self-compiled MLton.

* Someday, we may drop support for compilation of MLton by SML/NJ.

All in all, it seems like a lot of practical loss for a very
theoretical gain.