From: Julian Graham <joolean@gmail.com>
To: Andy Wingo <wingo@pobox.com>
Cc: "Ludovic Courtès" <ludo@gnu.org>, guile-devel@gnu.org
Subject: Re: Merging Guile-R6RS-Libs in `master'
Date: Wed, 22 Apr 2009 16:22:57 -0400 [thread overview]
Message-ID: <2bc5f8210904221322w7e08ea88i340831e74d61443f@mail.gmail.com> (raw)
In-Reply-To: <m3d4b479g7.fsf@pobox.com>
Hi Andy,
> Guile should probably only support one "live" version of a module. So
> Guile's internal module namespace stays the same. Versions are only
> important when loading files from disk. I propose that we do it like
> this:
Actually, I'd like to disagree here -- maybe I've been writing too
much Java, but isn't it possible that the VM would be running more
than one "program" (or maybe I misunderstand that term)? Or let's say
that I absolutely need version 4 of library `foo', but that in the
transitive closure of my library dependencies, there's another library
(which I may prefer not to modify) that absolutely needs version 3 of
`foo'.
> (foo bar) -> foo/bar.scm in the path, just as we have it now
> (foo bar (n)) -> foo/barSEPn.scm, where SEP is some separator not
> valid in identifiers.
>
> Candidates for SEP? Unfortunately all the ones that can be bare in the
> shell seem to be taken. Actually maybe `/' is a good candidate, or in
> general the path separator. So it would be foo/bar/n.scm, where n would
> be the version.
>
> We then fix the path-searching functions in load.c to understand
> versions -- some trickiness there but we can do it.
I like this, except it puts the constraint on module authors that
their source files need to be named n.scm. Maybe that's not a big
deal (and it could be mitigated with some kind of "install"
procedure), but what if the mapping were:
(foo bar baz (m n)) -> foo/bar/m/n/baz.scm
Regards,
Julian
next prev parent reply other threads:[~2009-04-22 20:22 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-21 21:18 Merging Guile-R6RS-Libs in `master' Ludovic Courtès
2009-04-21 21:45 ` Julian Graham
2009-04-22 7:55 ` Ludovic Courtès
2009-04-22 14:55 ` Julian Graham
2009-04-22 15:53 ` Ludovic Courtès
2009-04-22 18:32 ` Julian Graham
2009-04-22 19:52 ` Andy Wingo
2009-04-22 20:09 ` Ludovic Courtès
2009-04-22 20:22 ` Julian Graham [this message]
2009-04-22 21:53 ` Andy Wingo
2009-04-22 19:08 ` Andy Wingo
2009-04-22 19:57 ` Ludovic Courtès
2009-04-22 19:07 ` Andy Wingo
2009-04-22 19:51 ` Ludovic Courtès
2009-04-22 20:10 ` Julian Graham
2009-04-21 21:58 ` Andy Wingo
2009-04-22 8:04 ` Ludovic Courtès
2009-05-27 22:27 ` Ludovic Courtès
2009-05-28 17:52 ` Andy Wingo
2009-05-28 19:16 ` Ludovic Courtès
2009-05-28 21:25 ` Ludovic Courtès
2009-05-29 9:02 ` Andy Wingo
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=2bc5f8210904221322w7e08ea88i340831e74d61443f@mail.gmail.com \
--to=joolean@gmail.com \
--cc=guile-devel@gnu.org \
--cc=ludo@gnu.org \
--cc=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).