Frama-C-discuss mailing list archives

This page gathers the archives of the old Frama-C-discuss archives, that was hosted by Inria's gforge before its demise at the end of 2020. To search for mails newer than September 2020, please visit the page of the new mailing list on Renater.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Frama-c-discuss] problem compiling frama-c-Boron-20100401-why-2.24 using OCaml-3.12.0


  • Subject: [Frama-c-discuss] problem compiling frama-c-Boron-20100401-why-2.24 using OCaml-3.12.0
  • From: MarkoSchuetz at web.de (Marko Schütz Schmuck)
  • Date: Tue, 12 Oct 2010 09:34:30 -0400

Dear All,

I was trying to compile frama-c-Boron-20100401-why-2.24 with
OCaml-3.12.0 and --enable-external=why/frama-c-plugin

This results in 

[..]
Ocamlc   jc/jc_stdlib.ml
File "jc/jc_stdlib.ml", line 1, characters 0-1:
Error: The implementation jc/jc_stdlib.ml
       does not match the interface (inferred signature):
       Modules do not match:
         sig
           module type OrderedType = Map.OrderedType
           module type S =
             sig
               type key
               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 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
               val elements : 'a t -> (key * 'a) list
               val keys : 'a t -> key list
               val values : 'a t -> 'a list
               val to_list : 'a t -> (key * 'a) list
               val exists : (key -> 'a -> bool) -> 'a t -> bool
               val filter : (key -> 'a -> bool) -> 'a t -> 'a t
               val find_or_default : key -> 'a -> 'a t -> 'a
               val find_or_none : key -> 'a t -> 'a option
               val merge : ('a -> 'a -> 'a) -> 'a t -> 'a t -> 'a t
               val add_merge : ('a -> 'a -> 'a) -> key -> 'a -> 'a t -> 'a t
               val diff_merge :
                 ('a -> 'a -> 'a) -> ('a -> bool) -> 'a t -> 'a t -> 'a t
               val inter_merge :
                 ('a -> 'a -> 'a) -> ('a -> bool) -> 'a t -> 'a t -> 'a t
               val inter_merge_option :
                 ('a -> 'b -> 'c option) -> 'a t -> 'b t -> 'c t
             end
           module Make :
             functor (Ord : OrderedType) ->
               sig
                 type key = Ord.t
                 type 'a t = 'a Map.Make(Ord).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 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
                 val elements : 'a t -> (key * 'a) list
                 val keys : 'a t -> key list
                 val values : 'a t -> 'a list
                 val to_list : 'a t -> (key * 'a) list
                 val exists : (key -> 'a -> bool) -> 'a t -> bool
                 val filter : (key -> 'a -> bool) -> 'a t -> 'a t
                 val find_or_default : key -> 'a -> 'a t -> 'a
                 val find_or_none : key -> 'a t -> 'a option
                 val merge : ('a -> 'a -> 'a) -> 'a t -> 'a t -> 'a t
                 val add_merge :
                   ('a -> 'a -> 'a) -> key -> 'a -> 'a t -> 'a t
                 val diff_merge :
                   ('a -> 'a -> 'a) -> ('a -> bool) -> 'a t -> 'a t -> 'a t
                 val inter_merge :
                   ('a -> 'a -> 'a) -> ('a -> bool) -> 'a t -> 'a t -> 'a t
                 val inter_merge_option :
                   ('a -> 'b -> 'c option) -> 'a t -> 'b t -> 'c t
               end
         end
       is not included in
         sig
           module type OrderedType = Map.OrderedType
           module type S =
             sig
               type key
               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 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
               val elements : 'a t -> (key * 'a) list
               val keys : 'a t -> key list
               val values : 'a t -> 'a list
               val to_list : 'a t -> (key * 'a) list
               val exists : (key -> 'a -> bool) -> 'a t -> bool
               val filter : (key -> 'a -> bool) -> 'a t -> 'a t
               val find_or_default : key -> 'a -> 'a t -> 'a
               val find_or_none : key -> 'a t -> 'a option
               val merge : ('a -> 'a -> 'a) -> 'a t -> 'a t -> 'a t
               val add_merge : ('a -> 'a -> 'a) -> key -> 'a -> 'a t -> 'a t
               val diff_merge :
                 ('a -> 'a -> 'a) -> ('a -> bool) -> 'a t -> 'a t -> 'a t
               val inter_merge :
                 ('a -> 'a -> 'a) -> ('a -> bool) -> 'a t -> 'a t -> 'a t
               val inter_merge_option :
                 ('a -> 'b -> 'c option) -> 'a t -> 'b t -> 'c t
             end
           module Make :
             functor (Ord : OrderedType) ->
               sig
                 type key = Ord.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 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 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
                 val elements : 'a t -> (key * 'a) list
                 val keys : 'a t -> key list
                 val values : 'a t -> 'a list
                 val to_list : 'a t -> (key * 'a) list
                 val exists : (key -> 'a -> bool) -> 'a t -> bool
                 val filter : (key -> 'a -> bool) -> 'a t -> 'a t
                 val find_or_default : key -> 'a -> 'a t -> 'a
                 val find_or_none : key -> 'a t -> 'a option
                 val merge : ('a -> 'a -> 'a) -> 'a t -> 'a t -> 'a t
                 val add_merge :
                   ('a -> 'a -> 'a) -> key -> 'a -> 'a t -> 'a t
                 val diff_merge :
                   ('a -> 'a -> 'a) -> ('a -> bool) -> 'a t -> 'a t -> 'a t
                 val inter_merge :
                   ('a -> 'a -> 'a) -> ('a -> bool) -> 'a t -> 'a t -> 'a t
                 val inter_merge_option :
                   ('a -> 'b -> 'c option) -> 'a t -> 'b t -> 'c t
               end
         end
       Module type declarations do not match:
         module type S =
           sig
             type key
             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 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
             val elements : 'a t -> (key * 'a) list
             val keys : 'a t -> key list
             val values : 'a t -> 'a list
             val to_list : 'a t -> (key * 'a) list
             val exists : (key -> 'a -> bool) -> 'a t -> bool
             val filter : (key -> 'a -> bool) -> 'a t -> 'a t
             val find_or_default : key -> 'a -> 'a t -> 'a
             val find_or_none : key -> 'a t -> 'a option
             val merge : ('a -> 'a -> 'a) -> 'a t -> 'a t -> 'a t
             val add_merge : ('a -> 'a -> 'a) -> key -> 'a -> 'a t -> 'a t
             val diff_merge :
               ('a -> 'a -> 'a) -> ('a -> bool) -> 'a t -> 'a t -> 'a t
             val inter_merge :
               ('a -> 'a -> 'a) -> ('a -> bool) -> 'a t -> 'a t -> 'a t
             val inter_merge_option :
               ('a -> 'b -> 'c option) -> 'a t -> 'b t -> 'c t
           end
       does not match
         module type S =
           sig
             type key
             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 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
             val elements : 'a t -> (key * 'a) list
             val keys : 'a t -> key list
             val values : 'a t -> 'a list
             val to_list : 'a t -> (key * 'a) list
             val exists : (key -> 'a -> bool) -> 'a t -> bool
             val filter : (key -> 'a -> bool) -> 'a t -> 'a t
             val find_or_default : key -> 'a -> 'a t -> 'a
             val find_or_none : key -> 'a t -> 'a option
             val merge : ('a -> 'a -> 'a) -> 'a t -> 'a t -> 'a t
             val add_merge : ('a -> 'a -> 'a) -> key -> 'a -> 'a t -> 'a t
             val diff_merge :
               ('a -> 'a -> 'a) -> ('a -> bool) -> 'a t -> 'a t -> 'a t
             val inter_merge :
               ('a -> 'a -> 'a) -> ('a -> bool) -> 'a t -> 'a t -> 'a t
             val inter_merge_option :
               ('a -> 'b -> 'c option) -> 'a t -> 'b t -> 'c t
           end
       Illegal permutation of structure fields
gmake[1]: *** [jc/jc_stdlib.cmo] Error 2

Any hints as to what is going wrong here?

Thanks,

Marko
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 194 bytes
Desc: not available
URL: <http://lists.gforge.inria.fr/pipermail/frama-c-discuss/attachments/20101012/fc617d89/attachment.pgp>