From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg via Users list for the GNU Emacs text editor Newsgroups: gmane.emacs.help Subject: Re: How to avoid compiler warning `unused lexical variable' for `dolist' or `dotimes'? Date: Fri, 08 Jan 2021 13:38:24 +0100 Message-ID: <87pn2fhadb.fsf@zoho.eu> References: <87o8hzj0hh.fsf@zoho.eu> <20210108110743.GB21347@tuxteam.de> Reply-To: Emanuel Berg Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="24484"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:Xt5lC0PZpJELk16b4zpgjjvNNEg= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Fri Jan 08 13:39:56 2021 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kxr3c-0006FT-5V for geh-help-gnu-emacs@m.gmane-mx.org; Fri, 08 Jan 2021 13:39:56 +0100 Original-Received: from localhost ([::1]:38468 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kxr3b-0004Hc-66 for geh-help-gnu-emacs@m.gmane-mx.org; Fri, 08 Jan 2021 07:39:55 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:58236) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kxr2g-0004HJ-9Q for help-gnu-emacs@gnu.org; Fri, 08 Jan 2021 07:38:59 -0500 Original-Received: from ciao.gmane.io ([116.202.254.214]:55356) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kxr2e-00005R-J4 for help-gnu-emacs@gnu.org; Fri, 08 Jan 2021 07:38:58 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1kxr2b-00054o-0H for help-gnu-emacs@gnu.org; Fri, 08 Jan 2021 13:38:53 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.248, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:127102 Archived-At: tomas wrote: > I think Stefan explained that pretty well in this thread: > dotimes is implemented as a macro (the alternative would be > to special-case it) which introduces a let-binding But surely this happens elsewhere as well? > to the counting index... which is used in the result part, > unless it's not used, which then causes the byte compiler to > issue the warning. But the warning isn't specifically introduced for this situation, is it? Because then it could just say that, instead of the confusing wasn't used thing. But if it isn't, then why is it triggered by this at all and how can it be so specific to even act upon a certain part of the construct? > Fixing that would take > > (a) special-casing dotimes somehow. For maintaniability > reasons probably out of the question No. > (b) making the macro expander for dotimes smarter, to > skip introducing the let-binding. No. > (c) (that seems Stefan's favourite, and I tend to trust him > blindly in those things) discourage the three argument > use of dotimes, since it's not that idiomatic in Elisp > anyway (those idioms are more Common Lisp-y). Ha :) Well, whatever. > Makes more sense now? No! Again, this is a problem with the byte compiler. So rather, fixing it would take (d) fixing the byte compiler -- underground experts united http://user.it.uu.se/~embe8573 https://dataswamp.org/~incal