The type for build operation caches.
val create :
?hash_fun:(module B0_std.Hash.T) -> B00.File_cache.t -> t
create ~clock ~hash_fun c is an operation cache with
val set_op_hash :
t -> B00.Op.t -> (unit, string) Stdlib.result
set_op_hash t o hashes the operation
o and stores the result
B00.Op.set_hash. Errors if an input file of the
operation can't be hashed.
val revive :
B00.Op.t -> (B0_std.Fpath.t list option, string) Stdlib.result
revive c o tries to revive operation
o from the file cache
using the key
Op.hash o. In particular this:
o's execution information using the metadata hunk of the key. For example for spawn operations this also recovers the exit status code and standard output redirection contents into
The semantics of the result is like
B00.File_cache.revive; in particular in case of
Ok None the key
nothing was revived.
val add :
t -> B00.Op.t -> (bool, string) Stdlib.result
add c o adds operation
o to the cache. This associates the
Op.writes o of
o to the key
Op.hash o and stores execution
o in the key's metadata hunk. The semantics of
the result is like
B00.File_cache.add; in particular in case of
Ok false it means some file in the set of writes do not exist
and is likely an error.
val hash_fun :
t -> (module B0_std.Hash.T)
hash_fun c is the hash function used by the operation cache.
val file_hashes :
t -> B0_std.Hash.t B0_std.Fpath.Map.t
file_hashes c is a map of the files that were hashed.
val file_hash_dur :
t -> B0_std.Time.span
file_hash_dur c is the time spent hashing files.