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

Reply via email to