unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Rob Browning <rlb@defaultvalue.org>
Cc: ttn@glug.org, guile-devel@gnu.org, guile-user@gnu.org
Subject: Re: [d.love@dl.ac.uk: dynamic loading of native code modules]
Date: Sat, 13 Apr 2002 19:58:31 -0500	[thread overview]
Message-ID: <a9akcf$db4$2@main.gmane.org> (raw)
In-Reply-To: <m3n0w8ugmp.fsf@laruns.ossau.uklinux.net> (Neil Jerram's message of "13 Apr 2002 09:50:22 +0100")

Neil Jerram <neil@ossau.uklinux.net> writes:

> The description you gave of the Emacs patch glossed over one detail -
> what's the name of the function that gets called to initialize the
> dynamically loaded module?  I think it would be acceptable to derive
> it algorithmically from the module name (and obviously impose this as
> a requirement on the module coder).

Some of the higher level abstractions and flexibility sound good, but
I'm a little concerned about automatically generating the init
function from the module name -- this makes it hard (as I mentioned
before) to create modules that share the same C lib or modules that
require multiple C libs.  It may also make it difficult to easily wrap
up existing libs without having to create unnecessary "dummy stub"
libs, and feels a little like overspecification.

Of course this would only be a problem if it was the *only* interface.
If we also provided a flexible enough low-level interface for loading
shared libs, then having a more automagic, optional higher-level
interface might be fine.

> If we can agree this, it would be good to do it in 1.6, for
> continuity.  (Of interface, I mean; module coding would change
> slightly, as just stated.)

My current plan is for 1.8 to have versioned scheme level modules
(i.e. use-modules modules), and some workaround that allows for
versioned dynamic-link'ing (in part to avoid libtool problems with
installations of multiple guile versions), so I don't think there's
much chance for seamless continuity between 1.6 and 1.8 anyway.  Given
that, I don't think it's worth holding up 1.6 for this, and in truth,
my personal feeling (given my experiences with the module system and
shared libraries while working on gnucash, g-wrap, mainstream guile,
and other projects) is that the current 1.6 system is a lot easier to
follow.  In the normal case, by looking at one .scm file, you know
exactly what's going on, and what's part of a module's interface.

  (define-module (foo bar))
  (dynamic-call "my_init_func" (dynamic-link "libmylib"))
  (export func1)
  (export func2)
  ...

(load-extension might also (should?) be used here).  To me this code
is *really* clear, but other people's mileage may vary :>

> More generally, looking back through mailing list history, it's
> actually astonishing how much support for various stuff that Guile
> has _lost_ along the way.  My overall impression is that we
> (collectively) have been too glib about this.

I guess I'd have to disagree here too.  Most of the stuff that I can
think of that we've "lost" actually makes guile cleaner and less
confusing to me, and the stuff that we've added (or are adding) makes
guile much more useful.  As examples of things we've done or planned
since 1.4:

  drop gh_* -> less confusing

  add documentation for scm_* -> more useful.

  add goops -> *much* more useful

  adding GMP -> (for bignums -- on the way to rationals?) more useful

  fixing libtool versioning issues -> more useful (more packagable)

  planning to drop certain macro "flexibility" so we can support a
  clear evaluation model and perhaps eventually support compilation ->
  more useful.

etc., but do you have particular things you think we've dropped that
have actually hurt substantially?

Overall I think guile may have (had?) a bit of excess baggage, and
I've felt like there's likely to be a decent amount of pruning,
pruning which should make guile stronger, before it becomes the
extension languge (and perhaps often scheme implementation) of choice
if it *is* going to.  I guess rightly or wrongly I've been considering
1.6 and 1.8 to be fairly serious "housecleaning" releases...

Of course - IMO, 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-14  0:58 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 [this message]
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
     [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='a9akcf$db4$2@main.gmane.org' \
    --to=rlb@defaultvalue.org \
    --cc=guile-devel@gnu.org \
    --cc=guile-user@gnu.org \
    --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).