guile-user
[Top][All Lists]
Advanced

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

Re: Managing Guile and extensions versions


From: Vorfeed Canal
Subject: Re: Managing Guile and extensions versions
Date: Tue, 11 Oct 2005 14:20:50 +0400

On 10/9/05, Kevin Ryde <address@hidden> wrote:
> Vorfeed Canal <address@hidden> writes:
> >
> >> GUILE=/myexperiments/guile/bin/guile \
> >> GUILE_CONFIG=/myexperiments/guile/bin/guile-config \
> >> GUILE_TOOLS=/myexperiments/guile/bin/guile-tools \
>
> I would set the PATH, this probably works though.

This is how it should work. I used GUILE/GUILE_CONFIG/GUILE_TOOLS and
not path since the next question will be "now what I need to do to
install guile 1.8.1 as /usr/bin/guile-1.8.1 and guile 1.8.2 as
/usr/bin/guile-1.8.2" (perl/php/python/ruby/tcl style).

The question is HOW IT SHOULD WORK! Where configure.ac/Makefile.am
should put libmysuperextension.la (+ .so, etc) file ? WHAT should I
write there ?

Can you show minimal GUILE extension layout ? Something trivial:
export one function uuid_generate_random from libuuid to scheme level.

> > $ /myexperiments/guile/bin/guile -c '(use myextension modulename) ...'
>
> The short answer is: nothing special.
>
Huh ? How guile will find my library then ?

Or do you mean I should duplicate all this information by hand for
each and every extension and THAT is called "nothing special" ?

> To run guile from a non-default location (anywhere except /usr I
> think), I believe you need to put the new libdir into
> LTDL_LIBRARY_PATH.  This is so guile can find its own C code modules.
> Having set that it will find extensions like yours too.
>
Yeah, it's even written in INSTALL file - but all this will work only
if I'll create my extension "in the right way", right ? If this "right
way" DOES exist then why existing extensions (like
guile-gnome-platform, Gnome-PG and so on) are not using this
mechanism. If this "right way" DOES NOT EXIST then why it does not
exist ?

> The alternative, as I said, is to have your scm know the libdir you
> were configured with.  This has the advantage of working if the user
> installs your code to a different prefix than guile.  (Which may be
> unlikely, but is quite possible.)
>
I can embed thousand and one hacks in my .scm file, true. This is NOT
what I want. I want simple solution - I've tried to find it in sources
of existing extensions but was unable to :-(

> (Indicentally, I think guile should know its own libdir and know to
> look there.  But a non-standard location is just that,
> ie. non-standard, so it's not totally unreasonable to have to tell the
> linking process about it.)
>
This is EXACTLY the problem: no matter what and how GUILE knows about
exactly two places: /usr/lib and /lib. No matter where it installed.

INSTALL file explains how this information is supposed to be delivered
to libltdl (with LD_LIBRARY_PATH). No information about how this
information is supposed to be found by configure.ac/Makefile.am in
extension. Neither in documentation of guile nor in code of existing
extensions.

IMNSHO this is insane:

  LD_LIBRARY_PATH=/opt/guile/lib \
    PATH=/opt/guile/bin:"${PATH}" \
      guile --version

But ok - at least it's documented. But what to do with extensions ?
WHAT is proposed solution ? WHEN this solution will be used by
real-life extensions like guile-gnome-platform ?




reply via email to

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