This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Some questions about the module system


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