guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: On the deprecated auto-loading of compiled-code modules


From: Matthias Koeppe
Subject: Re: On the deprecated auto-loading of compiled-code modules
Date: 02 May 2001 16:16:54 +0200
User-agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.6

Marius Vollmer <address@hidden> writes:

> Matthias Koeppe <address@hidden> writes:
> 
> > But I think that a real static linking method, avoiding libtool's
> > "export-dynamic" feature, should be supported.
> 
> Hmm, why do you want that?  Is libtool too much hassle?  

It's just that I was having trouble with libtool when working with
inter-library dependencies in the dynamic-library situation, which are
only supported in the CVS libtool. So I wanted a solution not
involving libtool. (But I have now realized that everything that I
need is there.)

> The problem I can see with using libtool is that it might be
> inefficient.  It will make a table of _all_ symbols for lt_dlsym while
> we want to find only a few.
> 
> > But who will call init_module_initializer?
> 
> Your `inner main' that is called by scm_boot_guile. 

Ah yes, of course.  I was simply typing too fast, sorry.  (Also thanks
to Martin Grabmueller for pointing this out.)

OK, here is my suggestion for a better deprecation-warning:

        Autoloading of compiled code modules is deprecated.  Invoke
        `dynamic-link' and `dynamic-call' directly to load and
        initialize your module, and don't use the deprecated function
        `scm_register_module_xxx'.

The C-level function `scm_register_module_xxx' (dynl.h) should be
marked as deprecated; I guess `scm_registered_modules' and
`scm_clear_registered_modules' as well.

Thanks for your help, Marius.  (I am now going add a new linking style
to SWIG, so that C-level module initialization code using
`scm_make_module' is emitted.)

-- 
Matthias Köppe -- http://www.math.uni-magdeburg.de/~mkoeppe



reply via email to

[Prev in Thread] Current Thread [Next in Thread]