unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Neil Jerram <neil@ossau.uklinux.net>
To: Julian Graham <joolean@gmail.com>
Cc: guile-devel <guile-devel@gnu.org>
Subject: Re: r6rs libraries, round two
Date: Sun, 31 May 2009 00:22:20 +0100	[thread overview]
Message-ID: <878wkerxar.fsf@arudy.ossau.uklinux.net> (raw)
In-Reply-To: <2bc5f8210905291331u7259389et26e2ad7d88b32f46@mail.gmail.com> (Julian Graham's message of "Fri\, 29 May 2009 16\:31\:52 -0400")

Julian Graham <joolean@gmail.com> writes:

> Hi Guilers,
>
> I'd like to take another stab at getting R6RS library support in, this
> time by extending the capabilities of the module system.  Here's what
> I've got in mind to start with:
>
> 1. Add an optional `version' field to the module record type

Sounds good.

> * What's a good format here?  We could mirror the requirements of R6RS
> here (i.e., (v1 v2 ...) where vx is a whole number) or be more
> flexible.

Given that your objective is to get R6RS library support in, I'd say
just stick to the R6RS format for now.  It sounds like it will be
fairly easy to extend this in future, if we want to.

>  For example, Apache Maven (I've got Java on the brain from
> being at work) lets you specify the version of your project however
> you want, but if you follow the convention its docs set out, it can do
> things choose the "latest" version or match a version within a range.
> We could do likewise.

I can see the attraction of that, since I was experimenting two days
ago with adding the SHA-1 of the Git HEAD commit to Guile's micro
version - and it didn't work because of some restriction in
libguile/version.c (which I didn't investigate).

However, I still suggest just basic R6RS for now, because I'm sure we
could compatibly add more options later.

> 2. Add support for optional version arguments to `use-modules',
> `resolve-module', etc.
>
> * Again, do we want to adhere strictly to R6RS-format version
> references here or extend their syntax?

As above, I suggest R6RS for now.

> * Should we establish some rules for what you get when you don't
> specify a version?

Yes!  The latest available?

>  Given what we've decided about loading multiple
> versions of a library (i.e., you can't)

I didn't follow why we decided that, but it feels wrong to me.  (It
seems to me that Guile should be able to handle loading ((foo) v1) and
((foo) v2) simultaneously as easily as it could handle loading
((foo-v1)) and ((foo-v2)) simultaneously.) I guess I should look up
the previous thread, please let me know if you have a convenient
reference.

> and the existing behavior of
> the module-loading functions (you get an already-loaded module if
> one's available), conflicts seem possible:
>
> E.g., if not specifying a version equates to getting the "first
> module" in the search path matching the name, then subsequent calls to
> those functions that *do* specify a version reference may succeed or
> fail based on the result of a prior call.

Agree, and agree that this feels wrong.

Regards,
        Neil




  reply	other threads:[~2009-05-30 23:22 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-29 20:31 r6rs libraries, round two Julian Graham
2009-05-30 23:22 ` Neil Jerram [this message]
2009-05-30 23:34   ` Julian Graham
2009-06-01 19:55   ` Andy Wingo
2009-06-01 22:34     ` Ludovic Courtès
2009-06-03 18:36       ` Neil Jerram
2009-06-04  6:50         ` Ludovic Courtès
2009-06-28  0:20       ` Julian Graham
2009-06-28 13:28         ` Neil Jerram
2009-06-28 18:23           ` Julian Graham
2009-06-28 21:40         ` Andy Wingo
2009-06-29 18:01           ` Julian Graham
2009-06-29 18:26             ` Ludovic Courtès
2009-07-06 18:02           ` Julian Graham

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=878wkerxar.fsf@arudy.ossau.uklinux.net \
    --to=neil@ossau.uklinux.net \
    --cc=guile-devel@gnu.org \
    --cc=joolean@gmail.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).