--- layout: fc_discuss_archives title: Message 38 from Frama-C-discuss on October 2010 ---
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>