where is gnc_module_system_init() called?

Derek Atkins warlord@MIT.EDU
11 Jun 2002 18:25:12 -0400

Michele Ravani <Michele.Ravani@swissonline.ch> writes:

> Hi
> reading the design doc in gnc-module, it is mentioned that
> gnc_module_system_init() should be called to initialize the module system.
> I've tried to find where it is called in the code, but all the locations I
> have found are in tests.

Check out src/scm/main.scm, in particular the function gnc:startup,
where it calls gnc:module-system-init (which is the g-wrapped
gnc_module_system_init() call).

> I am a bit confused, but may be I am starting to understand what Derek
> meant by 
> 'Unfortunately at this time there is no way to get a plug-in module to
> actually get loaded at runtime without modifying existing code.'
> Is it so that the module system is currently used to load modules from
> other modules needing the functionality, but there isn't a centralized
> mechanism to initialize the module system at startup and load a number of
> predifined or configured modules?

Yes.  Right now the gnucash application is "defined" by main.scm.  It
loads all the gnc-modules (by name), and their dependencies.  However,
if main.scm does not know about a file/module, and it's not a
dependency of another file/module, there is no way (currently) to get
it loaded into the system.

> If this is the case, where is the code loading the core modules, i.e. the
> ones that 'make' the application?

main.scm :)


       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
       warlord@MIT.EDU                        PGP key available