Module B00_ocaml.Lib

Library information and lookup.

An OCaml library is a directory with interfaces and object files. OCaml libraries are resolved by name using a Resolver.

Library names

module Name : sig ... end

Library names.


type t

The type for libraries.

val v : name:Name.t -> requires:Name.t list -> dir:B0_std.Fpath.t -> cmis:B0_std.Fpath.t list -> cmxs:B0_std.Fpath.t list -> cma:B0_std.Fpath.t option -> cmxa:B0_std.Fpath.t option -> c_archive:B0_std.Fpath.t option -> c_stubs:B0_std.Fpath.t list -> js_stubs:B0_std.Fpath.t list -> t

v ~name ~cmis ~cmxs ~cma ~cmxa is a library named name which requires libraries requires, and library directory dir, has cmis cmi files, cmxs cmx files, cma bytecode archive, cmxa native code archive and it's companion c_archive as well as c_stubs archives. Theoretically all files should be in dir.

val of_dir : B00.Memo.t -> clib_ext:B0_std.Fpath.ext -> name:Name.t -> requires:Name.t list -> dir:B0_std.Fpath.t -> archive:string option -> (t, string) Stdlib.result B0_std.Fut.t

of_dir m ~clib_ext ~name ~requires ~dir ~archive is a library named name which requires libraries requires, with library directory dir and library archive name archive (without extension and if any). This looks up all files other files in dir and makes them ready in m. clib_ext is the platform specific extension for C libraries.

Note. If dir doesn't follow the one library per directory convention this over-approximate cmis, cmxs and c_stubs files.

val name : t -> Name.t

name l is the library name of l.

val requires : t -> Name.t list

requires l are the libraries that are required by l.

val dir : t -> B0_std.Fpath.t

dir l is l's library directory.

val cmis : t -> B0_std.Fpath.t list

cmis l is the list of cmis for the library.

val cmxs : t -> B0_std.Fpath.t list

cmxs l is the list of cmxs for the library.

val cma : t -> B0_std.Fpath.t option

cma l is the library's cma file (if any).

val cmxa : t -> B0_std.Fpath.t option

cmxa l is the library's cmxa file (if any).

val c_archive : t -> B0_std.Fpath.t option

c_archive l is the library's cmxa's companion C archive. Must exist if the cmxa exists and, since 4.12 if cmxa is not empty.

val c_stubs : t -> B0_std.Fpath.t list

c_stubs l is the library's C stubs archives (if any).

val js_stubs : t -> B0_std.Fpath.t list

js_stubs l is the library's JavaScript stubs (if any).

module Resolver : sig ... end

Library resolvers.