Module B0_ocaml.Libname

Library names.

FIXME. This did not become a reality.

Library names are dot separated segments of uncapitalized OCaml compilation unit names. Replacing the dots by the platform directory separator yields the directory of the library relative to the OCAMLPATH. Here are examples of library names and corresponding library directories for the following OCAMLPATH:


Library name       Library directory
ptime.clock.jsoo   /home/bactrian/opam/lib/ptime/clock/jsoo
re.emacs           /home/bactrian/opam/lib/re/emacs
ocamlgraph         /usr/lib/ocaml/ocamlgraph
ocaml.unix         /usr/lib/ocaml/ocaml/unix
N/A (shadowed)     /usr/lib/ocaml/re/emacs

For legacy reasons library names also correspond to ocamlfind package names.

Library names

type t

The type for library names looked up in OCAMLPATH. For legacy reasons this may also correspond to an ocamlfind package name.

val v : string -> t

v s is a library for n. Raises Invalid_argument if s is not a valid library name.

val root : t -> string

root n is the root name of n, that is the leftmost one.

val basename : t -> string

basename n is the basename of n, that is the right most one.

val undot : rep:B0_std.Char.t -> t -> string

undot ~rep n is n with . replaced by rep.

val to_archive_name : t -> string

to_archive_name n is undot ~rep:'_' n.

val of_string : string -> (t, string) Stdlib.result

of_string s is a library name from n.

val to_string : t -> string

to_string n is n as a string.

val to_fpath : t -> B0_std.Fpath.t

to_fpath n is n with dots replaced by B0_std.Fpath.dir_sep_char.

val equal : t -> t -> bool

equal n0 n1 is true iff n0 and n1 are the same library name.

val compare : t -> t -> int

compare n0 n1 is a total order on library names compatible with equal.

val pp : t B0_std.Fmt.t

pp formats a library name.

module Set : Stdlib.Set.S with type elt = t

Library name sets.

module Map : Stdlib.Map.S with type key = t

Library name maps.