From unknown Sun Jun 22 00:30:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#15326: 24.3; Incorrect "variable not left unused" in destructuring cl-loop Resent-From: Christopher Wellons Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 10 Sep 2013 18:27:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 15326 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 15326@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.13788375684288 (code B ref -1); Tue, 10 Sep 2013 18:27:01 +0000 Received: (at submit) by debbugs.gnu.org; 10 Sep 2013 18:26:08 +0000 Received: from localhost ([127.0.0.1]:53099 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VJSda-000174-Nk for submit@debbugs.gnu.org; Tue, 10 Sep 2013 14:26:07 -0400 Received: from eggs.gnu.org ([208.118.235.92]:43255) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VJSdX-00016V-Sl for submit@debbugs.gnu.org; Tue, 10 Sep 2013 14:26:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VJSdM-0005PZ-Sg for submit@debbugs.gnu.org; Tue, 10 Sep 2013 14:25:58 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:55016) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJSdM-0005PV-QC for submit@debbugs.gnu.org; Tue, 10 Sep 2013 14:25:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44944) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJSdH-0000MV-P3 for bug-gnu-emacs@gnu.org; Tue, 10 Sep 2013 14:25:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VJSdC-0005O5-OK for bug-gnu-emacs@gnu.org; Tue, 10 Sep 2013 14:25:47 -0400 Received: from mail.nullprogram.com ([192.241.191.137]:50251) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJSdC-0005Me-Hb for bug-gnu-emacs@gnu.org; Tue, 10 Sep 2013 14:25:42 -0400 Received: from localhost ([127.0.0.1] helo=wellocc1-ld1.jhuapl.edu) by mail.nullprogram.com with esmtp (Exim 4.80) (envelope-from ) id 1VJSd4-0000lc-40; Tue, 10 Sep 2013 18:25:36 +0000 From: Christopher Wellons User-Agent: Notmuch/0.16 (http://notmuchmail.org) Emacs/24.3.1 (x86_64-pc-linux-gnu) Date: Tue, 10 Sep 2013 14:25:33 -0400 Message-ID: <87a9jkttya.fsf@wellocc1-ld1.jhuapl.edu> MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) The byte compiler emits an invalid warning about used "_" lexical variables in cl-loop destructuring bindings. This was casually mentioned in bug#8711, where destructuring-bind was fixed (presumably, since it's fine now) but not loop. Create a source file like so, ;;; -*- lexical-binding: t; -*- (require 'cl-lib) (cl-loop for (_ value) in '((a 1) (b 2)) collect value) Then compile, $ emacs -Q -batch -f batch-byte-compile tmp.el In toplevel form: tmp.el:3:1:Warning: variable `_' not left unused Wrote /tmp/tmp.elc In the macro expansion, the _ is declared in a `let', then later set with `setq', "using" it. In GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.8.2) of 2013-06-25 on sochi, modified by Debian Windowing system distributor `The X.Org Foundation', version 11.0.11204000 System Description: Debian GNU/Linux unstable (sid) Configured using: `configure '--build' 'x86_64-linux-gnu' '--build' 'x86_64-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3/site-lisp:/usr/share/emacs/site-lisp' '--with-crt-dir=/usr/lib/x86_64-linux-gnu' '--with-x=yes' '--with-x-toolkit=gtk3' '--with-toolkit-scroll-bars' 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall' 'LDFLAGS=-Wl,-z,relro' 'CPPFLAGS=-D_FORTIFY_SOURCE=2'' From unknown Sun Jun 22 00:30:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#15326: 24.3; Incorrect "variable not left unused" in destructuring cl-loop Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 10 Sep 2013 21:06:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 15326 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Christopher Wellons Cc: 15326@debbugs.gnu.org Received: via spool by 15326-submit@debbugs.gnu.org id=B15326.137884715624789 (code B ref 15326); Tue, 10 Sep 2013 21:06:02 +0000 Received: (at 15326) by debbugs.gnu.org; 10 Sep 2013 21:05:56 +0000 Received: from localhost ([127.0.0.1]:53406 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VJV8F-0006Rk-Du for submit@debbugs.gnu.org; Tue, 10 Sep 2013 17:05:56 -0400 Received: from chene.dit.umontreal.ca ([132.204.246.20]:46230) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VJV8D-0006Rc-JB for 15326@debbugs.gnu.org; Tue, 10 Sep 2013 17:05:54 -0400 Received: from faina.iro.umontreal.ca (lechon.iro.umontreal.ca [132.204.27.242]) by chene.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id r8AL5q90026708; Tue, 10 Sep 2013 17:05:52 -0400 Received: by faina.iro.umontreal.ca (Postfix, from userid 20848) id 25499B40D6; Tue, 10 Sep 2013 17:05:52 -0400 (EDT) From: Stefan Monnier Message-ID: References: <87a9jkttya.fsf@wellocc1-ld1.jhuapl.edu> Date: Tue, 10 Sep 2013 17:05:52 -0400 In-Reply-To: <87a9jkttya.fsf@wellocc1-ld1.jhuapl.edu> (Christopher Wellons's message of "Tue, 10 Sep 2013 14:25:33 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-NAI-Spam-Flag: NO X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0 X-NAI-Spam-Rules: 1 Rules triggered RV4697=0 X-NAI-Spam-Version: 2.3.0.9362 : core <4697> : inlines <79> : streams <1035108> : uri <1533003> X-Spam-Score: -2.0 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.0 (--) > In the macro expansion, the _ is declared in a `let', then later set > with `setq', "using" it. A `setq' does not *use* a variable. It just sets it, affecting later uses. If there's no later uses, the setq is just a no-op. Fixing this will require someone to dig into the `cl-loop' macro. Stefan "who suspects it's not really fixed in destructuring-bind either" From unknown Sun Jun 22 00:30:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#15326: 24.3; Incorrect "variable not left unused" in destructuring cl-loop Resent-From: Christopher Wellons Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 11 Sep 2013 04:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 15326 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 15326@debbugs.gnu.org Received: via spool by 15326-submit@debbugs.gnu.org id=B15326.13788749015811 (code B ref 15326); Wed, 11 Sep 2013 04:49:02 +0000 Received: (at 15326) by debbugs.gnu.org; 11 Sep 2013 04:48:21 +0000 Received: from localhost ([127.0.0.1]:54092 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VJcLk-0001Ve-Jh for submit@debbugs.gnu.org; Wed, 11 Sep 2013 00:48:21 -0400 Received: from mail.nullprogram.com ([192.241.191.137]:42194) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VJcLh-0001VN-Hx for 15326@debbugs.gnu.org; Wed, 11 Sep 2013 00:48:18 -0400 Received: from localhost ([127.0.0.1] helo=susie.zeus.nullprogram.com) by mail.nullprogram.com with esmtp (Exim 4.80) (envelope-from ) id 1VJcLg-0000S9-5M; Wed, 11 Sep 2013 04:48:16 +0000 From: Christopher Wellons In-Reply-To: References: <87a9jkttya.fsf@wellocc1-ld1.jhuapl.edu> User-Agent: Notmuch/0.16 (http://notmuchmail.org) Emacs/24.3.1 (x86_64-pc-linux-gnu) Date: Wed, 11 Sep 2013 00:47:54 -0400 Message-ID: <874n9s9d6t.fsf@susie.zeus.nullprogram.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.0 (-) X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Stefan Monnier writes: > A `setq' does not *use* a variable. It just sets it, affecting > later uses. I mean that the compiler counts the setq as a use even in this simple expression: (let (_) (setq _ t)) ;; Warning: variable `_' not left unused > If there's no later uses, the setq is just a no-op. Without bothering to dig into the bytecode for it, it seems that the compiler is still emitting code for the setq: (defun foo () (let (_) (setq _ t))) (defun bar () (let (_))) (equal (byte-compile 'foo) (byte-compile 'bar)) ;; => nil Maybe I'm not understanding what you mean by "no-op" here. From unknown Sun Jun 22 00:30:01 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.503 (Entity 5.503) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Christopher Wellons Subject: bug#15326: closed (Re: bug#15326: 24.3; Incorrect "variable not left unused" in destructuring cl-loop) Message-ID: References: <87a9jkttya.fsf@wellocc1-ld1.jhuapl.edu> X-Gnu-PR-Message: they-closed 15326 X-Gnu-PR-Package: emacs Reply-To: 15326@debbugs.gnu.org Date: Sat, 28 Sep 2013 01:09:05 +0000 Content-Type: multipart/mixed; boundary="----------=_1380330545-4475-1" This is a multi-part message in MIME format... ------------=_1380330545-4475-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #15326: 24.3; Incorrect "variable not left unused" in destructuring cl-loop which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 15326@debbugs.gnu.org. --=20 15326: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D15326 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1380330545-4475-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 15326-done) by debbugs.gnu.org; 28 Sep 2013 01:08:59 +0000 Received: from localhost ([127.0.0.1]:41715 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VPj1m-00019u-O5 for submit@debbugs.gnu.org; Fri, 27 Sep 2013 21:08:59 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.182]:51229) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VPj1j-00019k-2o for 15326-done@debbugs.gnu.org; Fri, 27 Sep 2013 21:08:55 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4EABK/CFG4rw/I/2dsb2JhbABEvw4Xc4IfAQVWIxALNBIUGA0kiCTBLZEKA6R6gV6DEw X-IPAS-Result: Av4EABK/CFG4rw/I/2dsb2JhbABEvw4Xc4IfAQVWIxALNBIUGA0kiCTBLZEKA6R6gV6DEw X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="29278384" Received: from 184-175-15-200.dsl.teksavvy.com (HELO pastel.home) ([184.175.15.200]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 27 Sep 2013 21:05:50 -0400 Received: by pastel.home (Postfix, from userid 20848) id 90CC8631A0; Fri, 27 Sep 2013 21:08:53 -0400 (EDT) From: Stefan Monnier To: Christopher Wellons Subject: Re: bug#15326: 24.3; Incorrect "variable not left unused" in destructuring cl-loop Message-ID: References: <87a9jkttya.fsf@wellocc1-ld1.jhuapl.edu> <874n9s9d6t.fsf@susie.zeus.nullprogram.com> Date: Fri, 27 Sep 2013 21:08:53 -0400 In-Reply-To: <874n9s9d6t.fsf@susie.zeus.nullprogram.com> (Christopher Wellons's message of "Wed, 11 Sep 2013 00:47:54 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 15326-done Cc: 15326-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) I have just installed a patch into trunk which changes the code generated by `cl-loop' such that this warning should not appear any more. Stefan ------------=_1380330545-4475-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 10 Sep 2013 18:26:08 +0000 Received: from localhost ([127.0.0.1]:53099 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VJSda-000174-Nk for submit@debbugs.gnu.org; Tue, 10 Sep 2013 14:26:07 -0400 Received: from eggs.gnu.org ([208.118.235.92]:43255) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VJSdX-00016V-Sl for submit@debbugs.gnu.org; Tue, 10 Sep 2013 14:26:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VJSdM-0005PZ-Sg for submit@debbugs.gnu.org; Tue, 10 Sep 2013 14:25:58 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:55016) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJSdM-0005PV-QC for submit@debbugs.gnu.org; Tue, 10 Sep 2013 14:25:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44944) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJSdH-0000MV-P3 for bug-gnu-emacs@gnu.org; Tue, 10 Sep 2013 14:25:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VJSdC-0005O5-OK for bug-gnu-emacs@gnu.org; Tue, 10 Sep 2013 14:25:47 -0400 Received: from mail.nullprogram.com ([192.241.191.137]:50251) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJSdC-0005Me-Hb for bug-gnu-emacs@gnu.org; Tue, 10 Sep 2013 14:25:42 -0400 Received: from localhost ([127.0.0.1] helo=wellocc1-ld1.jhuapl.edu) by mail.nullprogram.com with esmtp (Exim 4.80) (envelope-from ) id 1VJSd4-0000lc-40; Tue, 10 Sep 2013 18:25:36 +0000 From: Christopher Wellons To: bug-gnu-emacs@gnu.org Subject: 24.3; Incorrect "variable not left unused" in destructuring cl-loop User-Agent: Notmuch/0.16 (http://notmuchmail.org) Emacs/24.3.1 (x86_64-pc-linux-gnu) Date: Tue, 10 Sep 2013 14:25:33 -0400 Message-ID: <87a9jkttya.fsf@wellocc1-ld1.jhuapl.edu> MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) The byte compiler emits an invalid warning about used "_" lexical variables in cl-loop destructuring bindings. This was casually mentioned in bug#8711, where destructuring-bind was fixed (presumably, since it's fine now) but not loop. Create a source file like so, ;;; -*- lexical-binding: t; -*- (require 'cl-lib) (cl-loop for (_ value) in '((a 1) (b 2)) collect value) Then compile, $ emacs -Q -batch -f batch-byte-compile tmp.el In toplevel form: tmp.el:3:1:Warning: variable `_' not left unused Wrote /tmp/tmp.elc In the macro expansion, the _ is declared in a `let', then later set with `setq', "using" it. In GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.8.2) of 2013-06-25 on sochi, modified by Debian Windowing system distributor `The X.Org Foundation', version 11.0.11204000 System Description: Debian GNU/Linux unstable (sid) Configured using: `configure '--build' 'x86_64-linux-gnu' '--build' 'x86_64-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3/site-lisp:/usr/share/emacs/site-lisp' '--with-crt-dir=/usr/lib/x86_64-linux-gnu' '--with-x=yes' '--with-x-toolkit=gtk3' '--with-toolkit-scroll-bars' 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall' 'LDFLAGS=-Wl,-z,relro' 'CPPFLAGS=-D_FORTIFY_SOURCE=2'' ------------=_1380330545-4475-1--