From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Andy Wingo Newsgroups: gmane.lisp.guile.devel Subject: Re: r6rs libraries, round two Date: Mon, 01 Jun 2009 21:55:32 +0200 Message-ID: References: <2bc5f8210905291331u7259389et26e2ad7d88b32f46@mail.gmail.com> <878wkerxar.fsf@arudy.ossau.uklinux.net> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1243886239 29220 80.91.229.12 (1 Jun 2009 19:57:19 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 1 Jun 2009 19:57:19 +0000 (UTC) Cc: guile-devel To: Neil Jerram Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Mon Jun 01 21:57:15 2009 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1MBDdD-0006kZ-1T for guile-devel@m.gmane.org; Mon, 01 Jun 2009 21:57:15 +0200 Original-Received: from localhost ([127.0.0.1]:48747 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MBDdC-0003Sm-EK for guile-devel@m.gmane.org; Mon, 01 Jun 2009 15:57:14 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MBDcy-0003F4-5y for guile-devel@gnu.org; Mon, 01 Jun 2009 15:57:00 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MBDct-0003Cv-DT for guile-devel@gnu.org; Mon, 01 Jun 2009 15:56:59 -0400 Original-Received: from [199.232.76.173] (port=32916 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MBDct-0003Cr-6L for guile-devel@gnu.org; Mon, 01 Jun 2009 15:56:55 -0400 Original-Received: from a-sasl-quonix.sasl.smtp.pobox.com ([208.72.237.25]:59601 helo=sasl.smtp.pobox.com) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MBDcs-0004Tv-Lm for guile-devel@gnu.org; Mon, 01 Jun 2009 15:56:54 -0400 Original-Received: from localhost.localdomain (unknown [127.0.0.1]) by a-sasl-quonix.sasl.smtp.pobox.com (Postfix) with ESMTP id A672E1CCCE; Mon, 1 Jun 2009 15:56:37 -0400 (EDT) Original-Received: from unquote (unknown [82.123.44.81]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-sasl-quonix.sasl.smtp.pobox.com (Postfix) with ESMTPSA id 037351CCC8; Mon, 1 Jun 2009 15:55:29 -0400 (EDT) In-Reply-To: <878wkerxar.fsf@arudy.ossau.uklinux.net> (Neil Jerram's message of "Sun, 31 May 2009 00:22:20 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.92 (gnu/linux) X-Pobox-Relay-ID: 51093C54-4EE6-11DE-927F-B4FDD46C8AFF-02397024!a-sasl-quonix.pobox.com X-detected-operating-system: by monty-python.gnu.org: Solaris 10 (beta) X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:8585 Archived-At: Hey Julian, On Sun 31 May 2009 01:22, Neil Jerram writes: > Julian Graham writes: > >> 1. Add an optional `version' field to the module record type > > Sounds good. Agreed. >> * 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. Also agreed. >> * Should we establish some rules for what you get when you don't >> specify a version? > > Yes! The latest available? I don't know. To me this could be a distro decision, like Debian's "alternatives" system. It would be nice to minimize the number of `stat' calls it takes to load a library -- which would fall out nicely if when asking for a module without specifying a version, like `(foo bar)', we give foo/bar.scm. In the presence of multiple versions, installation rules could handle making the symlink so there is a default version -- typically the version that was installed most recently. >> 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. I agree it would be nice, but as I said in the thread that Julian referenced, that would take some more thought -- more than the R6RS editors were willing to give the problem. And for us, I suspect we would need some changes to our hierarchical namespaces. We probably shouldn't let this be a sticking point for Guile's R6RS libraries support. Regards, Andy -- http://wingolog.org/