val log_lib : 'a Lplib.Base.outfmt -> 'a
module LibMap : sig ... end

Representation of the mapping from module paths to files.

val lib_root : string option ref

lib_root stores the result of the "--lib-root" flag when given.

val lib_mappings : LibMap.t Timed.ref

lib_mappings stores the specified mappings of library paths.

val iter : ( Path.t -> string -> unit ) -> unit

iter f iterates f on current mappings.

val set_lib_root : string option -> unit

set_lib_root dir sets the library root to directory dir. The following directories are set sequentially, such that the active one is the last valid one

  • /usr/local/lib/lambdapi/lib_root/
  • $OPAM_SWITCH_PREFIX/lib/lambdapi/lib_root
  • $LAMBDAPI_LIB_ROOT/lib/lambdapi/lib_root
  • the directory given as parameter of the --lib-root command line argument. If the directory given on command line is not a valid existing directory, the program terminates with a graceful error message.
val add_mapping : (Path.t * string) -> unit

add_mapping (mn, fn) adds a new mapping from the module name mn to the file name fn if mn is not already mapped and fn is a valid directory. In case of failure the program terminates and a graceful error message is displayed.

val file_of_path : Path.t -> string

file_of_path mp converts module path mp into the corresponding "file path" (with no attached extension). It is assumed that lib_root has been set, possibly with set_lib_root.

val lp_src_extension : string

lp_src_extension is the expected extension for source files.

val dk_src_extension : string

dk_src_extension is the extension for dk source files.

val is_valid_src_extension : string -> bool

is_valid_src_extension s returns true iff s ends with lp_src_extension or dk_src_extension.

val obj_extension : string

obj_extension is the expected extension for binary (object) files.

val valid_extensions : string list

valids_extensions is the list of valid file extensions.

val path_of_file : ( string -> string ) -> string -> Path.t

path_of_file escape fname computes the module path that corresponds to the filename fname. escape converts irregular path elements into escaped identifiers if needed.

  • raises [Fatal]

    if fname doesn't have a valid extension.

val install_path : string -> string

install_path fname prefixes the filename fname by the path to the library root.