package goblint
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=2f4f2e25b765452f0e336941f35f6cb396d7c213a2d347abe5d35febc5159b1f
sha512=e96af4cad91f6985c8db93c194925853e96cad0ec1a0d9f4d32bbe16d3e5fa1e305f54be02839f21ba89ad2af0c2d5d7aa819ade221ce097dc4dbd0fcd8c8500
doc/goblint.lib/Goblint_lib/Analyses/index.html
Module Goblint_lib.Analyses
Signatures for analyzers, analysis specifications, and result output.
module GU = Goblintutilmodule M = MessagesAnalysis starts from lists of functions: start functions, exit functions, and * other functions.
module type SysVar = sig ... endmodule type VarType = sig ... endmodule Var : sig ... endmodule VarF (LD : Printable.S) : sig ... endmodule type SpecSysVar = sig ... endmodule GVarF (V : SpecSysVar) : sig ... endmodule GVarG (G : Lattice.S) (C : Printable.S) : sig ... endmodule ResultNode : Printable.S with type t = MyCFG.nodemodule type ResultConf = sig ... endmodule Result (Range : Printable.S) (C : ResultConf) : sig ... endval control_spec_c : (module Printable.S) Prelude.refReference to top-level Control Spec context first-class module.
module ControlSpecC : Printable.STop-level Control Spec context as static module, which delegates to control_spec_c. This allows using top-level context values inside individual analyses.
type ('d, 'g, 'c, 'v) ctx = {ask : 'a. 'a Queries.t -> 'a Queries.result;emit : Events.t -> unit;node : MyCFG.node;prev_node : MyCFG.node;control_context : unit -> ControlSpecC.t;(*top-level Control Spec context, raises
*)Ctx_failureif missingcontext : unit -> 'c;(*current Spec context, raises
*)Ctx_failureif missingedge : MyCFG.edge;local : 'd;global : 'v -> 'g;spawn : GoblintCil.lval option -> GoblintCil.varinfo -> GoblintCil.exp list -> unit;split : 'd -> Events.t list -> unit;sideg : 'v -> 'g -> unit;
}val ask_of_ctx : ('a, 'b, 'c, 'd) ctx -> Queries.askConvert ctx to Queries.ask.
module type Spec = sig ... endmodule type MCPA = sig ... endmodule type MCPSpec = sig ... endtype increment_data = {server : bool;old_data : analyzed_data option;changes : CompareCIL.change_info;restarting : VarQuery.t list;
}val empty_increment_data : ?server:bool -> unit -> increment_datamodule type MonSystem = sig ... endA side-effecting system.
module type EqConstrSys = MonSystem with type 'a m := 'a optionAny system of side-effecting equations over lattices.
module type GlobConstrSys = sig ... endA side-effecting system with globals.
module type GenericEqBoxIncrSolverBase =
functor (S : EqConstrSys) ->
functor (H : Goblint_lib.Prelude.Hashtbl.S with type key = S.v) ->
sig ... endA solver is something that can translate a system into a solution (hash-table). Incremental solver has data to be marshaled.
module type IncrSolverArg = sig ... end(Incremental) solver argument, indicating which postsolving should be performed by the solver.
module type GenericEqBoxIncrSolver =
functor (Arg : IncrSolverArg) ->
GenericEqBoxIncrSolverBaseAn incremental solver takes the argument about postsolving.
module type GenericEqBoxSolver =
functor (S : EqConstrSys) ->
functor (H : Goblint_lib.Prelude.Hashtbl.S with type key = S.v) ->
sig ... endA solver is something that can translate a system into a solution (hash-table)
module type GenericGlobSolver =
functor (S : GlobConstrSys) ->
functor (LH : Goblint_lib.Prelude.Hashtbl.S with type key = S.LVar.t) ->
functor (GH : Goblint_lib.Prelude.Hashtbl.S with type key = S.GVar.t) ->
sig ... endA solver is something that can translate a system into a solution (hash-table)
module ResultType2 (S : Spec) : sig ... endmodule StdV : sig ... endmodule VarinfoV : sig ... endmodule EmptyV : sig ... endmodule UnitA : sig ... endmodule DefaultSpec : sig ... endRelatively safe default implementations of some boring Spec functions.
module IdentitySpec : sig ... end