Omod_support.Pkg
Packages.
Packages represents sets of compilation objects indexed from a root Conf.libdir
.
type t = Cobj.pkg_id
The type for packages.
val of_dir : ?err:Log.t -> Omod.fpath -> t list
of_dir ~err dir
are the packages found in dir
. This is simply all the directory names inside dir
and an ocaml
package which points to ocamlc -where
. err
is used to report file system errors (defaults to Log.err
).
find_cobjs ~err ~note ~acc pkg
are the compilation objects contained in pkg pkg
added to acc
(defaults to []
). err
is used to report errors (defaults to Log.nil
).
val pp : Format.formatter -> t -> unit
pp
formats package identifiers.
val pp_name : Format.formatter -> t -> unit
pp_name
formats the name of package identifiers.
type signature = Digest.t
The type for package signatures.
signature ~err pkg
is a signature for package pkg
. This is the digest of the mtimes of all the cobjs of pkg
. err
is used to report error (defaults to Log.err
).
info ~signature ~cobjs
is information for a package.
val pp_info : Format.formatter -> info -> unit
pp_info
formats package information.
db ~err ~note ~progress ~init pkgs
is database init
(dfeaults to Map
.empty) with packages pkgs
added. Their information is computed by the function using err
to report errors (defaults to Log.err
), note
to report indexing operations (defaults to Log.nil
) and progress
to indicate if progress should be reported on note
(defaults to false
).
val db_to_name_db : db -> (t * info) Omod.Private.String.Map.t
db_to_name_db db
maps package names (rather than identifiers) to their information.
val db_to_cobj_index : db -> Cobj.Index.t
db_to_cobj_index db
is a compilatino object with the contents of the packages of db
.
The type for package database differences.
`New (pkg, sg)
, package pkg
with signature sg
is new.`Gone pkg
, package pkg
was removed.`Changed (pkg, sg)
, package pkg
changed to signature sg
.val pp_diff : diff Omod.Private.Fmt.t
pp_diff
formats package database differences.
diff db sgs
is the list of difference between db
and package signatures sgs
.