Re: Re: self-compiling failed

Matthew Fluet <[email protected]>
Newsgroups gmane.comp.lang.ml.mlton.devel
Message-ID <[email protected]>
On Wed, May 19, 2010 at 9:22 AM, Baojian Hua <[email protected]> wrote:
> And the document at
> http://mlton.org/SelfCompiling
> seems a little out-of-date and not very informative for this.

Yes, I glanced at that when you mentioned your difficulties, and agree
that it should be updated.

> Btw: I'm trying to self-compile MLton for that I'm trying to implement
> some new optimizations on SSA IL. In this, I've found that the MLton's
> expert option "-trace" won't work as I expected (it produce nothing).
> A close look at the code reveals that the Assert.debug is set to false, so
> it seems that I should set it and then build a "tracable" version. Is this
> the perfect way to do this? Or else is there another option to control this?

There are two ways to enable the "-trace" option.

It is enabled under a SML/NJ build of MLton.  From the root of the
mlton source tree, a "make smlnj-mlton" will build a SML/NJ heap image
and copy it to build/lib.  The build/bin/mlton script will prefer a
MLton build of MLton over a SML/NJ build of MLton, so be sure to
remove build/lib/mlton-compile.  Because SML/NJ's cutoff recompilation
is faster than MLton's whole program compilation, this is generally
the way I work when debugging something like an SSA IL optimization
pass.

It is also enabled under a MLton build of MLton that uses "-const
'MLton.debug true'".  From the root of the mlton source tree, a "make
traced" will build such a compiler.  (This target to the root Makefile
doesn't build everything, so you should only use it after having first
done a "make".)  Then the build/bin/mlton.trace script will invoke the
mlton-compile.trace executable that has the "-trace" option enabled.
This build also enables exception histories, which is often useful for
debugging.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.