LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Software (http://www.linuxquestions.org/questions/linux-software-2/)
-   -   make unison 2.4 on debian squeeze throws implementation/interface mismatch (http://www.linuxquestions.org/questions/linux-software-2/make-unison-2-4-on-debian-squeeze-throws-implementation-interface-mismatch-828278/)

gfarrell 08-24-2010 05:42 PM

make unison 2.4 on debian squeeze throws implementation/interface mismatch
 
Hi all,

I'm trying to install unison 2.40.16 on debian squeeze but keep getting this error when using
Code:

make UITYPE=text NATIVE=true
as per the instructions at http://www.cis.upenn.edu/~bcpierce/u...tml#build-unix

Code:

Error: The implementation /home/gideon/unison-2.40.16/update.ml
      does not match the interface update.cmi:
      Modules do not match:
        sig
          type key = Name.t
          type 'a t = 'a MyMap.Make(Name).t
          val empty : 'a t
          val is_empty : 'a t -> bool
          val add : key -> 'a -> 'a t -> 'a t
          val find : key -> 'a t -> 'a
          val findi : key -> 'a t -> key * 'a
          val remove : key -> 'a t -> 'a t
          val mem : key -> 'a t -> bool
          val iter : (key -> 'a -> unit) -> 'a t -> unit
          val map : ('a -> 'b) -> 'a t -> 'b t
          val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
          val mapii : (key -> 'a -> key * 'b) -> 'a t -> 'b t
          val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
          val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
          val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
          val validate :
            'a t -> [ `Duplicate of key | `Invalid of key * key | `Ok ]
        end
      is not included in
        sig
          type key = Name.t
          type +'a t
          val empty : 'a t
          val is_empty : 'a t -> bool
          val mem : key -> 'a t -> bool
          val add : key -> 'a -> 'a t -> 'a t
          val singleton : key -> 'a -> 'a t
          val remove : key -> 'a t -> 'a t
          val merge :
            (key -> 'a option -> 'b option -> 'c option) ->
            'a t -> 'b t -> 'c t
          val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
          val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
          val iter : (key -> 'a -> unit) -> 'a t -> unit
          val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
          val for_all : (key -> 'a -> bool) -> 'a t -> bool
          val exists : (key -> 'a -> bool) -> 'a t -> bool
          val filter : (key -> 'a -> bool) -> 'a t -> 'a t
          val partition : (key -> 'a -> bool) -> 'a t -> 'a t * 'a t
          val cardinal : 'a t -> int
          val bindings : 'a t -> (key * 'a) list
          val min_binding : 'a t -> key * 'a
          val max_binding : 'a t -> key * 'a
          val choose : 'a t -> key * 'a
          val split : key -> 'a t -> 'a t * 'a option * 'a t
          val find : key -> 'a t -> 'a
          val map : ('a -> 'b) -> 'a t -> 'b t
          val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
        end
      The field `split' is required but not provided
      The field `choose' is required but not provided
      The field `max_binding' is required but not provided
      The field `min_binding' is required but not provided
      The field `bindings' is required but not provided
      The field `cardinal' is required but not provided
      The field `partition' is required but not provided
      The field `filter' is required but not provided
      The field `exists' is required but not provided
      The field `for_all' is required but not provided
      The field `merge' is required but not provided
      The field `singleton' is required but not provided
make: *** [update.cmx] Error 2

I've already successfully installed this on my mac so I'm not entirely sure what's going on here? I'm also a little bit out of my comfort zone with ocamlc.

pljvaldez 08-24-2010 07:04 PM

I can't help with that, but is there any reason you don't just use the one from the main Debian repositories? Is there a killer feature in 2.40.16 that you need?

gfarrell 08-25-2010 04:24 AM

Quote:

Originally Posted by pljvaldez (Post 4076690)
I can't help with that, but is there any reason you don't just use the one from the main Debian repositories? Is there a killer feature in 2.40.16 that you need?

I have 2.40.16 on my mac because that is the version which has compilation instructions for mac (so I assumed that that would be the only one that would really work on a mac).

Unison was being a little bit stupid and not liking having 2.32 on my server. I'll just try and downgrade both and see what happens.

gfarrell 08-25-2010 04:26 AM

As I though, I cannot make 2.32 on my mac, I get build errors for missing sdks.

gfarrell 08-25-2010 04:36 AM

I just used the ports version, that should do the trick on my mac, so now the linux one is at the right version.

Moy Easwaran 01-23-2011 01:02 PM

Alternate solution
 
I also had gfarrell's original problem. It turns out that version 3.12 of Ocaml, released 2010-08-02, gives the error above. The previous version, 3.11.2, released on 2010-01-20, does not give this error :-).

Best,

Moy


All times are GMT -5. The time now is 11:25 AM.