From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Neil Jerram Newsgroups: gmane.lisp.guile.devel Subject: Re: [PATCH] Per-module reader Date: Wed, 19 Oct 2005 23:56:22 +0100 Message-ID: <87u0fd9kvd.fsf@ossau.uklinux.net> References: <87u0gp9lm3.fsf@laas.fr> <877jd3lkdq.fsf@ossau.uklinux.net> <87hdc62a6c.fsf@laas.fr> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1129762620 899 80.91.229.2 (19 Oct 2005 22:57:00 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 19 Oct 2005 22:57:00 +0000 (UTC) Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Thu Oct 20 00:57:00 2005 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1ESMrI-0003iu-Eb for guile-devel@m.gmane.org; Thu, 20 Oct 2005 00:56:32 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ESMrH-0001Zz-M6 for guile-devel@m.gmane.org; Wed, 19 Oct 2005 18:56:31 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1ESMrE-0001Zs-AF for guile-devel@gnu.org; Wed, 19 Oct 2005 18:56:28 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1ESMrD-0001Ze-Lf for guile-devel@gnu.org; Wed, 19 Oct 2005 18:56:27 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ESMrD-0001ZZ-An for guile-devel@gnu.org; Wed, 19 Oct 2005 18:56:27 -0400 Original-Received: from [80.84.72.33] (helo=mail3.uklinux.net) by monty-python.gnu.org with esmtp (Exim 4.34) id 1ESMrD-0002vQ-IV for guile-devel@gnu.org; Wed, 19 Oct 2005 18:56:27 -0400 Original-Received: from laruns (host81-139-117-151.in-addr.btopenworld.com [81.139.117.151]) by mail3.uklinux.net (Postfix) with ESMTP id 946FD409FBC for ; Wed, 19 Oct 2005 22:56:26 +0000 (UTC) Original-Received: from laruns (laruns [127.0.0.1]) by laruns (Postfix) with ESMTP id B0C6C6F6CE for ; Wed, 19 Oct 2005 23:56:22 +0100 (BST) Original-To: guile-devel@gnu.org User-Agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux) 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:5319 Archived-At: Ludovic, Just one remaining loose end from your previous email ... > As for circular dependencies, I think there's nothing special here: the > problem is the same as for any other binding. Strictly no, there's nothing special, but in practice there is. This is because modules normally consist mostly of defines which delay the evaluation of their procedure bodies ... which generally allows circular dependencies not to be a problem. In the reader case, however, the reader is used during the initial evaluation of the module code. So for example: (define-module (A) | (define-module (B) #:use-module (B) | #:use-module (A) #:export (a-proc)) | #:export (b-proc)) | (define (a-proc) b-proc) | (define (b-proc) a-proc) is fine, but (define-module (A) | (define-module (B) #:use-module (B) | #:use-module (A) #:reader b-reader | #:export (b-reader)) #:export (a-proc)) | | (define (a-proc) ...) | (define (b-reader) ...) is only OK if the loading of (A) is initiated before that of (B). Regards, Neil _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel