According to some parts of ECL manual, necessary part of the library (that has been compiled by lisp) initialisation in C program is performing its initialisation as:
ecl_init_module(NULL, init_func_for_library);
In all examples provided first parameter is NULL.
What other values can it take and to what end? Certainly the parameter itself should have some meaning.
NB. In other parts of the manual, for performing initialisation, it is recommended to use read_VV instead. What does that do?
Inspecting the source code, we can see that NULL is bound to a variable named
block; when it isNULL, a default, emptycodeblockis used instead:Code blocks look like some sort of context/environment structures:
I guess in most cases, passing
NULLis sufficient. Presumably you could callecl_init_modulewith an existing code block to share to some state with another module; without a better understanding of how the interpreter works, this is however risky.