-
Notifications
You must be signed in to change notification settings - Fork 0
64-bit floating point arithmetic fails on 32-bit machines #11
Comments
Hmm, maybe not platform.
But, all OCaml versions since 3.07 have had this specified... |
Progress! It's an x87 FPU bug, that OCaml helpfully dumps on us. |
OCaml doesn't support use of alternative FPU (SSE2) on x86, it only uses it for x64. The best solution for now is probably to explicitly not support JSCert under x86 Linux. |
Reopening as we can probably do better than this -- does flocq give an extractable ieee754 implementation? It does highlight the assumption that ocaml confirms to its specification and that the CPU also does! |
Content from gforge bug: https://gforge.inria.fr/tracker/index.php?func=detail&aid=16179&group_id=4179&atid=13867
|
@edgemaster : regarding flocq extraction, I asked Xavier Leroy a while back about this (as they have the same issue with CompCert), here is what he said (in French, I can translate if necessary:
|
Paper on the previous: http://gallium.inria.fr/~xleroy/bibrefs/Boldo-Jourdan-Leroy-Melquiond-JAR.html |
Note that JSCert is not supported under linux-x86. In summary: * x87 FPU uses extended precision floating point computations by default under linux * OCaml only targets the x87 FPU under the x86 linux platform. (A ia32/SSE2 backend was abandoned) * We therefore cannot precisely support double-precision float operations. Fixes #11 (inadequately)
tests/test262/ch08/8.5/S8.5_A2.1.js
tests/test262/ch08/8.5/S8.5_A2.2.js
These tests were passing the nightlies up until Jul 12th 2013, when gds swapped the nightly test run onto a 32 bit machine.
This results in the discrepancy between 1796 test passes as reported by us in popl14 and the reproduction run of the tagged version popl14-results (1798 test passes).
The text was updated successfully, but these errors were encountered: