From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Andy Wingo Newsgroups: gmane.lisp.guile.bugs Subject: bug#15540: Circular module imports vs. #:select (2.0.9) Date: Tue, 21 Jun 2016 13:08:44 +0200 Message-ID: <87y45y2403.fsf__45610.3450655521$1466507373$gmane$org@pobox.com> References: <877gdqqjhx.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1466507373 22816 80.91.229.3 (21 Jun 2016 11:09:33 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 21 Jun 2016 11:09:33 +0000 (UTC) Cc: guix-devel@gnu.org, 15540@debbugs.gnu.org To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-X-From: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Tue Jun 21 13:09:19 2016 Return-path: Envelope-to: guile-bugs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1bFJYT-0000Zr-1K for guile-bugs@m.gmane.org; Tue, 21 Jun 2016 13:09:17 +0200 Original-Received: from localhost ([::1]:50803 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bFJYS-0006IQ-30 for guile-bugs@m.gmane.org; Tue, 21 Jun 2016 07:09:16 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37333) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bFJYG-0006FD-6N for bug-guile@gnu.org; Tue, 21 Jun 2016 07:09:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bFJYE-0007n8-1F for bug-guile@gnu.org; Tue, 21 Jun 2016 07:09:03 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:36284) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bFJYD-0007n2-UM for bug-guile@gnu.org; Tue, 21 Jun 2016 07:09:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1bFJYD-0006oT-Qg for bug-guile@gnu.org; Tue, 21 Jun 2016 07:09:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Andy Wingo Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Tue, 21 Jun 2016 11:09:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 15540 X-GNU-PR-Package: guile X-GNU-PR-Keywords: Original-Received: via spool by 15540-submit@debbugs.gnu.org id=B15540.146650733526177 (code B ref 15540); Tue, 21 Jun 2016 11:09:01 +0000 Original-Received: (at 15540) by debbugs.gnu.org; 21 Jun 2016 11:08:55 +0000 Original-Received: from localhost ([127.0.0.1]:48621 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bFJY7-0006o9-3Z for submit@debbugs.gnu.org; Tue, 21 Jun 2016 07:08:55 -0400 Original-Received: from pb-sasl1.pobox.com ([64.147.108.66]:61436 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bFJY6-0006o2-2X for 15540@debbugs.gnu.org; Tue, 21 Jun 2016 07:08:54 -0400 Original-Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by pb-sasl1.pobox.com (Postfix) with ESMTP id A5FC2221F1; Tue, 21 Jun 2016 07:08:52 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; s=sasl; bh=2WpaB+KKgnID +/K1x/G+eFyIMfw=; b=vxXSlm6eskdOzt1iZOatxicYvTNbF6338nMB+ul5+U/K +lmgHmZpyo+3QW5TMAx+/QWapBBcyntL0QRtUh2vXAMgj6SR6D5NGdYisIft8bFC UtKow3K7Mjb58EQLNrKvwIcHoWLzBfpKWMQc3aA2oqCydULeECqLj63hBiraXRc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; q=dns; s=sasl; b=dOTBy4 ku9fuutoA6wQzOQCkS+uER0gXmR7KLDqgtI8uEv+ccEnwvWSPqAmE1aD3YLYfHnD wjR1LO80ggVVNLtn3Bvz4DAvyu4GFZ6eEJoBEKpMKbbBOtVDMWZ6Vf7ki2vKXcfd GGDEFl/77My2GGJ4VQEG7Bjg69aG1c2uwsqU8= Original-Received: from pb-sasl1.nyi.icgroup.com (unknown [127.0.0.1]) by pb-sasl1.pobox.com (Postfix) with ESMTP id 9F46B221F0; Tue, 21 Jun 2016 07:08:52 -0400 (EDT) Original-Received: from clucks (unknown [88.160.190.192]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by pb-sasl1.pobox.com (Postfix) with ESMTPSA id CCE33221EF; Tue, 21 Jun 2016 07:08:51 -0400 (EDT) In-Reply-To: <877gdqqjhx.fsf@gnu.org> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'s message of "Sun, 06 Oct 2013 21:36:42 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) X-Pobox-Relay-ID: 896B5FDC-37A0-11E6-AEEA-C1836462E9F6-02397024!pb-sasl1.pobox.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-guile@gnu.org List-Id: "Bug reports for GUILE, GNU's Ubiquitous Extension Language" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Original-Sender: "bug-guile" Xref: news.gmane.org gmane.lisp.guile.bugs:8074 Archived-At: Yes! As Ian notes this needs a test case. Some kind Guixer should fix up this patch and send to Guile so that it lands before we release 2.0.12, which should come any day now :-) Andy On Sun 06 Oct 2013 21:36, ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Consider these two modules: > > (define-module (a) #:use-module (b) #:export (from-a)) > (define from-a 1) > > and: > > (define-module (b) #:use-module ((a) #:select (from-a)) #:export (from-b)) > (define from-b 2) > > This fails: > > scheme@(guile-user)> ,use(a) > While executing meta-command: > ERROR: no binding `from-a' in module (a) > > whereas this succeeds (starting from a fresh Guile): > > scheme@(guile-user)> ,use(b) > scheme@(guile-user)> from-b > $1 =3D 2 > > Problem is that =E2=80=98define-module*=E2=80=99 processes exports after = imports. > > What about a patch along these lines: > > diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm > index c825b35..24b8f4c 100644 > --- a/module/ice-9/boot-9.scm > +++ b/module/ice-9/boot-9.scm > @@ -2872,11 +2872,8 @@ VALUE." > (error "expected list of integers for version")) > (set-module-version! module version) > (set-module-version! (module-public-interface module) version)= )) > - (let ((imports (resolve-imports imports))) > (call-with-deferred-observers > (lambda () > - (if (pair? imports) > - (module-use-interfaces! module imports)) > (if (list-of valid-export? exports) > (if (pair? exports) > (module-export! module exports)) > @@ -2885,6 +2882,9 @@ VALUE." > (if (pair? replacements) > (module-replace! module replacements)) > (error "expected replacements to be a list of symbols or symb= ol pairs")) > + (let ((imports (resolve-imports module))) > + (if (pair? imports) > + (module-use-interfaces! module imports))) > (if (list-of valid-export? re-exports) > (if (pair? re-exports) > (module-re-export! module re-exports)) > @@ -2896,7 +2896,7 @@ VALUE." > ;; handlers. > (if (pair? duplicates) > (let ((handlers (lookup-duplicates-handlers duplicates))) > - (set-module-duplicates-handlers! module handlers)))))) > + (set-module-duplicates-handlers! module handlers))))) >=20=20 > (if transformer > (if (and (pair? transformer) (list-of symbol? transformer)) > > Thanks, > Ludo=E2=80=99.