[MLton] Re: testing MLton's new front end

Andreas Rossberg rossberg@ps.uni-sb.de
Mon, 19 Jan 2004 18:18:06 +0100


This is a multi-part message in MIME format.
--------------040500000208090003000800
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

> Hi Andreas.  We just released an experimental version of MLton with a
> new front end, which we hope matches the Definition of SML and
> produces reasonable error messages.  I imagine that you have
> accumulated lots of good tests for corner cases of the Definition over
> the years.

Well, not too many, fortunately, because there aren't that many such 
corners in our nice language. :-)

I appended my set of these special tests, along with an (hopefully) 
up-to-date conformance table. There aren't too many new tests, relative 
to what I posted on implementers once.

MLton clearly does best now, I'm impressed. I also built Hamlet with it 
OK. (Well, after changing the -o option to -output, so why that?)

Keep up the good work.

-- 
Andreas Rossberg, rossberg@ps.uni-sb.de

"Computer games don't affect kids; I mean if Pac Man affected us
  as kids, we would all be running around in darkened rooms, munching
  magic pills, and listening to repetitive electronic music."
  - Kristian Wilson, Nintendo Inc.

--------------040500000208090003000800
Content-Type: application/x-gzip;
 name="tests.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="tests.tar.gz"

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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
--------------040500000208090003000800--