[MLton] Darwin/PPC changes

Filip Pizlo pizlo@purdue.edu
Sun, 26 Sep 2004 12:26:05 -0500 (EST)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--8323328-277021840-1096219565=:1967
Content-Type: TEXT/PLAIN; charset=US-ASCII

Stephen,

Sorry for the late reply - been extremely busy.  Included are the changes
that I've done.  Some things that you should know about:

1) My editor screwed up the indentation in bin/regression, and I couldn't
easily unscrew it up.  The result is that the diff contains redundant
entries for bin/regression.  Hope that this isn't a problem.

2) My solution to the gmake problem (which occurs in bin/regression and
bin/clean) is as follows.  bin/clean now takes an argument from the
Makefiles.  Basically, the Makefiles invoke bin/clean like so:

	bin/clean $(MAKE)

In this way, bin/clean knows how to call back into make.  However, if $1
is not set, bin/clean will attempt to infer how to call
make.  bin/regression, on the other hand, only tries to infer.  The
inference is simple: if the host-os is darwin, use 'make', otherwise use
'gmake'.

3) I never was able to get MLton to build on my PowerBook.  It does build
fine on a G5, however.  Compiling with -O1 versus -Os seems to make no
difference.

4) Last I checked, all regressions except for real.sml pass, and real.sml
only fails on trig functions.  I DID NOT rebuild and rerun regressions in
the last week, so there is the remote possibility that my port has stopped
working due to recent commits.  But I highly doubt it.  Anyway, when you
get this stuff committed, I'll rebuild on the local G5s and see how it
goes.

--
Filip Pizlo
http://bocks.psych.purdue.edu/
pizlo@purdue.edu


--8323328-277021840-1096219565=:1967
Content-Type: APPLICATION/octet-stream; name="darwin_platform.tar.gz"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.21.0409261226050.1967@Bocks.psych.purdue.edu>
Content-Description: additional files
Content-Disposition: attachment; filename="darwin_platform.tar.gz"

H4sIAAAAAAAAA+2V227aQBCGucVPMaJqChHF5hCQmqQSikiKAkkERInUVmhZ
r/Eqa6+1uy4lVd+9Y9OGEkh70Si92U9C4H/GM+PDP6g0NjxibiKICaSKXJ+o
BY9rtPB8eHXPa7daBQ/ptNv5t9dYHWe0m16h7tXrzXanhbmYf+A1OgXwnnGG
J0m1IQqgkPB7If+Qh2lB8BIDvSyveExF6jMo/XoDamHJcdZydOdz1ahRFL9I
7oMO5WLIIihX4JtTdPfhtH877L0DE3INCxm/MUCoSYkQSzxUdzXYd52iU8T7
ZzgFGuLdnqVBwNTHxkH786GDoUTx2ARQXulVKLkzHruUGHATJan72ncjknyK
S1UoY2ZlzkyCo5QrlUOnWM7GquilNtlUqxKof//9IrSOsEB+ETfNBhhpiBgR
TD87mWaDMdD55WBxiFhUBcHibDL8gmPQ/J7JYNUaG3L8+bYOxxhYamrEbBmT
iEG5FC5qSbjUWAAH3cvr7GGFKlxcDwZV8CoVp1j0OctyV6dCQLhgfikrq5hJ
VZy1z4Z/qeevnvB/+Iw9/uL/estr5v7vNLyOV+/k/m+2rf9fggePHM1VUgvf
r01zJHjEjd7UYmb82ZbE8eNmL80u3dBkdyD1HwWShb8poElcLtEn2zL6Od5W
Eyl25CZGEcq2dcW0TNWuiJb0jpkdeu7abT2zkN6W0x0jpkZn62I7sCB8u6OQ
803NMBVx+ahXSmVs2Nf8dAdXclfjYlFANPSBkhgME6IK8ygBXzINsTRAJa6s
BTchDAmFyzHcVkFL3OIMUs0UhoRwYB94jC++EMANhDzSTAQogZtq5QpJiag5
2X5fb9p1xP2pudh39Z/iswAfPHzojqfjq+7NBZx2B+Pehj4c9Ybdqx2Bcf+s
O5iMJ92Tc5iMrjeDk/6wN70aXZ72B/2Lsx1n3/S65+A9SNfj3nSY9ckr/W8L
WiwWi8VisVgsFovFYrFYLBaLxWKxWCwWi8Xyz/wACGWr4AAoAAA=
--8323328-277021840-1096219565=:1967
Content-Type: APPLICATION/octet-stream; name="darwin.patch.gz"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.21.0409261226051.1967@Bocks.psych.purdue.edu>
Content-Description: context diff against current CVS
Content-Disposition: attachment; filename="darwin.patch.gz"

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
LwsuC19lnYRz5jf5PyEXdo3S5QAA
--8323328-277021840-1096219565=:1967--