From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Andy Wingo Newsgroups: gmane.lisp.guile.bugs Subject: bug#38263: Bug in srfi-11 Date: Sun, 12 Jan 2020 22:23:21 +0100 Message-ID: <87h810mks6.fsf@pobox.com> References: <87blt76eum.fsf.ref@yahoo.de> <87blt76eum.fsf@yahoo.de> <87pnhh1x4o.fsf@netris.org> <87r21x9k9f.fsf@yahoo.de> <878so5122a.fsf@netris.org> <87pnhh9h45.fsf@yahoo.de> <87o8wpz35q.fsf@yahoo.de> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="239676"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) Cc: 38263-done@debbugs.gnu.org To: Tim Gesthuizen via "Bug reports for GUILE\, GNU's Ubiquitous Extension Language" Original-X-From: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Sun Jan 12 22:26:57 2020 Return-path: Envelope-to: guile-bugs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iqkiq-000aaw-P4 for guile-bugs@m.gmane-mx.org; Sun, 12 Jan 2020 22:24:36 +0100 Original-Received: from localhost ([::1]:42104 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iqkiS-0000qI-79 for guile-bugs@m.gmane-mx.org; Sun, 12 Jan 2020 16:24:12 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:34891) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iqkiK-0000mJ-G2 for bug-guile@gnu.org; Sun, 12 Jan 2020 16:24:05 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iqkiJ-0007Is-9P for bug-guile@gnu.org; Sun, 12 Jan 2020 16:24:04 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:52299) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iqkiJ-0007IC-5c for bug-guile@gnu.org; Sun, 12 Jan 2020 16:24:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iqkiJ-0000BX-2B for bug-guile@gnu.org; Sun, 12 Jan 2020 16:24:03 -0500 Resent-From: Andy Wingo Original-Sender: "Debbugs-submit" Resent-To: bug-guile@gnu.org Resent-Date: Sun, 12 Jan 2020 21:24:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: cc-closed 38263 X-GNU-PR-Package: guile Mail-Followup-To: 38263@debbugs.gnu.org, wingo@pobox.com, tim.gesthuizen@yahoo.de Original-Received: via spool by 38263-done@debbugs.gnu.org id=D38263.1578864224659 (code D ref 38263); Sun, 12 Jan 2020 21:24:02 +0000 Original-Received: (at 38263-done) by debbugs.gnu.org; 12 Jan 2020 21:23:44 +0000 Original-Received: from localhost ([127.0.0.1]:58265 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iqki0-0000AZ-0L for submit@debbugs.gnu.org; Sun, 12 Jan 2020 16:23:44 -0500 Original-Received: from fanzine.igalia.com ([178.60.130.6]:54780) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iqkhv-0000AE-PN for 38263-done@debbugs.gnu.org; Sun, 12 Jan 2020 16:23:42 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:References:Subject:Cc:To:From; bh=7xD9SADUnbrmPGhz1vyWwdPazBXV/RkcJ8eXUaWwuSg=; b=hcyfJ94M/wLRPfLDukARlxygUDW/hw2TEcN0PzZod6IMbvoDK4UdFtw4UdO13ilgv0fcm+dSrpZYEl7+GBNdwsVxGObvSoj+i4G7LgqSJFldZDApKTAgjYAfM5JpAtxPDAJf1cXPg01gaFmav10wXFYVjpNgPg40TefXGqA4kv7cvwFTSjMslDjnEH5w5Qh7SJkXN1B0e2j7p1thyELuCV9bFxrnSgSUEu6OHEfDwy14PDWZDS0u6dt48uxWdN161nGJRg6/vJ/qPiHB1kKO1sB8kL6UUjcDnnA7IlvAjbSA1gkkL57kIPDr0ll/RGt8x1I7B6ng0kApT34qN4jQxQ==; Original-Received: from [88.123.12.110] (helo=sparrow) by fanzine.igalia.com with esmtpsa (Cipher TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim) id 1iqkho-0002l0-0X; Sun, 12 Jan 2020 22:23:32 +0100 In-Reply-To: <87o8wpz35q.fsf@yahoo.de> (Tim Gesthuizen via's message of "Tue, 03 Dec 2019 19:15:29 +0100") 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: 209.51.188.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-mx.org@gnu.org Original-Sender: "bug-guile" Xref: news.gmane.org gmane.lisp.guile.bugs:9508 Archived-At: Applied to both branches. Thanks for the patch and thanks also to Mark for the review and initial patch! In the future, Tim, if you have larger patches, we should work out copyright assignment paperwork. But less-than-10-line patches are fine without. Let me know if this is of interest to you. Cheers :) Andy On Tue 03 Dec 2019 19:15, Tim Gesthuizen via "Bug reports for GUILE, GNU's Ubiquitous Extension Language" writes: > Hello again, > > the attached patch also adds a unit test. > I am not into how Guile is organized: Is there anything keeping us from > adding the change? > > Tim. > > From 99d8fb795932eb92b7d5fb09115b6691f4bfe66d Mon Sep 17 00:00:00 2001 > From: Tim Gesthuizen > Date: Tue, 3 Dec 2019 18:50:37 +0100 > Subject: [PATCH] srfi-11: Do not expose variables to later clauses > > The current implementation of srfi-11s let-values allows later clauses > to access and modify variables bound in earlier clauses when the clause > is not a proper list. > > * module/srfi/srfi-11.scm (let-values): Fix switched variable names. > * test-suite/tests/srfi-11.test (let-values): Add test checking that the > variable cannot be changed in later clauses. > --- > module/srfi/srfi-11.scm | 2 +- > test-suite/tests/srfi-11.test | 9 ++++++++- > 2 files changed, 9 insertions(+), 2 deletions(-) > > diff --git a/module/srfi/srfi-11.scm b/module/srfi/srfi-11.scm > index 22bda21a2..7afac9c5f 100644 > --- a/module/srfi/srfi-11.scm > +++ b/module/srfi/srfi-11.scm > @@ -91,7 +91,7 @@ > (syntax (call-with-values (lambda () exp) > (lambda (new-tmp ...) inner)))))) > ((vars exp) > - (with-syntax ((((new-tmp . new-var) ...) > + (with-syntax ((((new-var . new-tmp) ...) > (let lp ((vars (syntax vars))) > (syntax-case vars () > ((id . rest) > diff --git a/test-suite/tests/srfi-11.test b/test-suite/tests/srfi-11.test > index 40563dc18..9bfaa4300 100644 > --- a/test-suite/tests/srfi-11.test > +++ b/test-suite/tests/srfi-11.test > @@ -74,7 +74,14 @@ > '(unbound-variable . ".*") > (let-values (((x) (values 1)) > ((y) (values (1+ x)))) > - #f)))) > + #f)) > + > + (pass-if "first binding with rest invisible to second expr" > + (let* ((a 1) > + (b (let-values (((a . b) (values 2 3)) > + (c (begin (set! a 9) 4))) > + (list a b c)))) > + (equal? (cons a b) '(9 2 (3) (4))))))) > > ;; > ;; let*-values