guile-devel
[Top][All Lists]
Advanced

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

Re: add-on lib versioning (concrete example g-wrap) -- what to do?


From: tomas
Subject: Re: add-on lib versioning (concrete example g-wrap) -- what to do?
Date: Fri, 13 Dec 2002 09:47:26 +0100
User-agent: Mutt/1.3.28i

On Thu, Dec 12, 2002 at 02:25:46PM -0600, Rob Browning wrote:
> 

[good explanation of the problem of `same' add-on lib built
against different guile versions]

OK, it's me again, the guy talking about the big Pees ;-)

> [1] The only contenders I can think ATM of are
> 
>     - put the guile version in the add-on lib name.

Hmmm. I find library names already nearly unreadable. Imagine making a
Debian package from that...

>     - use a /usr/lib/guile/VERSION/ subdir for add on libs and just
>       figure out and deal with the -L/LD_LIBRARY_PATH/rpath issues.

I'd favor this way. The advantages I see:

  - It's the thing ``the others'' do (Perl, Python, Emacs...). I'm not only
    saying that it's tried and tested, but sysadmin's expectations play a
    role here too. I'd put *any* add-on which depends on the version
    in /usr/lib/guile/VERSION/, be it an .so or an .scm or whatever.

  - Note that it'd be possible to put version independent stuff in
    /usr/lib/guile still.

Make provision for a `local' place, be it /usr/local/lib/guile/...
(preferred) or something with .../site/...

(one could consider even doing /usr/lib/guile/MAJOR/MINOR, to be able
to put major-version-dependent stuff together, but it seems a bit like
overkill. OTOH it'd be a boon for those poor guys trying to keep several
versions of guile running, e.g. for testing purposes).

>     - more radically, drop the idea that people will directly link via
>       gcc/ld against guile libs, and require some kind of run-time
>       dlopen/dlsym/function-pointer-patchup initialization.  i.e.

If the above scheme is to work, one should consider this independently,
I'd say. Fix first the requirements and see whether the tools at hand
(ld/libtool/whatnot) do the job. Develop own tools if necessary.

>         scm_make_u8_vector = scm_lt_dlsym (srfi_4_lib, "scm_make_u8_vector");
> 
>       or similar.    

I'd consider this quite attractive, from an introspection standpoint,
but... it's me again ;-)

Regars
-- tomas



reply via email to

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