Hi,

This may or may not be expected behaviour, but I wanted to make sure the debian 
packaging team knew about it.

I recently tried to recompile and re-run my ocaml program on a new machine with 
a fresh install of Ubuntu (gutsy). The program was originally developed and 
tested on debian-stable (etch). The old machine was 32-bit and the new one is 
64-bit. My Debian install lists the ocaml package as version 3.09.2 and the 
ubuntu install lists it as 3.09.2ubuntu.

It compiled without problems on the Ubuntu machine but then I got this error 
message at runtime:
Fatal error: exception Unix.Unix_error(12, "gmtime", "")

An abbreviation of the offending code looks something like this:
 let reallySmallFloat = -1.0 * max_float in (* a very large magnitude negative 
number*)
 let reallySmallInt64 = Int64.of_float reallySmallFloat in (* truncated to 
int64 *)
 let smallestTimeFlt = Int64.to_float reallySmallInt64 in (* back to float *)
 let smallestTime = Unix.gmtime smallestTimeFlt (* fails *)

On both the debian and ubuntu machines, smallestTimeFlt = -9.22337203685e+18

If I replace the first line with:
 let reallySmallFloat = -1.0 *. (10.0**10.0) in

then it runs correctly on the Ubuntu machine. 

This is a suitable work around for my program b/c any large-magnitude negative 
number will do, but it still seems rather "unsafe" from a typing standpoint.

I'll leave it to others to decide if a formal bug report is necessary. I'm not 
really sure where the bug would go, I don't know if this is under the 
jurisdiction of debian or ubuntu or ocaml or some other group.

Regards,
Peter
-- 
http://petergroves.com



 


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to