[MLton] MLton Installation question
Matthew Fluet
fluet@cs.cornell.edu
Mon, 10 Apr 2006 14:31:44 -0400 (EDT)
>> I did
>>
>> 1) unpacked the sources
>> 2) renamed mllex to ml-lex in mlton/front-end/Makefile
>> (In my, what I thought, standard installation of
>> NJ mllex is called ml-lex; similarly ml-yacc. This
>> brings me quite far in the next step.)
>>
>> 3) compiled with make nj-mlton
>
> My guess is that the SML/NJ compile failed. It seems that when SML/NJ exits,
> it always returns 'success', even if the last invoked command failed, so make
> will assume that the SML/NJ compile succeeded. You should scan back through
> the output of 'make nj-mlton' and verify that the SML/NJ compile succeeded.
The front-end files derived by SML/NJ's ml-lex and ml-yacc are
incompatible for use within the source code of the mlton compiler.
Note, for many projects, one could use SML/NJ's ml-lex/ml-yacc
interchangebly with MLton's mllex/mlyacc; However, within the mlton
compiler itself, we need the default int size to be 32-bits, so there are
stub environments around to make SML/NJ's environment look like it
provides 32-bit integers as the Int structure. Unfortunately, there isn't
a good way to make the unqualified top-level int correspond to Int32.int,
which is the source of the problem with SML/NJ's ml-lex and ml-yacc
generated files.
You're best bet is to just download the derived files from:
http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/front-end/?rev=HEAD