Module Memo.Log

B0_memo log.

A B0_memo log has all the build operations, the hashed file paths and a few global timings.


type t

The type for B0_memo logs.

val of_memo : B0_memo.t -> t

of_memo m is a log for memo m.

val hash_fun : t -> string

hash_fun is the identifier of the hash function that was used.

val file_hashes : t -> B0_std.Hash.t B0_std.Fpath.Map.t

file_hashes l has all the files that were hashed through the memo.

val hash_dur : t -> B0_std.Mtime.Span.t

hash_dur l is the time span spent hashing.

val total_dur : t -> B0_std.Mtime.Span.t

total_dur l is the time spanning from B0_memo.make to of_memo.

val cpu_dur : t -> B0_std.Os.Cpu.Time.Span.t

cpu_dur l is the CPU time spanning from B0_memo.make to of_memo.

val jobs : t -> int

jobs l is the maximal number of concurent spawns given to the build operation executor.

val ops : t -> B0_zero.Op.t list

ops l are the operations of the log.


val bincode : t B0_bincode.t

bincode is a binary codec for logs.

val write : B0_std.Fpath.t -> t -> (unit, string) Stdlib.result

write f l writes log l to file f.

val read : B0_std.Fpath.t -> (t, string) Stdlib.result

read f read a log from file f.

Log formatters

val pp_stats : hashed_size:bool -> Op.query -> t B0_std.Fmt.t

pp_stats sel formats statistics stored in the log using query to select operations that are part of the statistics. If hashed_size the sum of the size of the files in file_hashes is computed (this accesses the file system in a non-fatal way in case of errors).

type out_format = [
  1. | `Hashed_files
  2. | `Op_hashes
  3. | `Ops
  4. | `Path
  5. | `Stats
  6. | `Root_hashed_files
  7. | `Trace_event

The type for output format.

val out : Stdlib.Format.formatter -> out_format -> output_format -> Op.query -> path:B0_std.Fpath.t -> t -> unit

out formats a log on the given formatter. path is used when `Path is requested.

Command line interface

val out_format_cli : ?docs:string -> unit -> out_format Cmdliner.Term.t

out_format_cli ~docs () are mutually exclusive options to specify alternate output formats. docs is the manual section in which options are documented, defaults to s_output_format_options