Bad news, I tried PolyML.Compiler.maxInlineSize := 1 and it still fails.
Any other ideas? If I were to work on 32-bit jumps, are there binary compatibility issues you can think of?
Thanks,
Adam
On Tue, Apr 23, 2013 at 5:06 AM, David Matthews <David.Matthews at prolingua.co.uk> wrote:
On 23/04/2013 01:07, Adam Goode wrote:
Hi,
I am trying to bootstrap mlton via polyml. This is working well on x86_64, but failing on ARM. I am getting this error:
Exception- InternalError: fixupOffset: jump too far (16-bit offset) raised while compiling
This seems to be a fundamental limitation of the interpreter. Is there any kind of workaround? Could the interpreter be extended to allow for longer jumps?
You may be able to work-around this by setting PolyML.Compiler.maxInlineSize to something smaller. Presumably you have a very large function and that may reduce the code size by not inlining other functions into it.
The better solution is, of course, for the interpreter to support longer jumps. The code of the interpreter hasn't really been looked at for a very long time. It was originally written to allow the native code version to be bootstrapped onto new hardware and so it really only works to the extent necessary for that. It is much slower than it should be and I really should revisit the whole thing.
David
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml