Some questions about the module system

Jost Boekemeier (jostobfe@calvados.zrz.TU-Berlin.DE)
Fri, 14 Aug 1998 21:57:58 +0200

Hi,

is there any documentation about the implementation of the guile module
system available?

* How are new symbols interned in the module's obarray? -- scm_intern()
only interns in scm_symhash.

The only place where this may happen is in scm_lookupcar1:

top_thunk = SCM_CAR(env); /* env now refers to a top level env thunk */
env = SCM_CDR (env);
}
else
top_thunk = SCM_BOOL_F;
vcell = scm_sym2vcell (var, top_thunk, SCM_BOOL_F);

Where top_thunk is a closure set with "set-module-eval-closure!"

Why so complicated?

* What does this comment:

;;; !!! warning: The interface to lazy binder procedures is going
;;; to be changed in an incompatible way to permit all the basic
;;; module ops to be virtualized."

mean? Do you have a solution how to "pre-compile" a guile module and
then load the compiled code into the application's address space?

Jost