[MLton] power pc "port"

Matthew Fluet fluet@cs.cornell.edu
Sat, 4 Sep 2004 13:33:23 -0400 (EDT)


> > > bin/regression: line 213: gmake: command not found
> > >
> > > The problem here is that Mac OS X doesn't have a 'gmake', although 'make'
> > > is the GNU version.  Is there a need to make some of the scripts refer to
> > > 'gmake' instead of 'make'?  Anyway, for now, I'll make them use 'make'
> > > just to see what the outcome of the tests is.
> >
> > It shouldn't really matter.  gmake is only used to try to compile mllex,
> > mlyacc, and mlprof, and that is only checking the type-checker.  So, you
> > won't learn anything new there.
>
> Aren't there tests after mllex?  The problem is that this error halts the
> bin/regression script... so getting around it will let me run the rest of
> the regressions.  Or are there no others?

When you run the regression script, you should see stuff like:

[fluet@tiger mlton.cvs.HEAD 53]% ./bin/regression
MLton MLTONVERSION (built Sat Sep 04 08:56:36 2004 on
tiger.cs.cornell.edu)
flags = -type-check true
testing 10
testing 11
.
.
.
testing world5
testing world6
testing barnes-hut
.
.
.
testing zern
testing mllex
testing mlprof
testing mlyacc

So, when it bails at mllex, you only miss mllex, mlprof and mlyacc.  And,
as I said, the regression script doesn't execute the results of compiling
those tools, so it won't shed any new light on the problem.

> > Unfortunately there aren't any other regressions that look at the
> > non-standard integer sizes.  On the other hand, all the operations are
> > just implemented by lifting to the larger standard size, so there isn't
> > much that can go wrong.
>
> Right.  I have a question, which is probably very naive: why can't I use
> print from within basis-library/integer/int.sml?  Is there some other
> tracing facility (other than hacking the generated C code) that I can
> invoke from within the basis?

Everything under basis-library is being used to implement the Basis
Library.  You can't use print before it's defined, and it's going to be
defined long after integers.

What you can use is something a little more direct.  You should be able to
use
  val Primitive.Stdio.print : string -> unit
from within basis-library/integer/int.sml.  But remember, you'll be
inserting this long before a lot of common string operations are defined,
so you may be limited to printing string constants.

Finally, if you edit under basis-library/ remember to do
  make world
to type-check and copy the new files over to build/lib/sml/basis.  That is
where the compiler will look for the basis.