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.