Module Dynamic

module Dynamic: sig .. end

Value accesses through dynamic typing.


Registration

val register : ?comment:string ->
plugin:string -> string -> 'a Type.t -> journalize:bool -> 'a -> 'a

register ~plugin name ty v registers v with the name name, the type ty and the plug-in plugin.

Access

exception Incompatible_type of string
exception Unbound_value of string
exception Unloadable of string

Exception that a plug-in can throw if it detects that it can't be loaded. It is caught by Dynamic.load_module and Dynamic.load_script

val get : plugin:string -> string -> 'a Type.t -> 'a

get ~plugin name ty returns the value registered with the name name, the type ty and the plug-in plugin. This plug-in will be loaded if required.

val iter : (string -> 'a Type.t -> 'a -> unit) -> unit
val iter_comment : (string -> string -> unit) -> unit

Dedicated access to plug-in parameters

module Parameter: sig .. end

Module to use for accessing parameters of plug-ins.

Dynamically Loaded Modules

val load_packages : string list -> unit

loads a list of Findlib packages

val load_module : string -> unit

Load the module specification. See -load-module option.

val set_module_load_path : string list -> unit

Sets the load path for modules in FRAMAC_PLUGIN, prepending it with path. Does not load any plugins. Must be invoked only once from boot during extending stage.

val is_loaded : string -> bool

is_loaded package returns true iff package has already been loaded.