Module Library

This module provides functions to load, open and save libraries. Libraries correspond to the subclass of modules that coincide with a file on disk (the ".vo" files). Libraries on the disk comes with checksums (obtained with the Digest module), which are checked at loading time to prevent inconsistencies between files written at various dates.

type library_t

Type of libraries loaded in memory

val require_library_from_dirpath : library_t list -> unit


Require = load in the environment

module Intern : sig ... end

Intern from a .vo file located by libresolver

val intern_from_file : CUnix.physical_path -> (library_tExninfo.iexn) Stdlib.Result.t * Intern.Provenance.t
val require_library_syntax_from_dirpath : intern:Intern.t -> Names.DirPath.t Loc.located list -> library_t list
Start the compilation of a library

End the compilation of a library and save it to a ".vo" file, or a ".vos" file, depending on the todo_proofs argument.

output_native_objects: when producing vo objects, also compile the native-code version.

type 'doc todo_proofs =
| ProofsTodoNone
| ProofsTodoSomeEmpty of Future.UUIDSet.t
val save_library_to : 'document todo_proofs -> output_native_objects:bool -> Names.DirPath.t -> string -> unit
val save_library : Names.DirPath.t -> library_t

Save library to library_t format, that can be used later in require_library_syntax_from_dirpath

Interrogate the status of libraries
val library_is_loaded : Names.DirPath.t -> bool
  • Tell if a library is loaded
val loaded_libraries : unit -> Names.DirPath.t list
  • Tell which libraries are loaded
val native_name_from_filename : string -> string

Native compiler.

val indirect_accessor : Global.indirect_accessor

Opaque accessors