| Anonymous | Login | Signup for a new account | 2013-06-20 09:28 CEST | ![]() |
| Main | My View | View Issues | Change Log | Roadmap |
| View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | |||||||
| ID | Project | Category | View Status | Date Submitted | Last Update | |||
| 0004984 | OCaml | OCaml general | public | 2010-02-21 22:58 | 2010-04-18 10:46 | |||
| Reporter | glondu | |||||||
| Assigned To | ||||||||
| Priority | normal | Severity | block | Reproducibility | always | |||
| Status | closed | Resolution | fixed | |||||
| Platform | OS | OS Version | ||||||
| Product Version | 3.11.2 | |||||||
| Target Version | Fixed in Version | 3.12.0+dev | ||||||
| Summary | 0004984: Error in the num library | |||||||
| Description | Hello, An error in the num library makes some checks of coq's test-suite fail on the sparc port of Debian [1]. It boils down to: $ ocaml nums.cma Objective Caml version 3.11.2 # open Num;; # let pow10 n = power_num (Int 10) (Int n);; val pow10 : int -> Num.num = <fun> # string_of_num (pow10(-1) */ (Int 1) +/ Int 1);; - : string = "11/5" which is obviously wrong. The same session on amd64 gives: $ ocaml nums.cma Objective Caml version 3.11.2 # open Num;; # let pow10 n = power_num (Int 10) (Int n);; val pow10 : int -> Num.num = <fun> # string_of_num (pow10(-1) */ (Int 1) +/ Int 1);; - : string = "11/10" It looks like a consequence of commit 9320 (by doligez) in ocaml svn. FYI, the sparc port of Debian is actually sparc64, but is detected as 32 bits by the configure script of ocaml [2]. | |||||||
| Additional Information | [1] https://buildd.debian.org/fetch.cgi?pkg=coq&arch=sparc&ver=8.2.pl1%2Bdfsg-5&stamp=1266762797&file=log&as=raw [^] [2] https://buildd.debian.org/fetch.cgi?pkg=ocaml&arch=sparc&ver=3.11.2-1&stamp=1265611860&file=log&as=raw [^] | |||||||
| Tags | No tags attached. | |||||||
| Attached Files | ||||||||
Notes |
|
|
(0005249) glondu (reporter) 2010-02-22 00:28 |
I've been told that it is a 64-bit kernel with a 32-bit userland, actually. |
|
(0005250) xleroy (administrator) 2010-02-24 16:54 |
I have an old Sparc running an old version of Debian Linux, but it doesn't exhibit the problem: "11/10" is obtained. Moreover, commit 9320 affects only input_value on big ints, so I don't think it is related. I would rather suspect a change in gcc that could have exposed a problem in the Sparc-specific inline assembly. If you're willing to test some more, you could start by turning off the Sparc-specific asm: just edit the toplevel "configure" file to remove the line that reads sparc) bng_arch=sparc; bng_asm_level=1;; Then you can rebuild OCaml as usual and see if the problem is still there. Do keep me informed of the results. |
|
(0005251) glondu (reporter) 2010-02-24 23:09 |
Indeed, the same bug exists with the commit mentioned in the initial report reverted. The bug disappears after commenting out the said line in configure. |
|
(0005318) xleroy (administrator) 2010-04-18 10:46 |
Thanks for the test. Turned off selection of SPARC asm for BNG in configure. Better slower than wrong. |
Issue History |
|||
| Date Modified | Username | Field | Change |
| 2010-02-21 22:58 | glondu | New Issue | |
| 2010-02-22 00:28 | glondu | Note Added: 0005249 | |
| 2010-02-24 16:54 | xleroy | Note Added: 0005250 | |
| 2010-02-24 16:54 | xleroy | Status | new => feedback |
| 2010-02-24 23:09 | glondu | Note Added: 0005251 | |
| 2010-04-18 10:46 | xleroy | Note Added: 0005318 | |
| 2010-04-18 10:46 | xleroy | Status | feedback => closed |
| 2010-04-18 10:46 | xleroy | Resolution | open => fixed |
| 2010-04-18 10:46 | xleroy | Fixed in Version | => 3.12.0+dev |
| Copyright © 2000 - 2011 MantisBT Group |