From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Julian Graham Newsgroups: gmane.lisp.guile.devel Subject: Re: r6rs libraries Date: Fri, 6 Mar 2009 19:43:17 -0500 Message-ID: <2bc5f8210903061643p587c9d29j19c1c4162d2b1c7f@mail.gmail.com> References: <2bc5f8210812271705h3f57cb29w5bb83cb02abe971@mail.gmail.com> <877i4z89jy.fsf@gnu.org> <2bc5f8210901251627t5d59f9fg5bc5dcceaf2a0b9f@mail.gmail.com> <2bc5f8210901280926o399f4505nc1d30c6017886a81@mail.gmail.com> <2bc5f8210902161035p1f2e9125p58c2ad6c4def28fb@mail.gmail.com> <2bc5f8210903032123q28fbc802jed51b68445b162d6@mail.gmail.com> <87vdqp1y21.fsf@gnu.org> <2bc5f8210903041451o70f4671cscd7d37bab33d0f31@mail.gmail.com> <877i32qkz5.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1236386611 5932 80.91.229.12 (7 Mar 2009 00:43:31 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 7 Mar 2009 00:43:31 +0000 (UTC) Cc: guile-devel@gnu.org To: =?ISO-8859-1?Q?Ludovic_Court=E8s?= Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Sat Mar 07 01:44:48 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 1Lfkel-0007mX-Ly for guile-devel@m.gmane.org; Sat, 07 Mar 2009 01:44:47 +0100 Original-Received: from localhost ([127.0.0.1]:34711 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LfkdQ-0006DM-DI for guile-devel@m.gmane.org; Fri, 06 Mar 2009 19:43:24 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LfkdM-0006CR-J0 for guile-devel@gnu.org; Fri, 06 Mar 2009 19:43:20 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LfkdM-0006CB-5U for guile-devel@gnu.org; Fri, 06 Mar 2009 19:43:20 -0500 Original-Received: from [199.232.76.173] (port=39167 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LfkdM-0006C8-2V for guile-devel@gnu.org; Fri, 06 Mar 2009 19:43:20 -0500 Original-Received: from yx-out-1718.google.com ([74.125.44.157]:48468) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LfkdK-0003XN-Oi; Fri, 06 Mar 2009 19:43:18 -0500 Original-Received: by yx-out-1718.google.com with SMTP id 34so400977yxf.66 for ; Fri, 06 Mar 2009 16:43:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=+fMzvN84jTodJFz2yUIjGfUxgmMO+08XN/A3aU61tMc=; b=r8+/Bk2CVgGcxeSoFAZOzuBywAtPyp+m+hCSIGkgVRhdMh7gyDxvhLjsNWYS1Z2C0f kS8nVjyTqtgAEhSXC8xriZGfXgwU1dPwoXMXFSQDNXxEzdWHGugS3gNWyuwzAVzRX3te 2UIXE8tPpjhswq4WbbFFKt5QEPerfledmMPbY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=e1AiivF2oZ1InDhxMRY8AeashMxyFfP/x4RquAMfTvCSeX5GTzH07o5NoKcw9ug1hv kL6dzwOgkMux4E4wT3f89i4SVjA8Z9mFLwiqHMjA6p6TOuXLgWsh13yfoZT0uvdT0acg MmmUTMyIEqtrU1a9naR7xRhjrkv4rsYomZHmQ= Original-Received: by 10.100.58.18 with SMTP id g18mr2267842ana.26.1236386597896; Fri, 06 Mar 2009 16:43:17 -0800 (PST) In-Reply-To: <877i32qkz5.fsf@gnu.org> X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) 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:8242 Archived-At: > Hmm, yes, but how about `foo/bar/baz-6.scm'? =A0Is there a reason to > reject it? Well, the part of an R6RS library name that comes before its version is only restricted in that that it must be an identifier -- so a system that relied on filenames to locate libraries could have trouble determining whether a file called ice-9-9.scm contained a library named `(ice-9 (9))' or one named `(ice (9 9))'. And this also doesn't address the problem of doing version matching as part of hybrid module / library load process. After all, I don't think there are any restrictions in R6RS on where libraries need to be stored or how they can be located / loaded, so one thing we could do is ditch the idea that version needs to go into the filename. Guile could require that all installed versions of a particular library would have to reside in the same file, the name of which would be constructed of the non-version parts of the library name: foo/bar/baz.scm would contain the code for: `(foo bar baz (6))' `(foo bar baz (6 1))' and `(foo bar baz (7))' Using the module system to load that file, a la `(use-modules (foo bar baz))' would cause, via a hook in the body of that file, all the library expressions in that file to be stored in a data structure accessible by the library system for the purposes of subsequent import and expansion. Regards, Julian