Module Ecaml__.Ecaml_callback

This module is used to enforce the expected types of registered callbacks.

module Value = Ecaml__.Value0
type 'a t
val register : 'a t ‑> f:'a ‑> unit
val dispatch_function : (Ecaml__.Function_id.t ‑> Value.t array ‑> Value.t) t

dispatch_function is how Emacs calls from C to OCaml.

val end_of_module_initialization : (unit ‑> unit) t

The C code arranges to call end_of_module_initialization at the end of emacs_module_init, which is what Emacs calls to initialize an Ecaml plugin. This is after all the other top-level OCaml code has run.

val free_function : (Ecaml__.Function_id.t ‑> unit) t

free_function function_id is called by Emacs when it garbage collects the sentinel associated with the callback whose id is function_id. This callback does not have an active env, and so is not allowed to call Emacs from OCaml.

val no_active_env : (unit ‑> unit) t

no_active_env is used when the C code detects that OCaml is attempting to call an Emacs function but there is no active env. It prints a message that includes an OCaml backtrace, which may be useful in debugging.