[MLton] Broken CVS
Matthew Fluet
fluet@cs.cornell.edu
Wed, 15 Dec 2004 12:58:18 -0500 (EST)
> > Right now in CVS a build will fail with:
> ...
> > Error: cannot upgrade basis because the compiler doesn't work
> > make[4]: *** [upgrade-basis.sml] Error 1
>
> I just did a clean bootstrap from the CVS without problems. I believe
> you encountered the problem you did because the primitive types have
> changed recently (for the Unicode support) and hence one cannot
> compile the current basis library with an old compiler. Doing a clean
> bootsrap should work.
>
> In general, we try to always keep the CVS so that one can do a clean
> bootstrap from the previous stable release of MLton.
The original poster encountered a legitimate bug; I checked in a fix
this morning at 9:30AM EST. The problem was along the following lines in
basis-library/misc/primitive.sml:
structure Char2 =
struct
type t = char16
end
...
structure Char2 =
struct
open Char2
val op < = _prim "WordU16_lt": char * char -> bool;
end
Hence, the "char" in the type of Char2.< was the top-level char = char8.
The elaborator doesn't check the types of primitives, but the XML
type-checker does.