module Dynamic:sig
..end
Value accesses through dynamic typing.
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
.
Type.AlreadyExists
if name
already exists. In other words you
cannot register a value with the same name twice.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.
Unbound_value
if the name is not registeredIncompatible_type
if the name is not registered
with a compatible typeFailure
_ in the -no-obj modeval iter : (string -> 'a Type.t -> 'a -> unit) -> unit
val iter_comment : (string -> string -> unit) -> unit
module Parameter:sig
..end
Module to use for accessing parameters of plug-ins.
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.