From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#51695: 29.0.50; lexical scope closure, interactive spec byte compiler warnings/usage issue Date: Tue, 09 Nov 2021 14:29:58 +0200 Message-ID: <83r1bp5x6h.fsf@gnu.org> References: <87k0hi2p3i.fsf@zoho.eu> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="29978"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 51695@debbugs.gnu.org, monnier@iro.umontreal.ca To: Emanuel Berg Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Nov 09 13:31:19 2021 Return-path: Envelope-to: geb-bug-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 1mkQHX-0007cm-9F for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 09 Nov 2021 13:31:19 +0100 Original-Received: from localhost ([::1]:55522 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mkQHW-00036r-2z for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 09 Nov 2021 07:31:18 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:41074) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mkQHG-00034r-2g for bug-gnu-emacs@gnu.org; Tue, 09 Nov 2021 07:31:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:49542) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mkQHF-0000G7-Mn for bug-gnu-emacs@gnu.org; Tue, 09 Nov 2021 07:31:01 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mkQHF-0005GF-JJ for bug-gnu-emacs@gnu.org; Tue, 09 Nov 2021 07:31:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 09 Nov 2021 12:31:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 51695 X-GNU-PR-Package: emacs Original-Received: via spool by 51695-submit@debbugs.gnu.org id=B51695.163646101817890 (code B ref 51695); Tue, 09 Nov 2021 12:31:01 +0000 Original-Received: (at 51695) by debbugs.gnu.org; 9 Nov 2021 12:30:18 +0000 Original-Received: from localhost ([127.0.0.1]:32849 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkQGX-0004e2-GC for submit@debbugs.gnu.org; Tue, 09 Nov 2021 07:30:17 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:39930) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkQGR-0004R2-Vw for 51695@debbugs.gnu.org; Tue, 09 Nov 2021 07:30:15 -0500 Original-Received: from [2001:470:142:3::e] (port=36106 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mkQGM-0008T5-4y; Tue, 09 Nov 2021 07:30:06 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=Cr9a04lTzfAgDD81wE9rzFCpk8uLJ7m0ibmMxxgL9UE=; b=fuwB4TfsGdFcCs7xm1c1 iZZkJWU+MyqzMiH23VemKKpDhENo74oBzeBFqhCcRRZGx9jdob574Largze4bznz8OhIubiLubfPv 4lIj0ESUReO30NG+zVDozCDBtjj9ukq9iliLKMDZTo1Ldh/2+zpm499K8N/VIMCMZGpbt4TaBshoW 6o/oE1JdVSPM8ojdqqlujImlgg1h90+ClxL6Ld6BInCQxptnPNna2z7mNv583T9hWfMlFOAhlsoMX YsAiRsdniAh4NBklU2wcoV1UzaCL6kAWWgpV5cgbwXg3osjVH9BXJQIK9dLpNxV0b+2FYkEEbTSK1 4sj+x6F+BfRldQ==; Original-Received: from [87.69.77.57] (port=2203 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mkQGL-0007G3-NE; Tue, 09 Nov 2021 07:30:06 -0500 In-Reply-To: <87k0hi2p3i.fsf@zoho.eu> (bug-gnu-emacs@gnu.org) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:219441 Archived-At: > Cc: Stefan Monnier > Date: Tue, 09 Nov 2021 00:40:33 +0100 > From: Emanuel Berg via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" > > ;;; -*- lexical-binding: t -*- > ;;; > ;;; this file: > ;;; http://user.it.uu.se/~embe8573/emacs-init/geh.el > ;;; https://dataswamp.org/~incal/emacs-init/geh.el > > (let ((data-item 1) > (more-data 2) ) > (defun echo-data (&optional data) > (interactive (list (read-number "number: " (or data-item more-data)))) > (message "data: %s" (or data data-item)) )) > ;; (echo-data 5) > ;; (echo-data) > ;; (call-interactively #'echo-data) > > ;; Emacs bugs: > ;; > ;; 1. Byte compiler warnings (two cases) relating to the > ;; interactive spec: > ;; > ;; geh.el:7:1: Warning: Unused lexical variable `more-data' > ;; geh.el:10:54: Warning: reference to free variable ‘data-item’ > ;; geh.el:10:64: Warning: reference to free variable ‘more-data’ > ;; > ;; 2. When the compiled version is used interactively: > ;; > ;; Symbol's value as variable is void: data-item How can the interactive spec use lexically-bound variables outside its scope, when the interactive spec runs not at function definition time, but at function invocation time, when those variables will be long gone? What is expected from the above code, and why?