Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0004984OCamlOCaml generalpublic2010-02-21 22:582010-04-18 10:46
Reporterglondu 
Assigned To 
PrioritynormalSeverityblockReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version3.11.2 
Target VersionFixed in Version3.12.0+dev 
Summary0004984: Error in the num library
DescriptionHello,

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 [^]
TagsNo tags attached.
Attached Files

- Relationships

-  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
Powered by Mantis Bugtracker