module Consistbl: sig .. end
Consistency tables: for checking consistency of module CRCs
type t
val create : unit -> t
val clear : t -> unit
val check : t -> string -> Digest.t -> string -> unit
check tbl name crc source
checks consistency of (name, crc) with infos previously
stored in tbl. If no CRC was previously associated with
name, record (name, crc) in tbl.
source is the name of the file from which the information
comes from. This is used for error reporting.
val check_noadd : t -> string -> Digest.t -> string -> unit
Same as check, but raise Not_available if no CRC was previously
associated with name.
val set : t -> string -> Digest.t -> string -> unit
set tbl name crc source forcefully associates name with
crc in tbl, even if name already had a different CRC
associated with name in tbl.
val source : t -> string -> string
source tbl name returns the file name associated with name
if the latter has an associated CRC in tbl.
Raise Not_found otherwise.
: t -> (string * Digest.t) list
Return all bindings (name, crc) contained in the given
table.
val filter : (string -> bool) -> t -> unit
filter pred tbl removes from tbl table all (name, CRC) pairs
such that pred name is false.
exception Inconsistency of string * string * string
Raised by check when a CRC mismatch is detected.
First string is the name of the compilation unit.
Second string is the source that caused the inconsistency.
Third string is the source that set the CRC.
exception Not_available of string
Raised by check_noadd when a name doesn't have an associated CRC.