package frama-c
Install
dune-project
Dependency
Authors
-
MMichele Alberti
-
TThibaud Antignac
-
GGergö Barany
-
PPatrick Baudin
-
TThibaut Benjamin
-
AAllan Blanchard
-
LLionel Blatter
-
FFrançois Bobot
-
RRichard Bonichon
-
QQuentin Bouillaguet
-
DDavid Bühler
-
ZZakaria Chihani
-
LLoïc Correnson
-
JJulien Crétin
-
PPascal Cuoq
-
ZZaynah Dargaye
-
BBasile Desloges
-
JJean-Christophe Filliâtre
-
PPhilippe Herrmann
-
MMaxime Jacquemin
-
FFlorent Kirchner
-
AAlexander Kogtenkov
-
TTristan Le Gall
-
JJean-Christophe Léchenet
-
MMatthieu Lemerre
-
DDara Ly
-
DDavid Maison
-
CClaude Marché
-
AAndré Maroneze
-
TThibault Martin
-
FFonenantsoa Maurica
-
MMelody Méaulle
-
BBenjamin Monate
-
YYannick Moy
-
PPierre Nigron
-
AAnne Pacalet
-
VValentin Perrelle
-
GGuillaume Petiot
-
DDario Pinto
-
VVirgile Prevosto
-
AArmand Puccetti
-
FFélix Ridoux
-
VVirgile Robles
-
JJan Rochel
-
MMuriel Roger
-
JJulien Signoles
-
NNicolas Stouls
-
KKostyantyn Vorobyov
-
BBoris Yakobowski
Maintainers
Sources
sha256=0c80dae8074fcb3f6a33d7a41faf9939a2a336478a8d2c79e20e2d7bab953735
doc/frama-c.kernel/Frama_c_kernel/State_builder/index.html
Module Frama_c_kernel.State_builder
State builders. Provide ways to implement signature State_builder.S. Depending on the builder, also provide some additional useful information.
Low-level Builder
module type Info = sig ... endAdditional information required by State_builder.Register.
module type Info_with_size = sig ... endmodule type S = sig ... endOutput signature of State_builder.Register.
module Register
(Datatype : Datatype.S)
(_ : State.Local with type t = Datatype.t)
(_ : sig ... end) :
S with module Datatype = DatatypeRegister(Datatype)(Local_state)(Info) registers a new state. Datatype represents the datatype of a state, Local_state explains how to deal with the client-side state and Info are additional required information.
High-level Builders
References
module type Ref = sig ... endOutput signature of Ref.
module Ref
(Data : Datatype.S)
(_ : sig ... end) :
Ref with type data = Data.t and type Datatype.t = Data.t refmodule type Option_ref = sig ... endOutput signature of Option_ref. Note that get will raise Not_found if the stored data is None. Use get_option if you want to have access to the option.
module Option_ref
(Data : Datatype.S)
(_ : Info) :
Option_ref with type data = Data.tBuild a reference on an option.
module type List_ref = sig ... endOutput signature of ListRef.
module List_ref
(Data : Datatype.S)
(_ : Info) :
List_ref with type data = Data.t list and type data_in_list = Data.tBuild a reference on a list.
Build a reference on an integer, initialized with 0.
Build a reference on a boolean, initialized with false.
Build a reference on a boolean, initialized with true.
Weak Hashtbl
module type Weak_hashtbl = sig ... endOutput signature of builders of hashtables.
module Weak_hashtbl
(W : Weak.S)
(_ : Datatype.S with type t = W.data)
(_ : Info_with_size) :
Weak_hashtbl with type data = W.dataBuild a weak hashtbl over a datatype Data from a reference implementation W.
module Caml_weak_hashtbl
(Data : Datatype.S)
(_ : Info_with_size) :
Weak_hashtbl with type data = Data.tBuild a weak hashtbl over a datatype Data by using Weak.Make provided by the OCaml standard library. Note that the table is not saved on disk.
module type Hashconsing_tbl =
functor (Data : sig ... end) ->
functor (_ : Info_with_size) ->
Weak_hashtbl with type data = Data.tSignature for the creation of projectified hashconsing tables..
module Hashconsing_tbl_weak : Hashconsing_tblWeak hashtbl dedicated to hashconsing. Note that the resulting table is not saved on disk.
module Hashconsing_tbl_not_weak : Hashconsing_tblHash table for hashconsing, but the internal table is _not_ weak (it is a regular hash table). This module should be used only in case perfect reproducibility matters, as the table will never be emptied by the GC.
module Hashconsing_tbl : Hashconsing_tblWeak or non-weak hashconsing tables, depending on variable Cmdline.deterministic.
Hashtables
IMPORTANT: that is INCORRECT to use projectified hashtables if keys have a custom rehash function (see Datatype.Make_input.rehash)
module type Hashtbl = sig ... endOutput signature of builders of hashtables.
module Hashtbl
(H : Datatype.Hashtbl)
(Data : Datatype.S)
(_ : Info_with_size) :
Hashtbl
with type key = H.key
and type data = Data.t
and module Datatype = H.Make(Data)module Int_hashtbl
(Data : Datatype.S)
(_ : Info_with_size) :
Hashtbl with type key = int and type data = Data.tReferences on a set
module type Set_ref = sig ... endOutput signature of builders of references on a set.
Queue
module type Queue = sig ... endArray
module type Array = sig ... endProxies
module Proxy : sig ... endState proxy. A proxy is a state which does not correspond to any useful mutable value. Its goal is only to reduce the number of dependencies between groups of states.
Counters
module type Counter = sig ... endCreates a counter that is shared among all projects, but which is marshalling-compliant.
Generic functor to hashcons an arbitrary type
module type Hashcons = sig ... endOutput signature of Hashcons below.
Hashconsed version of an arbitrary datatype
Useful operations
apply_once name dep f returns a closure applying f only once and the state internally used. name and dep are respectively the name and the dependencies of the local state created by this function. Should be used partially applied. If f raises an exception, then it is considered as not applied.
module States : sig ... end