unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Andy Wingo <wingo@pobox.com>
Subject: Re: First look at Guile Std Library available
Date: Fri, 16 Jan 2004 22:17:54 +0200	[thread overview]
Message-ID: <20040116201753.GA730@lark> (raw)
In-Reply-To: <3FF8E7FC.20004@vzavenue.net>

Hi Richard,

Sorry I didn't respond when the thread was fresh, I was on holiday...

On Sun, 04 Jan 2004, Richard Todd wrote:

> Paul Jarc wrote:
> >As long as the code exists, I don't think there's much benefit in
> >aggregating it.  It just has to be easy for users to find.
> 
> Ok, I am definitely starting to feel like a stranger in a strange land, 
> here.

It's weird, no? I too am a newcomer to the scheme world (I'm a GNOME
hacker, really) and I'm baffled by the response. It's just so damn easy
to make a perl module, pop it up on CPAN, and have it available to
anyone with the base CPAN installation. It is one of the key factors in
perl's ascendence as a scripting language. I agree that it's desirable
for Guile, especially once you start to write apps in Guile itself. And
what a waste to write something and have it languish on a forgotten web
page.

So I share your spirit. I do have a concern about versioning, however.
Versioning the whole thing will be unwieldy as the package expands in
size. Then we have the problem of guile modules that link to C libraries
that may or may not be available, or whose available versions correspond
to only one module interface. It becomes clear that a provide/require
interface is needed as well, although it might not be implemented by
SLIB.

 [ SLIB's virtue and weakness is that it is a cathedral product. Virtue,
   because you know it's well designed and stable, but weakness because
   you or I don't feel attracted to contributing, especially
   contributing modules whose code is useful but maybe weaker than
   Jaffer's. ]

OK, punt the question about C library-backed guile modules for another
day. But for changing interfaces in scheme modules, what is needed is a
versioned `use-modules', maybe like (use-modules (math primes 1)).

Actually now that I think about it you can play nifty tricks with this.
Maybe you have a 1.2 and a 1.1 series of your primes module. So you
have

(define-module (math primes 1 1))
... code ...

(define-module (math primes 1 2))
... interface is different ...

Then you can have

(define-module (math primes 1))
;; re-export the interface of the latest version in the 1.x series
(module-use! (current-module) (resolve-interface '(math primes 1 2)))

(define-module (math primes))
;; The 1.x series is the latest one
(module-use! (current-module) (resolve-interface '(math primes 1)))

So, use (math primes) while you're developing, but then before you
release change the use-modules statement on your code to reflect the
version you are using. It's kindof like linking, I guess. Still a PITA
though.

My concern is that we don't fall in the pit of having to change module
names (think (use (gfxlib sdl1.3debian+4)) or something). Maybe my
concern is overblown, like this isn't such a big deal in interpreted
languages or something.

So thoughts about versioning in general, and this method in particular?

Regards,

wingo.


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


  parent reply	other threads:[~2004-01-16 20:17 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-01-02  5:21 First look at Guile Std Library available Richard Todd
2004-01-02  9:29 ` Dale Mellor
2004-01-03  1:03   ` Richard Todd
2004-01-03  2:25     ` Andreas Rottmann
2004-01-03 15:00       ` Dale Mellor
2004-01-03 14:36     ` Dale Mellor
2004-01-03 22:42       ` Richard Todd
2004-01-03 16:38 ` Thien-Thi Nguyen
2004-01-03 16:48   ` Nic Ferrier
2004-01-03 22:18     ` Richard Todd
2004-01-04  1:49       ` Thien-Thi Nguyen
2004-01-04  3:50         ` Richard Todd
2004-01-04 12:59           ` Thien-Thi Nguyen
     [not found]             ` <16376.5782.10995.206284@l.a>
2004-01-04 14:17               ` Dale Mellor
2004-01-04 21:51             ` Richard Todd
2004-01-05  0:30               ` Andreas Rottmann
2004-01-05  5:00                 ` Richard Todd
2004-01-05 16:03                   ` Robert Uhl
2004-01-05 20:01                     ` Richard Todd
2004-01-06  1:36                       ` Robert Uhl
2004-01-06 18:41                         ` number->string radix patch (Was Re: First look at Guile Std Library available) Richard Todd
2004-01-07  4:04                           ` Robert Uhl
2004-01-07  5:26                             ` Richard Todd
2004-01-07 20:54                               ` Robert Uhl
2004-01-08  7:11                                 ` I get unknown immediate error in guile 1.7 Roland Orre
2004-01-08 17:14                                   ` Roland Orre
2004-01-10 20:17                                     ` Kevin Ryde
2004-05-10 20:34                           ` number->string radix patch Marius Vollmer
2004-05-11  3:16                             ` Richard Todd
2004-05-11  3:51                             ` Keith Wright
2004-05-27 21:56                               ` Kevin Ryde
2004-06-10 16:35                                 ` Marius Vollmer
2004-06-10 16:34                               ` Marius Vollmer
2004-05-11  5:23                             ` Richard Todd
2004-05-27 21:54                               ` Kevin Ryde
2004-06-10 16:47                               ` Marius Vollmer
2004-06-11  1:40                                 ` Kevin Ryde
2004-01-05 10:08                 ` First look at Guile Std Library available Dale Mellor
2004-01-05  3:39               ` Paul Jarc
2004-01-05  4:28                 ` Richard Todd
2004-01-05  5:19                   ` Paul Jarc
2004-01-06 22:25                   ` Ludovic Courtès
2004-01-06 23:53                     ` Richard Todd
2004-01-16 20:17                   ` Andy Wingo [this message]
2004-01-05 14:00               ` Thien-Thi Nguyen
2004-01-05 20:32                 ` Richard Todd
2004-01-05 20:59                   ` Dale P. Smith
2004-01-06 16:54                   ` Thien-Thi Nguyen
2004-01-06 20:32                     ` Richard Todd
2004-01-03 18:19   ` Clinton Ebadi
2004-01-03 20:12     ` Thien-Thi Nguyen
2004-01-04  2:02     ` Richard Todd
2004-01-06 20:42       ` Richard Todd
2004-01-06 21:20         ` Paul Jarc
2004-01-03 22:52   ` Richard Todd
2004-01-04  1:53     ` Thien-Thi Nguyen
2004-01-04 20:34 ` Arno Peters
2004-01-05 20:12   ` Richard Todd

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=20040116201753.GA730@lark \
    --to=wingo@pobox.com \
    /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).