Re: Compilation problem with 3.3.7 and trunk

Gerd Stolpmann <[email protected]> Wed, 24 Aug 2011 14:16:28 +0200
Newsgroups gmane.comp.lang.ocaml.lib.net.devel
Message-ID <1314188188.3496.28.camel@thinkpad>
Won't fix. This ocaml version is ancient...

You can fix it locally by adding at the beginning of netmcore_heap.ml:

  let set_double_field x i v = Array.set (obj x : float array) i v

and change "Obj.set_double_field" into a plain "set_double_field".

If you need a way to install a recent version of ocaml onto machines
with older OS, you may consider GODI, godi.camlcity.org.

Gerd

Am Mittwoch, den 24.08.2011, 11:57 +0100 schrieb Theodore Hong:
> fyi, compilation also seems to fail for a different reason with Ocaml 3.11.1:
> 
> ocamlfind ocamlc -g  -I ../../src/equeue -I ../../src/rpc -I
> ../../src/netstring -I ../../src/netsys -I ../../src/netplex -I
> ../../src/netcamlbox -package "unix"  -c  netmcore_heap.ml
> File "netmcore_heap.ml", line 776, characters 1-21:
> Error: Unbound value Obj.set_double_field
> make[1]: *** [netmcore_heap.cmo] Error 2
> make[1]: Leaving directory
> `/usr/scratch/rupert/thong/tmp/lib-ocamlnet2/code/src/netmulticore'
> make: *** [all] Error 2
> penny:~/scratch/tmp/lib-ocamlnet2/code$ ocaml -version
> The Objective Caml toplevel, version 3.11.1
> 
> theo
> 
> 
> On Tue, Aug 23, 2011 at 6:29 PM, Gerd Stolpmann <[email protected]> wrote:
> > Fixed in svn. There were some typing stuff that only built with ocaml
> > 3.12, and adding a few type hints fixed it.
> >
> > An orderly release will follow in the next days.
> >
> > Gerd
> >
> > Am Dienstag, den 23.08.2011, 14:08 +0100 schrieb Theodore Hong:
> >> Hi, I can't compile ocamlnet 3.3.7 - I get:
> >>
> >>
> >> make[1]: Entering directory `/tmp/ocamlnet-3.3.7/src/netstring'
> >> ocamlfind ocamlc -g  -I ../../src/netsys -package "pcre bigarray unix"
> >>  -c  netglob.ml
> >> File "netglob.ml", line 1, characters 0-1:
> >> Error: The implementation netglob.ml
> >>        does not match the interface netglob.cmi:
> >>        Class declarations do not match:
> >>          class of_stream_fs :
> >>            < copy : [> Netfs.copy_flag ] list -> string -> string -> unit;
> >>              mkdir : [> Netfs.mkdir_flag ] list -> string -> unit;
> >>              nominal_dot_dot : bool;
> >>              path_encoding : [< Netconversion.encoding ] option;
> >>              path_exclusions : (int * int) list;
> >>              read : [> Netfs.read_flag ] list ->
> >>                     string -> #Netchannels.in_obj_channel;
> >>              readdir : [> Netfs.readdir_flag ] list -> string -> string list;
> >>              readlink : [> Netfs.readlink_flag ] list -> string -> string;
> >>              remove : [> Netfs.remove_flag ] list -> string -> unit;
> >>              rename : [> Netfs.rename_flag ] list -> string -> string -> unit;
> >>              rmdir : [> Netfs.rmdir_flag ] list -> string -> unit;
> >>              size : [> Netfs.size_flag ] list -> string -> int64;
> >>              symlink : [> Netfs.symlink_flag ] list ->
> >>                        string -> string -> unit;
> >>              test : [> Netfs.test_flag ] list ->
> >>                     string -> [> Netfs.test_type ] -> bool;
> >>              test_list : [> Netfs.test_flag ] list ->
> >>                          string -> [> Netfs.test_type ] list -> bool list;
> >>              write : [> Netfs.write_flag ] list ->
> >>                      string -> #Netchannels.out_obj_channel;
> >>              .. > ->
> >>            of_dual_stream_fs
> >>        does not match
> >>          class of_stream_fs : #Netfs.stream_fs -> glob_fsys
> >>        A parameter has type
> >>          < copy : ([> Netfs.copy_flag ] as 'a) list ->
> >>                   string -> string -> unit;
> >>            mkdir : [> Netfs.mkdir_flag ] list -> string -> unit;
> >>            nominal_dot_dot : bool;
> >>            path_encoding : [< Netconversion.encoding ] option;
> >>            path_exclusions : (int * int) list;
> >>            read : [> Netfs.read_flag ] list ->
> >>                   string -> #Netchannels.in_obj_channel;
> >>            readdir : [> Netfs.readdir_flag ] list -> string -> string list;
> >>            readlink : [> Netfs.readlink_flag ] list -> string -> string;
> >>            remove : [> Netfs.remove_flag ] list -> string -> unit;
> >>            rename : [> Netfs.rename_flag ] list -> string -> string -> unit;
> >>            rmdir : [> Netfs.rmdir_flag ] list -> string -> unit;
> >>            size : [> Netfs.size_flag ] list -> string -> int64;
> >>            symlink : [> Netfs.symlink_flag ] list -> string -> string -> unit;
> >>            test : [> Netfs.test_flag ] list ->
> >>                   string -> [> Netfs.test_type ] -> bool;
> >>            test_list : [> Netfs.test_flag ] list ->
> >>                        string -> [> Netfs.test_type ] list -> bool list;
> >>            write : [> Netfs.write_flag ] list ->
> >>                    string -> #Netchannels.out_obj_channel;
> >>            .. >
> >>        but is expected to have type
> >>          #Netfs.stream_fs as 'b =
> >>            < copy : Netfs.copy_flag list -> string -> string -> unit;
> >>              mkdir : Netfs.mkdir_flag list -> string -> unit;
> >>              nominal_dot_dot : bool;
> >>              path_encoding : Netconversion.encoding option;
> >>              path_exclusions : (int * int) list;
> >>              read : Netfs.read_flag list ->
> >>                     string -> Netchannels.in_obj_channel;
> >>              readdir : Netfs.readdir_flag list -> string -> string list;
> >>              readlink : Netfs.readlink_flag list -> string -> string;
> >>              remove : Netfs.remove_flag list -> string -> unit;
> >>              rename : Netfs.rename_flag list -> string -> string -> unit;
> >>              rmdir : Netfs.rmdir_flag list -> string -> unit;
> >>              size : Netfs.size_flag list -> string -> int64;
> >>              symlink : Netfs.symlink_flag list -> string -> string -> unit;
> >>              test : Netfs.test_flag list -> string -> Netfs.test_type -> bool;
> >>              test_list : Netfs.test_flag list ->
> >>                          string -> Netfs.test_type list -> bool list;
> >>              write : Netfs.write_flag list ->
> >>                      string -> Netchannels.out_obj_channel;
> >>              .. >
> >>        Type 'a = [> `Dummy ] is not compatible with type
> >>          Netfs.copy_flag = [ `Dummy ]
> >> make[1]: *** [netglob.cmo] Error 2
> >> make[1]: Leaving directory `/tmp/ocamlnet-3.3.7/src/netstring'
> >> make: *** [all] Error 2
> >>
> >>
> >> Any ideas?  The same problem occurs in trunk as well.  This is OCaml
> >> 3.11.2 on Ubuntu Lucid.
> >>
> >> thanks,
> >> theo
> >>
> >> ------------------------------------------------------------------------------
> >> Get a FREE DOWNLOAD! and learn more about uberSVN rich system,
> >> user administration capabilities and model configuration. Take
> >> the hassle out of deploying and managing Subversion and the
> >> tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2
> >> _______________________________________________
> >> Ocamlnet-devel mailing list
> >> [email protected]
> >> https://lists.sourceforge.net/lists/listinfo/ocamlnet-devel
> >>
> >
> > --
> > ------------------------------------------------------------
> > Gerd Stolpmann, Darmstadt, Germany    [email protected]
> > Creator of GODI and camlcity.org.
> > Contact details:        http://www.camlcity.org/contact.html
> > Company homepage:       http://www.gerd-stolpmann.de
> > *** Searching for new projects! Need consulting for system
> > *** programming in Ocaml? Gerd Stolpmann can help you.
> > ------------------------------------------------------------
> >
> >
> 
> ------------------------------------------------------------------------------
> EMC VNX: the world's simplest storage, starting under $10K
> The only unified storage solution that offers unified management 
> Up to 160% more powerful than alternatives and 25% more efficient. 
> Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
> _______________________________________________
> Ocamlnet-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ocamlnet-devel
> 

-- 
------------------------------------------------------------
Gerd Stolpmann, Darmstadt, Germany    [email protected]
Creator of GODI and camlcity.org.
Contact details:        http://www.camlcity.org/contact.html
Company homepage:       http://www.gerd-stolpmann.de
*** Searching for new projects! Need consulting for system
*** programming in Ocaml? Gerd Stolpmann can help you.
------------------------------------------------------------


------------------------------------------------------------------------------
EMC VNX: the world's simplest storage, starting under $10K
The only unified storage solution that offers unified management 
Up to 160% more powerful than alternatives and 25% more efficient. 
Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev