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 : Stdlib.Format.formatter -> t -> unit
pp
formats package identifiers.
val pp_name : Stdlib.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 : Stdlib.Format.formatter -> info -> unit
pp_info
formats package information.
type db = info Map.t
The type for package databases. Maps package names to their information.
db ~err ~note ~progress ~init pkgs
is database init
(defaults 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
).
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 compilation 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
.