[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.