Hi Mike,

Michał Pałka wrote:
I've managed to run hello world with YHC on AMD64. This required
changing the definition of UShort type from HALF_TYPE which is 32-bit
int to short. The problem lied in mutator.c where jTable variable was
meant to contain 2-byte integers but contained 4-byte integers on AMD64
and jumps were calculated wrong.

Thanks indeed, I don't imagine that bug would have been easy to find.

The patch I've attached is only for reference. I don't know what is the
correct type for UShort (or maybe jTable shouldn't be UShort * ?).

Gah, that was a foolish oversight of mine! No the jtable shouldn't use a UShort it should use a UInt16, it's always 2 bytes irrespective of platform word size.

I'm tempted to kill UShort altogether and rename it UHalf, I've made several mistakes using the wrong one. I'm amazed that HelloWorld still worked with UShort as a 16bit int on a 64bit platform. I would have expected that to break it.

I wanted to run some tests and was pointed to src/tester by Neil.
However, all the test failed because of some Makefile problems. Output
attached.

Well they don't quite all have make errors, but that is rather more than expected.

Do you have any nontrivial code that runs on YHC/i386? I would like to
test it on my machine.

I don't know much about Neil's tester, so I'll let him answer that one ...

Cheers


Tom
_______________________________________________
Yhc mailing list
[email protected]
http://haskell.org/mailman/listinfo/yhc

Reply via email to