https://github.com/rdm/jsource/tree/j+gmp
I've an implementation of the J engine with libgmp support for the XNUM and RAT types which passes a slightly modified test suite (RUN ddall under test/tsu.ijs). Note that there's a few issues in the test suite which need attention which I believe are not related to this porting effort. I'm going to continue to work on it, but it's in good enough shape that I think I am prepared to accept bug reports, if anyone wants to try building with these changes. (That said, in its current state it would be wise to keep these changes on a secondary branch or in a secondary copy of the jsource repository.) Oddly, I don't see my commit notice when I view the commit on github. So I'm copying it here as the remainder of this message: ---------------------------------------------------------- libgmp integration -- initial draft This has been tested ONLY on a single 64 bit linux system. Also, libgmp must be installed in either a standard library location or in the same directory as jconsole. There are going to be issues. Also, beware that this patch includes changes to the make2/ build system and changes to the test/ directory. Do not incorporate these changes blindly. Changes in jsrc/ are the focus here. It might be best to first test the libgmp changes against an untouched copy of the test directory, to review issues which prompted changes: (1) Previously, x: _ was an extended integer (type 64), this is no longer the case. Now x: _ is a rational (type 128). (2) I have "de-optimized" hexdump for simplicity. This means it takes a bit more space to execute than it used to. Also note that although this build is "complete" in the sense that it passes the (modified) test suite, there are other issues which need to be addressed. Planned, but not yet implemented is 3!:2 support for XNUM/RAT values exported via 3!:1 or 3!:3 under older versions of J. Planned, but not yet implemented is some sort of WS FULL support under low memory circumstances. (Here, malloc() would fail and memory would be allocated from a reserved chunk of memory and all subsequent libgmp calls would fail with WS FULL until the reserved memory has been restored.) And, of course, this is an EARLY RELEASE and may be unstable. ---------------------------------------------------------- FYI, -- Raul ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm