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
:
OCAMLPATH=/home/bactrian/opam/lib:/usr/lib/ocaml 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.
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 pp : t B0_std.Fmt.t
pp
formats a library name.