[MLton] Debian: sparc works

Stephen Weeks MLton@mlton.org
Tue, 21 Dec 2004 21:13:16 -0800

C99 patch committed.  Here's a few comments.

> 	no typeof in C99 required changing some macros

This is certainly the most annoying of the changes.  What is the
reason behind this?  Is there really no workaround?

> 	added variants and script support for all debian platforms
> 		- platform names and case were choosen to match debian =)

Seems reasonable.

> 	use C99 methods exclusively for floating point control

Most excellent.

> 		- ... except for Real/class.c where nanSignalling is missing

Actually, that's OK.  The SML basis used to distinguish between
nanQuiet and nanSignalling but it doesn't any more.  I propose to
eliminate the distinction between those constants in the runtime, and
to eliminate the __i386__ and __sun__ implementations of Real64_class,
leaving only the C99 one.  In fact, it might even be simpler to
eliminate the C wrapper altogether, and call fpclassify directly from
the basis library.

BTW, why is there no C99 implementation for Real32_class?

> Please note: by using c99, MLton will require gcc >= 3.0.

Seems reasonable.  Anyone else have problems with that?

A couple more notes on comments you made in the patch.

1. Can you explain the following comment in runtime/types.h?

	/* !!! this stuff is all wrong: */
	typedef Int32 Int;
	typedef Real64 Real;
	typedef Word8 Char;

2. Your question in runtime/basis/Int/Word.c about how could C {/,%}
not implement {quot,rem} from the basis library is because the C spec
isn't as nailed down as the SML basis library spec (which is
completely nailed down) on negative numbers.  In any case, I guess
it's OK to take out the #if platform test, since surely an SML
regression will find the problem.