[MLton] starting builds

Wesley W. Terpstra wesley@terpstra.ca
Thu, 1 Sep 2005 01:01:13 +0200


On Aug 31, 2005, at 8:23 PM, Stephen Weeks wrote:
>> The other problems all came down to a corrupt constants file.
>> Somehow or another, different options lead to different constants.
>
> Hmmm.  I don't think that's the case.  I'm not sure what the issue
> was, but it may not be worth figuring out.
>
> As an easy attempt, if you could send the two different constants
> files, I'd be interested to see what changed.

I deleted the old one in a fit of rage...
What was wrong is that stackBottomOffset and exnStackOffset
were displaced by 4 bytes. The gc.c file used the correct locations,
but the generated C code used the wrong ones... bad news. Afaicr,
that was the only difference.

I think it had something to do with the sizes of the elements in
struct GC_State. I don't know what was responsible, whether
it was C99 mode, different glibc headers, gcc versions aligning
fields differently, or whatever.

The old binary broke due to the new requirement that 64bit
reals be aligned under kernel 2.6. This was unrelated to the
offset problem because that binary agreed with itself.