Serialize.Cache
Module to cache the data for incremental analaysis during a run, before it is stored to disk, as well as for the server mode
type t = {
mutable solver_data : Stdlib.Obj.t option;
mutable analysis_data : Stdlib.Obj.t option;
mutable version_data : MaxIdUtil.max_ids option;
mutable cil_file : GoblintCil.file option;
}
val data : t Batteries.ref
type _ data_query =
| SolverData : _ data_query
| CilFile : GoblintCil.file data_query
| VersionData : MaxIdUtil.max_ids data_query
| AnalysisData : _ data_query
GADT that may be used to query data from and pass data to the cache.
val update_data : 'a. 'a data_query -> 'a -> unit
Update the incremental data in the in-memory cache
val reset_data : 'a. 'a data_query -> unit
Reset some incremental data in the in-memory cache to None
val get_opt_data : 'a. 'a data_query -> 'a option
Get incremental data from the in-memory cache wrapped in an optional. To populate the in-memory cache with data, call load_data
first.
val get_data : 'a. 'a data_query -> 'a
Get incremental data from the in-memory cache. Same as get_opt_data
, except not yielding an optional and failing when the requested data is not present.