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, round three Date: Wed, 18 Nov 2009 01:40:00 -0500 Message-ID: <2bc5f8210911172240k62bb28b0nac2e8107a6d3b945@mail.gmail.com> References: <2bc5f8210909261310q7a32ff83x8ebceb44a78d55c5@mail.gmail.com> <2bc5f8210909302132w258d3f09tf1259bdfd6b1ca9e@mail.gmail.com> <2bc5f8210910241210t11ee37a9o60f3991eb35eab55@mail.gmail.com> <2bc5f8210910252053o31424493re2648f133bf7691f@mail.gmail.com> <2bc5f8210911011126j66abb05ck57e0610903932146@mail.gmail.com> <2bc5f8210911171255m5a731127idd6876d258584e25@mail.gmail.com> <87my2kmxay.fsf@delenn.lan> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: ger.gmane.org 1258526429 15526 80.91.229.12 (18 Nov 2009 06:40:29 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 18 Nov 2009 06:40:29 +0000 (UTC) Cc: Andy Wingo , guile-devel To: Andreas Rottmann Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Wed Nov 18 07:40:22 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 1NAeDD-0006Dx-Vg for guile-devel@m.gmane.org; Wed, 18 Nov 2009 07:40:20 +0100 Original-Received: from localhost ([127.0.0.1]:59513 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NAeDC-0004Kq-Hm for guile-devel@m.gmane.org; Wed, 18 Nov 2009 01:40:18 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NAeCy-0004KV-5C for guile-devel@gnu.org; Wed, 18 Nov 2009 01:40:04 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NAeCw-0004K3-Dz for guile-devel@gnu.org; Wed, 18 Nov 2009 01:40:02 -0500 Original-Received: from [199.232.76.173] (port=47894 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NAeCw-0004Jz-2K for guile-devel@gnu.org; Wed, 18 Nov 2009 01:40:02 -0500 Original-Received: from ey-out-1920.google.com ([74.125.78.147]:59829) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NAeCv-0001NF-L8 for guile-devel@gnu.org; Wed, 18 Nov 2009 01:40:01 -0500 Original-Received: by ey-out-1920.google.com with SMTP id 3so248562eyh.34 for ; Tue, 17 Nov 2009 22:40:00 -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; bh=7R+HYJQXlXjdkxYww0N8XYO7rOIB3tiipjOi4+yiBkY=; b=RNireJcbfzZBE/k/4Fr+CCTPMZjcJQkRbqiz0nFf0Q657gvKvesUqGqesCwPIV16zW b8k5eCdDYYI+tbOvD8BejkbVymAbHZebwVoZopdMUi30Oo/BO9h2uTzMcCleQG1o3NGv vmdPxu6b1b9snavjNi5EnCymQmR/XWmJxsjkg= 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; b=xoP90Gi32nJIuHX1daajfSHE1qWGdaSRx0nilRn3pIx5HDp+QlMkL0n6T9vKEaVC5B J4m9JJRcnMpjmS2uveVZx9aqguRJphSH5LOFW6TPZlpaIPNcGn4NhrsaUMlAmBhDm371 b8Nni7OzWEyirEViXRDMrR/UwFPg4try56XR8= Original-Received: by 10.213.110.9 with SMTP id l9mr5815429ebp.14.1258526400418; Tue, 17 Nov 2009 22:40:00 -0800 (PST) In-Reply-To: <87my2kmxay.fsf@delenn.lan> 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:9693 Archived-At: Hi Andreas, > IIRC, R6RS doesn't /require/ that implementations are able to > differentiate bindings from different phases -- e.g. Ikarus essentially > ignores phase specifications (implicit phasing -- there were some > discussions about that on ikarus-users, which I can't find ATM, but [0] > should sum the issue up nicely). You're right, it doesn't -- at least, it's not required that an implementation prevent you from referencing an identifier at a phase other than the one it was imported for. I was reading that part of the spec in terms of non-macro definitions, but, come to think of it, it's got to apply to macros as well. So importing everything at once sounds like it'll work just fine. > Are you aware of SRFI-103? It got recently revised to leave out > versions; not supporting them is an option, I guess. Quoting from R6RS: I was tracking SRFI-103 for a while back when it was (I think) SRFI-100. I'm interested to see how it pans out, but I'm not sure I agree with its rationale -- it seems mostly useful for implementations that don't currently have their own library search mechanism. The bit about "distributing and using library files in a portable way" seems a bit hand-wavy to me. > This makes me wonder if versions can be used (or rather be relied on) > sensibly in portable libraries at all... Yes, it's a bit thorny. We discussed the limitations in a thread [1] a while back. The implementation I did reflects the outcome of that thread, which was that the version of a library that gets loaded is a function of the import statements, the available libraries, and the set of already-loaded libraries -- which means that it's not a fully predictable process from the point of view of library authors, but that in practice, collisions aren't likely for a variety of reasons. Regards, Julian [1] - http://www.mail-archive.com/guile-devel@gnu.org/msg03673.html