* [Caml-list] Re: Ocamlgraph build error
@ 2004-03-31 22:03 skaller
2004-04-01 9:15 ` skaller
0 siblings, 1 reply; 2+ messages in thread
From: skaller @ 2004-03-31 22:03 UTC (permalink / raw)
To: caml-list
[skaller@pelican] /usr/local/src/ocamlgraph-0.70>ocamlc bitv.ml
File "bitv.ml", line 561, characters 57-67:
Integer literal exceeds the range of representable integers of type int
[The actual failure is in ocamldep]
let of_int32_s i = match Sys.word_size with
| 32 -> { length = 32;
bits = [| (Int32.to_int i) land max_int;
let hi = Int32.shift_right_logical i 30 in
(Int32.to_int hi) land 3 |] }
| 64 -> { length = 32; bits = [| (Int32.to_int i) land 0xffffffff |] }
| _ -> assert false
Seems the fault is in the constant 0xffffffff which of course
isn't a valid int on my 32 bit machine. You could use
(0xffff lsl 16) lor 0xffff
instead in the hope the compiler doesn't fold it,
but ultimately if the compiler is smart enough
you really must use conditional compilation.
--
John Skaller, mailto:skaller@users.sf.net
voice: 061-2-9660-0850,
snail: PO BOX 401 Glebe NSW 2037 Australia
Checkout the Felix programming language http://felix.sf.net
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [Caml-list] Re: Ocamlgraph build error
2004-03-31 22:03 [Caml-list] Re: Ocamlgraph build error skaller
@ 2004-04-01 9:15 ` skaller
0 siblings, 0 replies; 2+ messages in thread
From: skaller @ 2004-04-01 9:15 UTC (permalink / raw)
To: skaller; +Cc: caml-list
[Patched Ocamlgraph so it works on 32 bit machine]
-------------------
module Elt = struct
type t = int
let compare = compare
let hash = Hashtbl.hash
let equal = (=)
end
;;
module MyGraph = Graph.Imperative.Digraph.Concrete(Elt)
;;
let check() =
let g = MyGraph.create () in
MyGraph.add_vertex g 1;
MyGraph.add_vertex g 2;
MyGraph.add_vertex g 3;
MyGraph.add_vertex g 4;
MyGraph.add_vertex g 5;
MyGraph.add_edge g 1 2;
MyGraph.add_edge g 2 3;
print_endline "Graph constructed"
;;
print_endline "Try using graph module";;
check();;
---------------------
This works fine as per instructions:
[skaller@pelican] ~>ocamlc graph.cmo gr.ml -o gr
[skaller@pelican] ~>./gr
Try using graph module
Graph constructed
------------------------------
But this doesn't:
[skaller@pelican] ~>ocamlopt graph.cmx gr.ml -o gr
/tmp/camlstartup43f4c5.o(.text+0xe5): In function `caml_program':
: undefined reference to `camlGraph__Sig__entry'
/tmp/camlstartup43f4c5.o(.text+0xf1): In function `caml_program':
: undefined reference to `camlGraph__Sig_pack__entry'
/tmp/camlstartup43f4c5.o(.text+0xfd): In function `caml_program':
.....
collect2: ld returned 1 exit status
Error during linking
------------------------------
Instructions are:
-----------------------
ocamlgraph is packaged as a single module `Graph'. Link is done as
follows:
- bytecode
ocamlc graph.cmo <other files>
- native code
ocamlopt graph.cmx <other files>
--------------------
I must be doing something basic wrong .. using CVS ocaml:
Objective Caml version 3.07+13 (2004-01-04)
--
John Skaller, mailto:skaller@users.sf.net
voice: 061-2-9660-0850,
snail: PO BOX 401 Glebe NSW 2037 Australia
Checkout the Felix programming language http://felix.sf.net
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2004-04-01 9:15 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-03-31 22:03 [Caml-list] Re: Ocamlgraph build error skaller
2004-04-01 9:15 ` skaller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox