Compilation problem with 3.3.7 and trunk

Theodore Hong <[email protected]> Tue, 23 Aug 2011 14:08:09 +0100
Newsgroups gmane.comp.lang.ocaml.lib.net.devel
Message-ID <CAEUB3pGrybYWMUgK9UEt9f96NdqBCAFj3Vs=Uvy1Y7N5y+heeQ@mail.gmail.com>
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