unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Rob Browning <rlb@defaultvalue.org>
Cc: ttn@glug.org, a.rottmann@gmx.at, mvo@zagadka.ping.de,
	neil@ossau.uklinux.net, guile-devel@gnu.org, guile-user@gnu.org
Subject: Re: [d.love@dl.ac.uk: dynamic loading of native code modules]
Date: Wed, 24 Apr 2002 10:28:14 -0500	[thread overview]
Message-ID: <aa6j43$ujk$2@main.gmane.org> (raw)
In-Reply-To: <20020424145130.GC17392@www> (rm@fabula.de's message of "Wed, 24 Apr 2002 16:51:30 +0200")

rm@fabula.de writes:

> I'd say "follow the masses". What  do applications like Apache, Perl,
> Python etc. do? They all come with their 'private' locations for
> application specific libraries (let's call them plug-ins, since this
> seems to describe their function).
> Why is manipulation of an _applications_ LD_LIBRARY_PATH an un-
> acceptable behaviour (only applications exec'ed by guile would 
> notice this, anyway) ?

Aside from hearing people claim that "it's for user use only", I think
one of the primary issues was with whether or not you put the
additions at the beginning or the end -- i.e. do you allow the user to
override your value for debugging purposes, etc?  Another complaint if
I recall correctly is that if you're inserting directories that aren't
very *specific* you can cause other unwanted libs to be pulled in.
i.e. inserting /usr/local/lib somewhere might be *bad*, but if we were
only inserting /usr/lib/guile/1.8/ then that concern would be somewhat
alleviated.

One other concern would be what to do about add-ons -- i.e. you'd have
to be careful to work out a strategy whereby things like guile-www,
guile-pg, etc would have a place to put their libs that guile could
find.  Further, what if guile ships with a version of something like
guile-pg built in, but now then user wants to use a new version of
guile-pg.  If we aren't careful, i.e. if we just append
/usr/lib/guile/1.8 to the front of the LD_LIBRARY_PATH to be safe,
we've now prevented the user from loading their newer version unless
they install it in a way that clobbers the one inside the guile
install dir, a no-no as far as most distributions are concerned.

I can't recall off the top of my head if there are any stronger
arguments against it.

>> Also, you do have to worry about distribution packaging systems --
>> make sure that everyone's going to be ok, inter-package
>> dependency-wise with us placing libs in non-standard locations.
>
> Again, it doesn't seem to be a problem in other languages that support
> FFI. One _major_ benefit would be the possibility to have multiple versions
> of guile not interfere with each other. As an example:
>  i currently have both /usr/lib/python1.5, /usr/lib/python2.0 and
>  /usr/lib/python2.1 on my box. Trying to do the same with guile turned
>  out to be rather complex.

Guile has planned to allow users to link directly against guile's
internal libs, i.e. the user is supposed to compile an app and link
against -llibguile-srfi-srfi-4 if they need that functionality[1].  I
was under the (possibly mistaken) impression that python and perl
didn't intend to support that, and if not, that affects how much
flexibility you have.  [1] i.e. other apps are supposed to be able to
link appropriately and then call scm_make_u8vector directly.  Bear in
mind that allowing direct linking also means that you have to fully
version all your shared libs in the traditional manner.  This is
complex, but does have a number of benefits, including being well
understood on the OS side and allowing, if the distributions packaging
guile handle things right, easy upgrades of guile independent of all
the apps compiled against guile and it's various shared libs.

That said, I totally agree that when we sit down to work on versioning
scheme-level "use-modules modules", and on a better solution to the
current situation wrt lt_dlopen and versioned shared libs, we should
survey what the other languages are doing as part of the process.

It may well be that the subdirectory approach is suitable, and in fact
its one I originally leaned toward, but I was shifted away after
talking to Marius about direct linking and realizing that if we were
going to properly version all our shared libs to accmodate  etc.

-- 
Rob Browning
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
Previously @cs.utexas.edu
GPG=1C58 8B2C FB5E 3F64 EA5C  64AE 78FE E5FE F0CB A0AD

_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-user


  parent reply	other threads:[~2002-04-24 15:28 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <E16vpWV-0001wJ-00@giblet>
2002-04-13  8:50 ` [d.love@dl.ac.uk: dynamic loading of native code modules] Neil Jerram
2002-04-14  0:34 ` Rob Browning
     [not found] ` <m3n0w8ugmp.fsf@laruns.ossau.uklinux.net>
2002-04-14  0:58   ` Rob Browning
2002-04-14 21:30   ` Marius Vollmer
     [not found]   ` <874rifqeo8.fsf@raven.i.defaultvalue.org>
2002-04-14 22:22     ` Neil Jerram
     [not found]     ` <m3bsclsyxn.fsf@laruns.ossau.uklinux.net>
2002-04-15  4:21       ` Rob Browning
2002-04-15 12:15       ` Marius Vollmer
     [not found]       ` <87lmbpiocf.fsf@raven.i.defaultvalue.org>
2002-04-15 13:27         ` "byte compilers, was " Bill Schottstaedt
2002-04-24  7:34           ` Thien-Thi Nguyen
2002-04-16 20:23         ` Neil Jerram
     [not found]         ` <m3sn5vpf43.fsf@laruns.ossau.uklinux.net>
2002-04-17  5:25           ` Rob Browning
2002-04-20  8:14           ` Thien-Thi Nguyen
     [not found]           ` <E16yq0k-0003ji-00@giblet>
2002-04-20 11:07             ` Neil Jerram
     [not found]       ` <873cxxkvj8.fsf@zagadka.ping.de>
2002-04-16 20:24         ` Neil Jerram
     [not found]         ` <m3n0w3pf1n.fsf@laruns.ossau.uklinux.net>
2002-04-17  0:53           ` NIIBE Yutaka
2002-04-17  5:36           ` Rob Browning
     [not found]           ` <874riahonj.fsf@raven.i.defaultvalue.org>
2002-04-17  5:43             ` Rob Browning
2002-04-20  7:53             ` Thien-Thi Nguyen
     [not found]             ` <E16ypgs-0003jQ-00@giblet>
2002-04-21 15:20               ` Rob Browning
     [not found]               ` <87ofgdqdr9.fsf@raven.i.defaultvalue.org>
2002-04-21 15:51                 ` Robert A. Uhl
     [not found]                 ` <20020421095106.A31437@4dv.net>
2002-04-21 16:27                   ` Rob Browning
2002-05-14  8:53                 ` Thien-Thi Nguyen
2002-04-23 21:19             ` news
     [not found]           ` <200204170053.g3H0rX008200@mule.m17n.org>
2002-04-20  7:57             ` Thien-Thi Nguyen
     [not found]   ` <87ads6nf1v.fsf@zagadka.ping.de>
2002-04-15 17:58     ` Andreas Rottmann
     [not found]     ` <87it6s7sjz.fsf@alice.rhinosaur.lan>
2002-04-15 19:06       ` Marius Vollmer
2002-04-24  8:00       ` Thien-Thi Nguyen
     [not found]       ` <E170Hh6-0007Y8-00@giblet>
2002-04-24 14:33         ` Rob Browning
     [not found]         ` <87662hkvya.fsf@raven.i.defaultvalue.org>
2002-04-24 14:51           ` rm
     [not found]           ` <20020424145130.GC17392@www>
2002-04-24 15:14             ` Andreas Rottmann
2002-04-24 15:28             ` Rob Browning [this message]
     [not found]             ` <87y9fd5dsj.fsf@alice.rhinosaur.lan>
2002-04-24 15:48               ` Rob Browning
     [not found]               ` <87vgahjdwc.fsf@raven.i.defaultvalue.org>
2002-04-24 16:15                 ` Bill Gribble
     [not found]                 ` <1019664949.936.80.camel@flophouse>
2002-04-24 16:24                   ` Rob Browning
2002-04-24 18:10                   ` Andreas Rottmann
     [not found]                   ` <87ofg955n8.fsf@alice.rhinosaur.lan>
2002-04-24 20:36                     ` Rob Browning
2002-04-25  2:05                       ` Joshua Judson Rosen
     [not found]                       ` <20020425020550.GL29646@linger.twisted-muse.org>
2002-04-25  3:03                         ` Rob Browning
2002-04-24 18:06                 ` Andreas Rottmann
     [not found]                 ` <87sn5l55us.fsf@alice.rhinosaur.lan>
2002-04-24 20:40                   ` Rob Browning
     [not found]                   ` <87sn5khlub.fsf@raven.i.defaultvalue.org>
2002-04-24 20:53                     ` Andreas Rottmann
     [not found]                     ` <0204291926190H.10649@locke.free-expression.org>
2002-04-30  1:35                       ` Thien-Thi Nguyen
     [not found]                       ` <E172MY6-0002fd-00@giblet>
2002-04-30  2:33                         ` Lynn Winebarger
2002-05-04  0:19                           ` Thien-Thi Nguyen
     [not found]             ` <871yd5ktf5.fsf@raven.i.defaultvalue.org>
2002-05-15  0:19               ` Thien-Thi Nguyen
2002-04-24 18:34           ` Thien-Thi Nguyen
     [not found]           ` <E170Rb4-0008B0-00@giblet>
2002-04-24 18:58             ` Rob Browning
     [not found]             ` <873cxkj54j.fsf@raven.i.defaultvalue.org>
2002-04-25  5:32               ` Thien-Thi Nguyen
2002-05-01  5:00           ` Lynn Winebarger
     [not found]           ` <0205010000300Q.10649@locke.free-expression.org>
2002-05-01 13:50             ` Rob Browning
2002-04-24  0:52     ` Thien-Thi Nguyen
2002-04-20  9:06   ` Thien-Thi Nguyen
     [not found]   ` <E16yqp7-0003n6-00@giblet>
     [not found]     ` <m3elhasjez.fsf@laruns.ossau.uklinux.net>
2002-04-20 12:44       ` Thien-Thi Nguyen
2002-04-24  0:09   ` Thien-Thi Nguyen
     [not found] ` <878z7rqfrg.fsf@raven.i.defaultvalue.org>
2002-04-14  2:55   ` Rob Browning
2002-04-24  0:24   ` Thien-Thi Nguyen
     [not found]   ` <E170AaI-00070x-00@giblet>
2002-04-24  5:25     ` Rob Browning
     [not found]     ` <87znztllbx.fsf@raven.i.defaultvalue.org>
2002-05-14 10:57       ` Thien-Thi Nguyen
     [not found]       ` <E177a03-0000H2-00@giblet>
2002-05-14 16:11         ` Bill Gribble
     [not found]         ` <1021392674.802.71.camel@flophouse>
2002-05-14 20:54           ` Thien-Thi Nguyen
2002-04-12  1:06 Thien-Thi Nguyen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='aa6j43$ujk$2@main.gmane.org' \
    --to=rlb@defaultvalue.org \
    --cc=a.rottmann@gmx.at \
    --cc=guile-devel@gnu.org \
    --cc=guile-user@gnu.org \
    --cc=mvo@zagadka.ping.de \
    --cc=neil@ossau.uklinux.net \
    --cc=ttn@glug.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).