This message is going to be something of a brain dump. I'm still struggling with the windows port of this code. Partially it's due to sensitivities in the build mechanisms, partially it's a related issue, which is that I have not yet spun up a windows debugger for this code base. Partly it's because while I have found a "reliable" way of building win64 executables, it's a time consuming process for me (on the order of half an hour for each rebuild)
Anywayss... I've currently two expressions which fail for win64 in j+gmp-clean branch. They work in win64 on the master branch, and they work on linux, I only see them fail in my branch on win64 builds. Here's what I am expecting: 0.0+1r265252859812191058636308480000000 3.76999e_33 3 (3037000500&|@^) 10000x 2910761001 Here's what I have been getting 0.0+1r265252859812191058636308480000000 3.01602e_32 This is too large by a factor of 8 3 (3037000500&|@^) 10000 |domain error This one is intermittent, I sometimes get the expected result of 2910761001 One of the issues here is that libgmp (and the mpir clone we've been using to test under windows) expects 32 bit parameters in some 64 bit contexts where under linux or osx it would expect a 64 bit parameter. However... we should get compile time errors for this kind of problem, which would isolate the offending expressions. Specifically, if I ever pass a 64 bit integer as an argument for a 32 bit parameter, the compiler should report that as an error. (The exception would be in a context with an explicit cast where the cast discards 32 bits of the value. But I'm pretty sure I haven't made that particular mistake.) Meanwhile, looking at the -Wno-* compiler flags in the changes from the master branch, I see these: -Wno-char-subscripts -Wno-delete-non-abstract-non-virtual-dtor -Wno-empty-body -Wno-missing-braces -Wno-missing-field-initializers -Wno-parentheses -Wno-pointer-sign -Wno-sometimes-uninitialized -Wno-string-plus-int -Wno-unknown-pragmas -Wno-unused-function -Wno-unused-value -Wno-unused-variable Any of these might be a concern and I guess I should spend some time reviewing the issues masked by each of these, but none of them stand out as the sort which would suppress a warning or error about a loss of 32 bits of argument. Thanks, -- Raul ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
