sig
val at_normal_exit : (unit -> unit) -> unit
val run_normal_exit_hook : unit -> unit
type group
module type Parameter =
sig
type t
val set : Plugin.Parameter.t -> unit
val add_set_hook :
(Plugin.Parameter.t -> Plugin.Parameter.t -> unit) -> unit
val get : unit -> Plugin.Parameter.t
val clear : unit -> unit
val is_default : unit -> bool
val is_set : unit -> bool
val self : Project.Computation.t
val select :
Kind.how ->
Project.Computation.selection -> Project.Computation.selection
val depend : Project.Computation.t -> unit
val mark_as_computed : ?project:Project.project -> unit -> unit
val is_computed : ?project:Project.project -> unit -> bool
val do_not_save : unit -> unit
module Datatype : Project.Datatype.S
val name : string
val equal : Plugin.Parameter.t -> Plugin.Parameter.t -> bool
val unsafe_set : Plugin.Parameter.t -> unit
val add_alias : string list -> unit
end
module type BOOL =
sig
type t = bool
val set : t -> unit
val add_set_hook : (t -> t -> unit) -> unit
val get : unit -> t
val clear : unit -> unit
val is_default : unit -> bool
val is_set : unit -> bool
val self : Project.Computation.t
val select :
Kind.how ->
Project.Computation.selection -> Project.Computation.selection
val depend : Project.Computation.t -> unit
val mark_as_computed : ?project:Project.project -> unit -> unit
val is_computed : ?project:Project.project -> unit -> bool
val do_not_save : unit -> unit
module Datatype : Project.Datatype.S
val name : string
val equal : t -> t -> bool
val unsafe_set : t -> unit
val add_alias : string list -> unit
val on : unit -> unit
val off : unit -> unit
end
module type INT =
sig
type t = int
val set : t -> unit
val add_set_hook : (t -> t -> unit) -> unit
val get : unit -> t
val clear : unit -> unit
val is_default : unit -> bool
val is_set : unit -> bool
val self : Project.Computation.t
val select :
Kind.how ->
Project.Computation.selection -> Project.Computation.selection
val depend : Project.Computation.t -> unit
val mark_as_computed : ?project:Project.project -> unit -> unit
val is_computed : ?project:Project.project -> unit -> bool
val do_not_save : unit -> unit
module Datatype : Project.Datatype.S
val name : string
val equal : t -> t -> bool
val unsafe_set : t -> unit
val add_alias : string list -> unit
val incr : unit -> unit
val set_range : min:int -> max:int -> unit
val get_range : unit -> int * int
end
module type STRING =
sig
type t = string
val set : t -> unit
val add_set_hook : (t -> t -> unit) -> unit
val get : unit -> t
val clear : unit -> unit
val is_default : unit -> bool
val is_set : unit -> bool
val self : Project.Computation.t
val select :
Kind.how ->
Project.Computation.selection -> Project.Computation.selection
val depend : Project.Computation.t -> unit
val mark_as_computed : ?project:Project.project -> unit -> unit
val is_computed : ?project:Project.project -> unit -> bool
val do_not_save : unit -> unit
module Datatype : Project.Datatype.S
val name : string
val equal : t -> t -> bool
val unsafe_set : t -> unit
val add_alias : string list -> unit
val set_possible_values : string list -> unit
val get_possible_values : unit -> string list
end
module type GEN_STRING_SET =
sig
type t
val set : t -> unit
val add_set_hook : (t -> t -> unit) -> unit
val get : unit -> t
val clear : unit -> unit
val is_default : unit -> bool
val is_set : unit -> bool
val self : Project.Computation.t
val select :
Kind.how ->
Project.Computation.selection -> Project.Computation.selection
val depend : Project.Computation.t -> unit
val mark_as_computed : ?project:Project.project -> unit -> unit
val is_computed : ?project:Project.project -> unit -> bool
val do_not_save : unit -> unit
module Datatype : Project.Datatype.S
val name : string
val equal : t -> t -> bool
val unsafe_set : t -> unit
val add_alias : string list -> unit
val set_set : string -> unit
val get_set : ?sep:string -> unit -> string
val add : string -> unit
val add_set : string -> unit
val iter : (string -> unit) -> unit
val fold : (string -> 'a -> 'a) -> 'a -> 'a
end
module type STRING_SET =
sig
type t = Cilutil.StringSet.t
val set : t -> unit
val add_set_hook : (t -> t -> unit) -> unit
val get : unit -> t
val clear : unit -> unit
val is_default : unit -> bool
val is_set : unit -> bool
val self : Project.Computation.t
val select :
Kind.how ->
Project.Computation.selection -> Project.Computation.selection
val depend : Project.Computation.t -> unit
val mark_as_computed : ?project:Project.project -> unit -> unit
val is_computed : ?project:Project.project -> unit -> bool
val do_not_save : unit -> unit
module Datatype : Project.Datatype.S
val name : string
val equal : t -> t -> bool
val unsafe_set : t -> unit
val add_alias : string list -> unit
val set_set : string -> unit
val get_set : ?sep:string -> unit -> string
val add : string -> unit
val add_set : string -> unit
val iter : (string -> unit) -> unit
val fold : (string -> 'a -> 'a) -> 'a -> 'a
val is_empty : unit -> bool
val remove : string -> unit
val remove_set : string -> unit
end
module type STRING_LIST =
sig
type t = string list
val set : t -> unit
val add_set_hook : (t -> t -> unit) -> unit
val get : unit -> t
val clear : unit -> unit
val is_default : unit -> bool
val is_set : unit -> bool
val self : Project.Computation.t
val select :
Kind.how ->
Project.Computation.selection -> Project.Computation.selection
val depend : Project.Computation.t -> unit
val mark_as_computed : ?project:Project.project -> unit -> unit
val is_computed : ?project:Project.project -> unit -> bool
val do_not_save : unit -> unit
module Datatype : Project.Datatype.S
val name : string
val equal : t -> t -> bool
val unsafe_set : t -> unit
val add_alias : string list -> unit
val set_set : string -> unit
val get_set : ?sep:string -> unit -> string
val add : string -> unit
val add_set : string -> unit
val iter : (string -> unit) -> unit
val fold : (string -> 'a -> 'a) -> 'a -> 'a
end
module type INDEXED_VAL =
sig
type t = string
val set : t -> unit
val add_set_hook : (t -> t -> unit) -> unit
val get : unit -> t
val clear : unit -> unit
val is_default : unit -> bool
val is_set : unit -> bool
val self : Project.Computation.t
val select :
Kind.how ->
Project.Computation.selection -> Project.Computation.selection
val depend : Project.Computation.t -> unit
val mark_as_computed : ?project:Project.project -> unit -> unit
val is_computed : ?project:Project.project -> unit -> bool
val do_not_save : unit -> unit
module Datatype : Project.Datatype.S
val name : string
val equal : t -> t -> bool
val unsafe_set : t -> unit
val add_alias : string list -> unit
val set_possible_values : string list -> unit
val get_possible_values : unit -> string list
type value
val add_choice : string -> Plugin.INDEXED_VAL.value -> unit
val get_val : unit -> Plugin.INDEXED_VAL.value
end
module type Parameter_input =
sig val option_name : string val descr : string end
module type Parameter_input_with_arg =
sig val option_name : string val descr : string val arg_name : string end
module type COMPLEX_VALUE =
sig
val option_name : string
val descr : string
val arg_name : string
type t
val default_val : Plugin.COMPLEX_VALUE.t
val default_key : string
val ty : Plugin.COMPLEX_VALUE.t Type.t
end
module type S =
sig
val verbose_atleast : int -> bool
val debug_atleast : int -> bool
val result : ?level:int -> 'a Log.pretty_printer
val feedback : ?level:int -> 'a Log.pretty_printer
val debug : ?level:int -> 'a Log.pretty_printer
val warning : 'a Log.pretty_printer
val error : 'a Log.pretty_printer
val abort : ('a, 'b) Log.pretty_aborter
val failure : 'a Log.pretty_printer
val fatal : ('a, 'b) Log.pretty_aborter
val verify : bool -> ('a, bool) Log.pretty_aborter
val not_yet_implemented :
('a, Format.formatter, unit, 'b) format4 -> 'a
val deprecated : string -> now:string -> ('a -> 'b) -> 'a -> 'b
val with_result : (Log.event -> 'a) -> ('b, 'a) Log.pretty_aborter
val with_warning : (Log.event -> 'a) -> ('b, 'a) Log.pretty_aborter
val with_error : (Log.event -> 'a) -> ('b, 'a) Log.pretty_aborter
val with_failure : (Log.event -> 'a) -> ('b, 'a) Log.pretty_aborter
val log :
?kind:Log.kind -> ?verbose:int -> ?debug:int -> 'a Log.pretty_printer
val with_log :
(Log.event -> 'a) -> ?kind:Log.kind -> ('b, 'a) Log.pretty_aborter
val register : Log.kind -> (Log.event -> unit) -> unit
val register_tag_handlers :
(string -> string) * (string -> string) -> unit
val add_group : string -> Plugin.group
module Help : BOOL
module Verbose : INT
module Debug : INT
end
module type General_services =
sig
val verbose_atleast : int -> bool
val debug_atleast : int -> bool
val result : ?level:int -> 'a Log.pretty_printer
val feedback : ?level:int -> 'a Log.pretty_printer
val debug : ?level:int -> 'a Log.pretty_printer
val warning : 'a Log.pretty_printer
val error : 'a Log.pretty_printer
val abort : ('a, 'b) Log.pretty_aborter
val failure : 'a Log.pretty_printer
val fatal : ('a, 'b) Log.pretty_aborter
val verify : bool -> ('a, bool) Log.pretty_aborter
val not_yet_implemented :
('a, Format.formatter, unit, 'b) format4 -> 'a
val deprecated : string -> now:string -> ('a -> 'b) -> 'a -> 'b
val with_result : (Log.event -> 'a) -> ('b, 'a) Log.pretty_aborter
val with_warning : (Log.event -> 'a) -> ('b, 'a) Log.pretty_aborter
val with_error : (Log.event -> 'a) -> ('b, 'a) Log.pretty_aborter
val with_failure : (Log.event -> 'a) -> ('b, 'a) Log.pretty_aborter
val log :
?kind:Log.kind -> ?verbose:int -> ?debug:int -> 'a Log.pretty_printer
val with_log :
(Log.event -> 'a) -> ?kind:Log.kind -> ('b, 'a) Log.pretty_aborter
val register : Log.kind -> (Log.event -> unit) -> unit
val register_tag_handlers :
(string -> string) * (string -> string) -> unit
val add_group : string -> group
module Help : BOOL
module Verbose : INT
module Debug : INT
module Bool :
functor
(X : sig
val option_name : string
val descr : string
val default : bool
end) ->
BOOL
module Action : functor (X : Parameter_input) -> BOOL
module False : functor (X : Parameter_input) -> BOOL
module True : functor (X : Parameter_input) -> BOOL
module Int :
functor
(X : sig
val default : int
val option_name : string
val descr : string
val arg_name : string
end) ->
INT
module Zero : functor (X : Parameter_input_with_arg) -> INT
module String :
functor
(X : sig
val option_name : string
val descr : string
val arg_name : string
val default : string
end) ->
STRING
module EmptyString : functor (X : Parameter_input_with_arg) -> STRING
module StringSet : functor (X : Parameter_input_with_arg) -> STRING_SET
module StringList :
functor (X : Parameter_input_with_arg) -> STRING_LIST
module IndexedVal :
functor (V : COMPLEX_VALUE) ->
sig
type t = string
val set : t -> unit
val add_set_hook : (t -> t -> unit) -> unit
val get : unit -> t
val clear : unit -> unit
val is_default : unit -> bool
val is_set : unit -> bool
val self : Project.Computation.t
val select :
Kind.how ->
Project.Computation.selection -> Project.Computation.selection
val depend : Project.Computation.t -> unit
val mark_as_computed : ?project:Project.project -> unit -> unit
val is_computed : ?project:Project.project -> unit -> bool
val do_not_save : unit -> unit
module Datatype : Project.Datatype.S
val name : string
val equal : t -> t -> bool
val unsafe_set : t -> unit
val add_alias : string list -> unit
val set_possible_values : string list -> unit
val get_possible_values : unit -> string list
type value = V.t
val add_choice : string -> value -> unit
val get_val : unit -> value
end
end
val set_cmdline_stage : Cmdline.stage -> unit
val do_not_journalize : unit -> unit
val do_not_projectify : unit -> unit
val register_kernel : unit -> unit
val set_negative_option_name : string -> unit
val set_negative_option_descr : string -> unit
val set_optional_descr :
(unit, Format.formatter, unit) Pervasives.format -> unit
val set_group : Plugin.group -> unit
val set_module_name : string -> unit
module Register :
functor
(P : sig
val name : string
val shortname : string
val descr : string
end) ->
General_services
type 'a option_accessor = private {
get : unit -> 'a;
set : 'a -> unit;
is_set : unit -> bool;
}
type kind = private
Bool of bool Plugin.option_accessor * string option
| Int of int Plugin.option_accessor * (unit -> int * int)
| String of string Plugin.option_accessor * (unit -> string list)
| StringSet of string Plugin.option_accessor
type parameter = private {
o_name : string;
o_descr : string;
o_kind : Plugin.kind;
}
type plugin = private {
p_name : string;
p_descr : string;
p_parameters : (string, Plugin.parameter list) Hashtbl.t;
}
val iter_on_plugins : (Plugin.plugin -> unit) -> unit
val get_selection : unit -> Project.Selection.t
val dynamic_funname :
modname:string -> funname:string -> statename:string -> string
end