GNU logs - #79760, boring messages


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Jonas Bernoulli <jonas@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 03 Nov 2025 19:53:02 +0000
Resent-Message-ID: <handler.79760.B.17621995772673 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 79760 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.17621995772673
          (code B ref -1); Mon, 03 Nov 2025 19:53:02 +0000
Received: (at submit) by debbugs.gnu.org; 3 Nov 2025 19:52:57 +0000
Received: from localhost ([127.0.0.1]:43111 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vG0bo-0000h3-98
	for submit <at> debbugs.gnu.org; Mon, 03 Nov 2025 14:52:56 -0500
Received: from lists.gnu.org ([2001:470:142::17]:52250)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <jonas@HIDDEN>) id 1vG0bh-0000gv-Rx
 for submit <at> debbugs.gnu.org; Mon, 03 Nov 2025 14:52:50 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <jonas@HIDDEN>) id 1vG0bc-0001Zh-5F
 for bug-gnu-emacs@HIDDEN; Mon, 03 Nov 2025 14:52:44 -0500
Received: from mail.hostpark.net ([212.243.197.30])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <jonas@HIDDEN>) id 1vG0bQ-0006bt-QO
 for bug-gnu-emacs@HIDDEN; Mon, 03 Nov 2025 14:52:42 -0500
Received: from localhost (localhost [127.0.0.1])
 by mail.hostpark.net (Postfix) with ESMTP id 9383A1626A
 for <bug-gnu-emacs@HIDDEN>; Mon, 03 Nov 2025 20:52:21 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bernoul.li; h=
 content-transfer-encoding:content-type:content-type:mime-version
 :message-id:date:date:subject:subject:from:from; s=sel2011a; t=
 1762199541; bh=vOAQPQJZyPS6Z/ibJRTgJSqbC62wOG956fOQ1xAO2fo=; b=t
 zlSqPpZFWPnVTr4tkbG5aNY05y/8+R2jSoYrkXsxY++gKkIlCCBbvc6BamQZR7tz
 yLkqcN1WFL/O4lIDTuYV3JPiYK5DmcBrNxLw/6ih3lMwRnkU6d22G6+JS1pr90r5
 OqXH1KYrPleMFMzxBhtmGc5BqTgp6h7oYz34vHEjAw=
X-Virus-Scanned: by Hostpark/NetZone Mailprotection at hostpark.net
Received: from mail.hostpark.net ([127.0.0.1])
 by localhost (mail1.hostpark.net [127.0.0.1]) (amavis, port 10224) with ESMTP
 id P7_dQXDUv0Ws for <bug-gnu-emacs@HIDDEN>;
 Mon,  3 Nov 2025 20:52:21 +0100 (CET)
Received: from customer (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange secp256r1 server-signature RSA-PSS (2048 bits) server-digest
 SHA256) (No client certificate requested)
 by mail.hostpark.net (Postfix) with ESMTPSA id 4C3BE16148
 for <bug-gnu-emacs@HIDDEN>; Mon, 03 Nov 2025 20:52:21 +0100 (CET)
From: Jonas Bernoulli <jonas@HIDDEN>
Date: Mon, 03 Nov 2025 20:52:20 +0100
Message-ID: <874iraevwr.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass client-ip=212.243.197.30; envelope-from=jonas@HIDDEN;
 helo=mail.hostpark.net
X-Spam_score_int: -23
X-Spam_score: -2.4
X-Spam_bar: --
X-Spam_report: (-2.4 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1,
 DKIM_SIGNED=0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001,
 RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001,
 RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 0.9 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.1 (/)

Hello,

I get=20

  Missing =E2=80=98lexical-binding=E2=80=99 cookie in "da-script"

warnings for scripts that have to place the cookie on the second line
because they look like this:

  #!/bin/sh
  ":"; exec emacs -Q --script "$0" -- "$@" # -*- mode: emacs-lisp; lexical-=
binding: t; -*-
  (... lisp goes here ...)

But when I visit such files, the local value of`lexical-binding' is t
as expected.

     Cheers,
     Jonas




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Jonas Bernoulli <jonas@HIDDEN>
Subject: bug#79760: Acknowledgement (Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?=
 cookie warning for scripts)
Message-ID: <handler.79760.B.17621995772673.ack <at> debbugs.gnu.org>
References: <874iraevwr.fsf@HIDDEN>
X-Gnu-PR-Message: ack 79760
X-Gnu-PR-Package: emacs
Reply-To: 79760 <at> debbugs.gnu.org
Date: Mon, 03 Nov 2025 19:53:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-gnu-emacs@HIDDEN

If you wish to submit further information on this problem, please
send it to 79760 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
79760: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D79760
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 03 Nov 2025 20:27:01 +0000
Resent-Message-ID: <handler.79760.B79760.17622016186973 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Jonas Bernoulli <jonas@HIDDEN>
Cc: 79760 <at> debbugs.gnu.org
Received: via spool by 79760-submit <at> debbugs.gnu.org id=B79760.17622016186973
          (code B ref 79760); Mon, 03 Nov 2025 20:27:01 +0000
Received: (at 79760) by debbugs.gnu.org; 3 Nov 2025 20:26:58 +0000
Received: from localhost ([127.0.0.1]:43275 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vG18j-0001oP-JY
	for submit <at> debbugs.gnu.org; Mon, 03 Nov 2025 15:26:57 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:59020)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vG18g-0001oF-FV
 for 79760 <at> debbugs.gnu.org; Mon, 03 Nov 2025 15:26:55 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1vG18Y-0007Dk-4o; Mon, 03 Nov 2025 15:26:46 -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=JxRr6u6p2ShXzpGXtG76j2OU4iCUZjuZA+tgXG6dm0A=; b=mMDIBHoLrPpvUS+SRuOl
 vW/PMZ/u+7SEquTLM08cqUAf60CVgyrXUsD4pVExAaCrbWLHEM1rgdCta/WOo83J4ddfn3BHGV61B
 bZ76vII29m18sj3bskuvHy8pQUpJ6ryDIuB1Sdt4QLgPhcgrJl//N9n/OStZNtOeCkU+UO9RevqTM
 KBaJYa7gF5KhIyUt5brBQK0g44fbXUWVoSP0csFNesuUaJJaadg8OF14XwuekW21DKvUB34epGBbF
 pTdGWt+3cW3A47hu/5xQYZbg6it7i2JE3PlXJIQLkNVnAX4/sJxpO7aPfYro6OHW48yDFx2tPCI2B
 4MGJtS1Jh99nVA==;
Date: Mon, 03 Nov 2025 22:26:42 +0200
Message-Id: <86wm46g8vx.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <874iraevwr.fsf@HIDDEN> (bug-gnu-emacs@HIDDEN)
References: <874iraevwr.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Mon, 03 Nov 2025 20:52:20 +0100
> From:  Jonas Bernoulli via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
> 
> Hello,
> 
> I get 
> 
>   Missing ‘lexical-binding’ cookie in "da-script"
> 
> warnings for scripts that have to place the cookie on the second line
> because they look like this:
> 
>   #!/bin/sh
>   ":"; exec emacs -Q --script "$0" -- "$@" # -*- mode: emacs-lisp; lexical-binding: t; -*-
>   (... lisp goes here ...)
> 
> But when I visit such files, the local value of`lexical-binding' is t
> as expected.

You expect the part after the # to be somehow passed to the Emacs that
is executed by "exec emacs"?  That's a comment, as far as the shell is
concerned, isn't it?  The Lisp code passed to Emacs is what starts
with (... lisp goes here ...), right?  Or am I missing something?




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Pip Cet <pipcet@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 03 Nov 2025 21:43:02 +0000
Resent-Message-ID: <handler.79760.B79760.176220613918136 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: 79760 <at> debbugs.gnu.org, Jonas Bernoulli <jonas@HIDDEN>
Received: via spool by 79760-submit <at> debbugs.gnu.org id=B79760.176220613918136
          (code B ref 79760); Mon, 03 Nov 2025 21:43:02 +0000
Received: (at 79760) by debbugs.gnu.org; 3 Nov 2025 21:42:19 +0000
Received: from localhost ([127.0.0.1]:43762 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vG2Jb-0004iG-6T
	for submit <at> debbugs.gnu.org; Mon, 03 Nov 2025 16:42:18 -0500
Received: from mail-4322.protonmail.ch ([185.70.43.22]:47333)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1vG2JU-0004hs-Pt
 for 79760 <at> debbugs.gnu.org; Mon, 03 Nov 2025 16:42:10 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1762206121; x=1762465321;
 bh=kUkTRV2rDp96wCVHgHn5vYwx29Ng0fORWr+ErkPd7n4=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector;
 b=gd4GFJ8VqU1uagaXktVmnkb5fS5Gb+hVm4uzyR9OTvoyAXDnNFqW4E1qtl8+DDw+X
 US0guyVvh+1GJ7KY5j5LJE83V+GxyrvsyVNvi+t+g43rw5QdchDl1liPByNyHx0UQd
 dc861Cm1M5ySmbr1qZkpCkZdXZOoyrmJxkci//WORrM0veILOq5f3jE9c0/hRVs1mA
 iGFBQnRR1mNYpIfSm4FaQJelJJRRqMA7zLMsRD/2kyVzy2R10xBDv4H2zsaosBnbCy
 07xtGHDrBixcNFyCQVGXB13EF73KeXNPOnbWRJPxWGatlK3YBqwC11FTgun7fqfxAr
 pskeCpMLjAIyQ==
Date: Mon, 03 Nov 2025 21:41:55 +0000
From: Pip Cet <pipcet@HIDDEN>
Message-ID: <87a51294no.fsf@HIDDEN>
In-Reply-To: <86wm46g8vx.fsf@HIDDEN>
References: <874iraevwr.fsf@HIDDEN> <86wm46g8vx.fsf@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: 30061a2188d9de315d3643d1d00ff8cf8a49d78f
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

"Eli Zaretskii" <eliz@HIDDEN> writes:

>> Date: Mon, 03 Nov 2025 20:52:20 +0100
>> From:  Jonas Bernoulli via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
>>
>> Hello,
>>
>> I get
>>
>>   Missing =E2=80=98lexical-binding=E2=80=99 cookie in "da-script"
>>
>> warnings for scripts that have to place the cookie on the second line
>> because they look like this:
>>
>>   #!/bin/sh
>>   ":"; exec emacs -Q --script "$0" -- "$@" # -*- mode: emacs-lisp; lexic=
al-binding: t; -*-
>>   (... lisp goes here ...)

Can you try putting "(message "%S" lexical-binding)" there? Unless I
made a mistake copying this, the lexical-binding cookie doesn't actually
work.

>> But when I visit such files, the local value of`lexical-binding' is t
>> as expected.

So this is the unexpected part, right?

> You expect the part after the # to be somehow passed to the Emacs that
> is executed by "exec emacs"?  That's a comment, as far as the shell is
> concerned, isn't it?

> The Lisp code passed to Emacs is what starts with (... lisp goes here
> ...), right?  Or am I missing something?

No, the entire file is passed (by name) to Emacs, including the shebang
itself. Emacs discards it in lread.c, and the second line is valid Lisp.

I don't know whether this helps, but

#!/usr/bin/env -S emacs -x
;; -*- lexical-binding: t -*-
(message "%S" lexical-binding)

appears to work on a GNU/Linux system, where the GNU coreutils env is
installed in this standard location, but only with new emacs versions.

Maybe /bin/env should be used instead. Note that this useful feature
also allows you to pass extra command line parameters to emacs.

The problem is this code in lread.c:

  if (ch !=3D ';')
    /* The first line isn't a comment, just give up.  */
    {
      unreadchar (&source, ch);
      return Cookie_None;
    }

AFAIK, no valid shell script starts with a semicolon, so there's no way
to make this work with #!/bin/sh. Using zsh instead works.

Pip





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Jonas Bernoulli <jonas@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 04 Nov 2025 19:41:01 +0000
Resent-Message-ID: <handler.79760.B79760.176228520718833 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Pip Cet <pipcet@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Cc: 79760 <at> debbugs.gnu.org
Received: via spool by 79760-submit <at> debbugs.gnu.org id=B79760.176228520718833
          (code B ref 79760); Tue, 04 Nov 2025 19:41:01 +0000
Received: (at 79760) by debbugs.gnu.org; 4 Nov 2025 19:40:07 +0000
Received: from localhost ([127.0.0.1]:49641 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vGMsv-0004sw-TT
	for submit <at> debbugs.gnu.org; Tue, 04 Nov 2025 14:40:07 -0500
Received: from mail.hostpark.net ([212.243.197.30]:45218)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <jonas@HIDDEN>) id 1vGMsr-0004r8-ER
 for 79760 <at> debbugs.gnu.org; Tue, 04 Nov 2025 14:40:04 -0500
Received: from localhost (localhost [127.0.0.1])
 by mail.hostpark.net (Postfix) with ESMTP id 0C7D4166D2;
 Tue, 04 Nov 2025 20:39:59 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bernoul.li; h=
 content-transfer-encoding:content-type:content-type:mime-version
 :message-id:date:date:references:in-reply-to:subject:subject
 :from:from; s=sel2011a; t=1762285198; bh=NAOxw1RsALrkmcgzaiqB/9U
 3j5dX/YPaWDhWo7yzVC0=; b=B5gjHu4BFN29wdc0FsBHCzulzEHs894oG0qjrYt
 BxsllhMHhjwPCmztilij834tj5XqSk56Gp9FnQpIJ5J/BVLbIPHCmUb9NOhBmemD
 Nn2FlQhdX1L6xQxfkUmKWcvcCWpnIInxYfTZ5jQ4Fpnfswf0FvPxIBpM7bvuvlP/
 eFH0=
X-Virus-Scanned: by Hostpark/NetZone Mailprotection at hostpark.net
Received: from mail.hostpark.net ([127.0.0.1])
 by localhost (mail1.hostpark.net [127.0.0.1]) (amavis, port 10224) with ESMTP
 id CjbNFVQerW8a; Tue,  4 Nov 2025 20:39:58 +0100 (CET)
Received: from customer (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange secp256r1 server-signature RSA-PSS (2048 bits) server-digest
 SHA256) (No client certificate requested)
 by mail.hostpark.net (Postfix) with ESMTPSA id 3CEBF16148;
 Tue, 04 Nov 2025 20:39:57 +0100 (CET)
From: Jonas Bernoulli <jonas@HIDDEN>
In-Reply-To: <87a51294no.fsf@HIDDEN>
References: <874iraevwr.fsf@HIDDEN> <86wm46g8vx.fsf@HIDDEN>
 <87a51294no.fsf@HIDDEN>
Date: Tue, 04 Nov 2025 20:39:57 +0100
Message-ID: <87tsz9d1te.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.7 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Pip Cet <pipcet@HIDDEN> writes:

> "Eli Zaretskii" <eliz@HIDDEN> writes:
>
>>> Date: Mon, 03 Nov 2025 20:52:20 +0100
>>> From:  Jonas Bernoulli via "Bug reports for GNU Emacs,
>>>  the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
>>>
>>> Hello,
>>>
>>> I get
>>>
>>>   Missing =E2=80=98lexical-binding=E2=80=99 cookie in "da-script"
>>>
>>> warnings for scripts that have to place the cookie on the second line
>>> because they look like this:
>>>
>>>   #!/bin/sh
>>>   ":"; exec emacs -Q --script "$0" -- "$@" # -*- mode: emacs-lisp; lexi=
cal-binding: t; -*-
>>>   (... lisp goes here ...)
>
> Can you try putting "(message "%S" lexical-binding)" there? Unless I
> made a mistake copying this, the lexical-binding cookie doesn't actually
> work.

Yes you are absolutely right.
(Sorry, could not resist.  I am in fact a human.)

>>> But when I visit such files, the local value of`lexical-binding' is t
>>> as expected.
>
> So this is the unexpected part, right?

In a way, yes.  What I would like to do is to set the value and then
have that choice respected when the file is executed as a script and
also when it is visited in a buffer.  When doing what I have done
above, it is not respected in the first case but not in the second.
That's worse than if this setting were just never respected.

>> You expect the part after the # to be somehow passed to the Emacs that
>> is executed by "exec emacs"?  That's a comment, as far as the shell is
>> concerned, isn't it?
>
>> The Lisp code passed to Emacs is what starts with (... lisp goes here
>> ...), right?  Or am I missing something?
>
> No, the entire file is passed (by name) to Emacs, including the shebang
> itself. Emacs discards it in lread.c, and the second line is valid Lisp.
>
> I don't know whether this helps, but
>
> #!/usr/bin/env -S emacs -x
> ;; -*- lexical-binding: t -*-
> (message "%S" lexical-binding)

I completely forgot about that (emacs -x).  For the record, that was
added in Emacs 29.1.  I going to use this instead of the hack above.

> appears to work on a GNU/Linux system, where the GNU coreutils env is
> installed in this standard location, but only with new emacs versions.

Setting lexical-binding does not seem to work on GNU GUIX using Emacs
31.0.50.  On this distribution "/usr/bin/env" is a symlink to something
like "/gnu/store/f2rcir6yz0n74jaa6d0fm82f8flmwjnk-coreutils-9.1/bin/env".
Even if I use that explicitly, lexical-binding is still nil.

> Maybe /bin/env should be used instead. Note that this useful feature
> also allows you to pass extra command line parameters to emacs.
>
> The problem is this code in lread.c:
>
>   if (ch !=3D ';')
>     /* The first line isn't a comment, just give up.  */
>     {
>       unreadchar (&source, ch);
>       return Cookie_None;
>     }
>
> AFAIK, no valid shell script starts with a semicolon, so there's no way
> to make this work with #!/bin/sh. Using zsh instead works.

Seems to me this should be changed to also look at the second line
(at least when using "emacs -x").

By the way --and that's just something I though of right now-- maybe
this is an opportunity to *always* look at the second line as well.
That way, one could replace

  ;;; this-library-has-a-long-name.el --- And it also needs a long descript=
ion  -*- mode: lexical-binding: t;

with

  ;;; this-library-has-a-long-name.el --- And it also needs a long descript=
ion
  ;; -*- lexical-binding: t;

(Of course we would not be able to actually use this for a few years,
except in new libraries that need at least Emacs 31 for other reasons
anyway.)

>
> Pip

     Thanks!
     Jonas




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Pip Cet <pipcet@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 05 Nov 2025 11:30:03 +0000
Resent-Message-ID: <handler.79760.B79760.176234219617442 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Jonas Bernoulli <jonas@HIDDEN>
Cc: Eli Zaretskii <eliz@HIDDEN>, 79760 <at> debbugs.gnu.org
Received: via spool by 79760-submit <at> debbugs.gnu.org id=B79760.176234219617442
          (code B ref 79760); Wed, 05 Nov 2025 11:30:03 +0000
Received: (at 79760) by debbugs.gnu.org; 5 Nov 2025 11:29:56 +0000
Received: from localhost ([127.0.0.1]:56594 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vGbi7-0004XF-PE
	for submit <at> debbugs.gnu.org; Wed, 05 Nov 2025 06:29:56 -0500
Received: from mail-24418.protonmail.ch ([109.224.244.18]:18767)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1vGbi5-0004Wt-FR
 for 79760 <at> debbugs.gnu.org; Wed, 05 Nov 2025 06:29:54 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1762342187; x=1762601387;
 bh=h5665V2HnezabXWEYf6OzlusnmCaOq+z0cu8D/HqDCQ=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector;
 b=Vc029cjtkYTieVxs1TWkFVC+U6swKmbJ+nt2ycLX+opgm+ulI7115dJI1haaxO+L3
 WX/WW4PjQIJOq0SMuEdxD/7J/D0dZo4huObdzvY8L17JfHs5cv/ZthcHe23NOfwkzh
 4Stb/Sk2i93AX+VktFXrZ7aUW+r4c7mF+5sV9cyBb+MG8zWCMKEyHr21dsJIG78g9i
 rs01vnRSjFo9XxAhZaP8WnK4jEHtw8Os+3l6PVNp3ZLpJwlON93Dv5nKA+xS+wEUib
 6456fXomH4RTGamWmu/fsCCLgkrpzTOQ/ZKKuIQmvRD8On5e++LpY/e1BvN/fXZcde
 eWcpm8n0AFN0Q==
Date: Wed, 05 Nov 2025 11:29:42 +0000
From: Pip Cet <pipcet@HIDDEN>
Message-ID: <87a510emzk.fsf@HIDDEN>
In-Reply-To: <87tsz9d1te.fsf@HIDDEN>
References: <874iraevwr.fsf@HIDDEN> <86wm46g8vx.fsf@HIDDEN>
 <87a51294no.fsf@HIDDEN> <87tsz9d1te.fsf@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: 77475f511917a5634700ff1a19a705e37e6e0cdc
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

"Jonas Bernoulli" <jonas@HIDDEN> writes:

> Pip Cet <pipcet@HIDDEN> writes:
>
>> "Eli Zaretskii" <eliz@HIDDEN> writes:
>>
>>>> Date: Mon, 03 Nov 2025 20:52:20 +0100
>>>> From:  Jonas Bernoulli via "Bug reports for GNU Emacs,
>>>>  the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
>>>>
>>>> Hello,
>>>>
>>>> I get
>>>>
>>>>   Missing =E2=80=98lexical-binding=E2=80=99 cookie in "da-script"
>>>>
>>>> warnings for scripts that have to place the cookie on the second line
>>>> because they look like this:
>>>>
>>>>   #!/bin/sh
>>>>   ":"; exec emacs -Q --script "$0" -- "$@" # -*- mode: emacs-lisp; lex=
ical-binding: t; -*-
>>>>   (... lisp goes here ...)
>>
>> Can you try putting "(message "%S" lexical-binding)" there? Unless I
>> made a mistake copying this, the lexical-binding cookie doesn't actually
>> work.
>
> Yes you are absolutely right.
> (Sorry, could not resist.  I am in fact a human.)
>
>>>> But when I visit such files, the local value of`lexical-binding' is t
>>>> as expected.
>>
>> So this is the unexpected part, right?
>
> In a way, yes.  What I would like to do is to set the value and then
> have that choice respected when the file is executed as a script and
> also when it is visited in a buffer.  When doing what I have done
> above, it is not respected in the first case but not in the second.
> That's worse than if this setting were just never respected.

I agree.

>>> You expect the part after the # to be somehow passed to the Emacs that
>>> is executed by "exec emacs"?  That's a comment, as far as the shell is
>>> concerned, isn't it?
>>
>>> The Lisp code passed to Emacs is what starts with (... lisp goes here
>>> ...), right?  Or am I missing something?
>>
>> No, the entire file is passed (by name) to Emacs, including the shebang
>> itself. Emacs discards it in lread.c, and the second line is valid Lisp.
>>
>> I don't know whether this helps, but
>>
>> #!/usr/bin/env -S emacs -x
>> ;; -*- lexical-binding: t -*-
>> (message "%S" lexical-binding)
>
> I completely forgot about that (emacs -x).  For the record, that was
> added in Emacs 29.1.  I going to use this instead of the hack above.

If it worked, that would be a good idea :-)

>> appears to work on a GNU/Linux system, where the GNU coreutils env is
>> installed in this standard location, but only with new emacs versions.
>
> Setting lexical-binding does not seem to work on GNU GUIX using Emacs
> 31.0.50.  On this distribution "/usr/bin/env" is a symlink to something
> like "/gnu/store/f2rcir6yz0n74jaa6d0fm82f8flmwjnk-coreutils-9.1/bin/env".
> Even if I use that explicitly, lexical-binding is still nil.

#!/usr/bin/env -S emacs --batch -l

works.

#!/usr/bin/env -S emacs -x

doesn't work.

This appears to be because of the code in startup.el.

I would not want to actually touch this code; I think we should merely
document the current behavior rather than changing it.

>> Maybe /bin/env should be used instead. Note that this useful feature
>> also allows you to pass extra command line parameters to emacs.
>>
>> The problem is this code in lread.c:
>>
>>   if (ch !=3D ';')
>>     /* The first line isn't a comment, just give up.  */
>>     {
>>       unreadchar (&source, ch);
>>       return Cookie_None;
>>     }
>>
>> AFAIK, no valid shell script starts with a semicolon, so there's no way
>> to make this work with #!/bin/sh. Using zsh instead works.
>
> Seems to me this should be changed to also look at the second line
> (at least when using "emacs -x").

I don't think we reach this code at all for emacs -x.

> By the way --and that's just something I though of right now-- maybe
> this is an opportunity to *always* look at the second line as well.
> That way, one could replace
>
>   ;;; this-library-has-a-long-name.el --- And it also needs a long descri=
ption  -*- mode: lexical-binding: t;
>
> with
>
>   ;;; this-library-has-a-long-name.el --- And it also needs a long descri=
ption
>   ;; -*- lexical-binding: t;
>
> (Of course we would not be able to actually use this for a few years,
> except in new libraries that need at least Emacs 31 for other reasons
> anyway.)

Maybe that's a good idea, but I think our priority here should be to
find a reliable way to run a shebang Elisp script with lexical binding
and document it.

Pip





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 05 Nov 2025 15:01:02 +0000
Resent-Message-ID: <handler.79760.B79760.176235485328600 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Pip Cet <pipcet@HIDDEN>, Stefan Monnier <monnier@HIDDEN>
Cc: 79760 <at> debbugs.gnu.org, jonas@HIDDEN
Received: via spool by 79760-submit <at> debbugs.gnu.org id=B79760.176235485328600
          (code B ref 79760); Wed, 05 Nov 2025 15:01:02 +0000
Received: (at 79760) by debbugs.gnu.org; 5 Nov 2025 15:00:53 +0000
Received: from localhost ([127.0.0.1]:57091 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vGf0H-0007RE-HF
	for submit <at> debbugs.gnu.org; Wed, 05 Nov 2025 10:00:53 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:35252)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vGf0F-0007Qy-4Y
 for 79760 <at> debbugs.gnu.org; Wed, 05 Nov 2025 10:00:52 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1vGf08-00015G-HP; Wed, 05 Nov 2025 10:00:44 -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=jPW22uqM3X0mZezFYMWf9EkQywHiW6CaJLKijyOhtdY=; b=Q+fuLt0w7I5tVN2OmCCt
 Ky/YiCxjHWlw1JhOebxnpcrHcubEqcNMJ92BUs/DYN3fY3s8z4M0qqY4xiFSoVH530+M/NXuiVmJk
 AQjVx41FvFxHOv73JO4gciIGrVmHWJBO+ExnLRmVxVr+3sBd+G3KDRaDBmlYUY3kSzELpDu2hB75d
 YvXPYu70h/xCiIObTUonfdg54ex5GocAI7nMhnbwVGNFiPkzJhaZDgkYT/jlZ4U9zvUS2VkfGzABH
 7eQF5nh1ceCuiJdCkbQ05CLwZG5Lr9wcBMxY55key+8OMazGCC6lih8rPGjkksU3Qs2cyCJpJLhyx
 cPL2cvb4537B7A==;
Date: Wed, 05 Nov 2025 17:00:29 +0200
Message-Id: <86y0oked82.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <87a510emzk.fsf@HIDDEN> (message from Pip Cet on Wed, 05
 Nov 2025 11:29:42 +0000)
References: <874iraevwr.fsf@HIDDEN> <86wm46g8vx.fsf@HIDDEN>
 <87a51294no.fsf@HIDDEN> <87tsz9d1te.fsf@HIDDEN>
 <87a510emzk.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Wed, 05 Nov 2025 11:29:42 +0000
> From: Pip Cet <pipcet@HIDDEN>
> Cc: Eli Zaretskii <eliz@HIDDEN>, 79760 <at> debbugs.gnu.org
> 
> Maybe that's a good idea, but I think our priority here should be to
> find a reliable way to run a shebang Elisp script with lexical binding
> and document it.

Why cannot the Lisp script begin with something like

  (setq-default lexical-binding t)

?

In general, given that our long-term goal is to make lexical-binding
be non-nil by default, I'd prefer not to complicate Emacs due to
temporary problems that soon will go away.

Stefan, WDYT?




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Stefan Monnier <monnier@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 05 Nov 2025 20:39:01 +0000
Resent-Message-ID: <handler.79760.B79760.176237509926759 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: Pip Cet <pipcet@HIDDEN>, jonas@HIDDEN, 79760 <at> debbugs.gnu.org
Received: via spool by 79760-submit <at> debbugs.gnu.org id=B79760.176237509926759
          (code B ref 79760); Wed, 05 Nov 2025 20:39:01 +0000
Received: (at 79760) by debbugs.gnu.org; 5 Nov 2025 20:38:19 +0000
Received: from localhost ([127.0.0.1]:59275 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vGkGo-0006xW-Kz
	for submit <at> debbugs.gnu.org; Wed, 05 Nov 2025 15:38:18 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:26558)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
 id 1vGkGm-0006xB-3i
 for 79760 <at> debbugs.gnu.org; Wed, 05 Nov 2025 15:38:16 -0500
Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1])
 by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 98548441B23;
 Wed,  5 Nov 2025 15:38:10 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1762375089;
 bh=tqCjXRN1VqCe0V34qSxWpCtNLD0anBSwuNjxY596Ijw=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=DSqba8E50CY4ijZG9WwbHOAcVy61Bp1ddfZAgjItM10yHftOhoPPH7S1q3HZZmTIj
 DdjAHB5toRDAXEB/K8adM4Zfld+X6+x315zENz0foXDxFdNABbSDXlxAigxuxRPOew
 MMEWz6svLdAYzjWVlJD1uuGqKiKcNiVm1kC0W19TXfa5xAcSMryt2eiWHmZi467oS4
 IViBUK3e5JoCEgaDfFYjQNwLbBRMwFb7BUjUNqvqWCwetnh1RdADZQ2e2qYBNx4A7I
 wVyRs7AbNTQPjSv7RUYjFn2+Y6/wx7KRl5WD2h3s5DvmThyUpG8g/ov1n7Pg1Dm3C+
 x9sZ0sj0pvgxQ==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id B3B6C44127B;
 Wed,  5 Nov 2025 15:38:09 -0500 (EST)
Received: from asado (unknown [190.55.48.190])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 29D6412024C;
 Wed,  5 Nov 2025 15:38:07 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <86y0oked82.fsf@HIDDEN>
Message-ID: <jwvv7jorzfw.fsf-monnier+emacs@HIDDEN>
References: <874iraevwr.fsf@HIDDEN> <86wm46g8vx.fsf@HIDDEN>
 <87a51294no.fsf@HIDDEN> <87tsz9d1te.fsf@HIDDEN>
 <87a510emzk.fsf@HIDDEN> <86y0oked82.fsf@HIDDEN>
Date: Wed, 05 Nov 2025 15:38:04 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Why cannot the Lisp script begin with something like
>
>   (setq-default lexical-binding t)
>
> ?
>
> In general, given that our long-term goal is to make lexical-binding
> be non-nil by default, I'd prefer not to complicate Emacs due to
> temporary problems that soon will go away.
> Stefan, WDYT?

I'd suggest to side-step the problem and change the default value of
`lexical-binding` to t when loading a script with `-x` or
`--script`, indeed.


        Stefan





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 06 Nov 2025 06:08:01 +0000
Resent-Message-ID: <handler.79760.B79760.17624092642320 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Stefan Monnier <monnier@HIDDEN>
Cc: pipcet@HIDDEN, jonas@HIDDEN, 79760 <at> debbugs.gnu.org
Received: via spool by 79760-submit <at> debbugs.gnu.org id=B79760.17624092642320
          (code B ref 79760); Thu, 06 Nov 2025 06:08:01 +0000
Received: (at 79760) by debbugs.gnu.org; 6 Nov 2025 06:07:44 +0000
Received: from localhost ([127.0.0.1]:35457 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vGt9s-0000bM-9b
	for submit <at> debbugs.gnu.org; Thu, 06 Nov 2025 01:07:44 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:55392)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vGt9p-0000bG-EG
 for 79760 <at> debbugs.gnu.org; Thu, 06 Nov 2025 01:07:42 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1vGt9i-0005XI-68; Thu, 06 Nov 2025 01:07:34 -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=QxqMz6NuvTB2c9RevWojAmazab3vLqxtemIjxJJf8/Y=; b=INHQ0QAbdgudlO2kokot
 eGHnQSR1Q0zXRGg6CIBy8zrU6mNdCrtC7xDfDC/aJLRFqMkcXNYmJUuWPEPQFsg3ViUiIZXYCW3hn
 9DeyVbgygLBp11n8WxW2RrFZwXFi6pZbyLZGEXCnYr9XI6klEfqaT402djKs86TY43YwtIMFKShXD
 kAqZx/nSLp7usVB/gaEMGJ+fMdmtcEED5BU5sjDXksqVrB9lhrIaDKsgEZXgKTS6ynoEfvJ5cJzxp
 R8WZ4/wgF+J7ALG1shzQnYqjhnjPMDeS/dUXK2OgNQFD2zlTQUnhhceoRht2dTkBGZX4V+S+YGYHW
 YScq5NXdQzUL4A==;
Date: Thu, 06 Nov 2025 08:07:30 +0200
Message-Id: <86346relst.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <jwvv7jorzfw.fsf-monnier+emacs@HIDDEN> (message from Stefan
 Monnier on Wed, 05 Nov 2025 15:38:04 -0500)
References: <874iraevwr.fsf@HIDDEN> <86wm46g8vx.fsf@HIDDEN>
 <87a51294no.fsf@HIDDEN> <87tsz9d1te.fsf@HIDDEN>
 <87a510emzk.fsf@HIDDEN> <86y0oked82.fsf@HIDDEN>
 <jwvv7jorzfw.fsf-monnier+emacs@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Stefan Monnier <monnier@HIDDEN>
> Cc: Pip Cet <pipcet@HIDDEN>,  79760 <at> debbugs.gnu.org,  jonas@HIDDEN
> Date: Wed, 05 Nov 2025 15:38:04 -0500
> 
> > Why cannot the Lisp script begin with something like
> >
> >   (setq-default lexical-binding t)
> >
> > ?
> >
> > In general, given that our long-term goal is to make lexical-binding
> > be non-nil by default, I'd prefer not to complicate Emacs due to
> > temporary problems that soon will go away.
> > Stefan, WDYT?
> 
> I'd suggest to side-step the problem and change the default value of
> `lexical-binding` to t when loading a script with `-x` or
> `--script`, indeed.

OK, but let's then document that a script that wants to use dynamic
binding, it should use something like

  (setq-default lexical-binding nil)

in its first line.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Pip Cet <pipcet@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 06 Nov 2025 08:08:01 +0000
Resent-Message-ID: <handler.79760.B79760.176241645626276 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: 79760 <at> debbugs.gnu.org, jonas@HIDDEN, Stefan Monnier <monnier@HIDDEN>
Received: via spool by 79760-submit <at> debbugs.gnu.org id=B79760.176241645626276
          (code B ref 79760); Thu, 06 Nov 2025 08:08:01 +0000
Received: (at 79760) by debbugs.gnu.org; 6 Nov 2025 08:07:36 +0000
Received: from localhost ([127.0.0.1]:36302 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vGv1r-0006pk-TN
	for submit <at> debbugs.gnu.org; Thu, 06 Nov 2025 03:07:36 -0500
Received: from mail-4322.protonmail.ch ([185.70.43.22]:62537)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1vGv1p-0006pS-DJ
 for 79760 <at> debbugs.gnu.org; Thu, 06 Nov 2025 03:07:34 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1762416446; x=1762675646;
 bh=7UO56xycjgy8qqIsQ0PfjJ8ulx8N9rqX1OP5UJx8ijc=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector;
 b=kBMEHT9vNIN5TltVuI91hpCM1fRqJEeMcssr3bJbX6P7lpuxwdnaJSBqsn+BIC8fP
 wsU4CqtyqljgbtVKloU0+Yj2hkiEdFNTE/utjhSeySbBjnD+YJhxPwLlKndZowDt3P
 GMEFmTHsUX1EXJIh+d0EtYVOSkelUO0HLmF/50+ZgBUeXRWnV0CsEhEGkdJUt3yqsN
 Fo/EY5Gpzc7mgP3a5YVyn40caD+TE/31g0APSg0Xb7EXUSMNhhYZw77UXGz0J7NggW
 m+Nk6/+kcGYTvkh/9tjghrV6+KVY5L7gwrB3VTmtYSiLa77kXxCF1U7eaZ1b+Daxy7
 XDc74VgWvKeJQ==
Date: Thu, 06 Nov 2025 08:07:20 +0000
From: Pip Cet <pipcet@HIDDEN>
Message-ID: <87frard1os.fsf@HIDDEN>
In-Reply-To: <86y0oked82.fsf@HIDDEN>
References: <874iraevwr.fsf@HIDDEN> <86wm46g8vx.fsf@HIDDEN>
 <87a51294no.fsf@HIDDEN> <87tsz9d1te.fsf@HIDDEN>
 <87a510emzk.fsf@HIDDEN> <86y0oked82.fsf@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: 97578fee57b3db0d1a9bd3d0d21ce3f0e4f4af0a
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

"Eli Zaretskii" <eliz@HIDDEN> writes:

>> Date: Wed, 05 Nov 2025 11:29:42 +0000
>> From: Pip Cet <pipcet@HIDDEN>
>> Cc: Eli Zaretskii <eliz@HIDDEN>, 79760 <at> debbugs.gnu.org
>>
>> Maybe that's a good idea, but I think our priority here should be to
>> find a reliable way to run a shebang Elisp script with lexical binding
>> and document it.
>
> Why cannot the Lisp script begin with something like
>
>   (setq-default lexical-binding t)
>
> ?

In general, that doesn't work:

#!/usr/bin/env -S emacs -Q --batch -l
(setq-default lexical-binding t)
(let ((x 3))
  (setq closure (lambda () (cl-incf x))))
(message "%S" (let ((x 42)) (funcall closure)))

produces "43" here, but should produce "4", if the lexical-binding setq
were effective.

My understanding was that the lexical-binding cookie needs to be set at
read time, not just when the code executes, because of macro expansion.

Note that "-scriptload" (aka --script) and "-scripteval" (aka -x) behave
differently here: scriptload starts by removing the #! line (throwing
off all line numbers for future errors), then calls eval-buffer.
scripteval reads and executes forms one by one, which means the
setq-default thing appears to work.

Pip





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 06 Nov 2025 08:34:01 +0000
Resent-Message-ID: <handler.79760.B79760.176241802430306 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Pip Cet <pipcet@HIDDEN>
Cc: 79760 <at> debbugs.gnu.org, jonas@HIDDEN, monnier@HIDDEN
Received: via spool by 79760-submit <at> debbugs.gnu.org id=B79760.176241802430306
          (code B ref 79760); Thu, 06 Nov 2025 08:34:01 +0000
Received: (at 79760) by debbugs.gnu.org; 6 Nov 2025 08:33:44 +0000
Received: from localhost ([127.0.0.1]:36481 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vGvR9-0007sj-Rf
	for submit <at> debbugs.gnu.org; Thu, 06 Nov 2025 03:33:44 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:56674)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vGvR7-0007sF-3T
 for 79760 <at> debbugs.gnu.org; Thu, 06 Nov 2025 03:33:41 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1vGvQy-0001AD-3j; Thu, 06 Nov 2025 03:33:32 -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=GTYgsG1ztQtHURP7fiWmZNs/87+mk0EYUk+0d1UzjO8=; b=UhK5EmcXeYCJw+Dt210d
 i3Z4VurUCsgbKWsQ76WBQd+is1epXA0Ncwjoy2PJ0LPKSgO328PiIU6L6enqto8e4Mcww3uAiVWEz
 0segdfABhYJXmTjYgrYx0Q7S3v0osmt9HfWZAkfEuGUIEC8d1qMe0SfLQ/iy/ZUrLXbcTaQG0aNbr
 HBB8A5lCVco8KfRf6lx9oj1xgLWDnwiMugutAFLfxsJxzKSzE4FldwNabuINj0AnCmjoGU2Bi8LBb
 cPVObdhzWdkzvCM6NqPHjXaC2skyJ7VAN3xV2KnVP/1sCvM14Zi1YHG78G+vONezV6GcR5d8rwMBz
 YszZzO38li2pSQ==;
Date: Thu, 06 Nov 2025 10:33:06 +0200
Message-Id: <86ms4zd0hp.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <87frard1os.fsf@HIDDEN> (message from Pip Cet on Thu, 06
 Nov 2025 08:07:20 +0000)
References: <874iraevwr.fsf@HIDDEN> <86wm46g8vx.fsf@HIDDEN>
 <87a51294no.fsf@HIDDEN> <87tsz9d1te.fsf@HIDDEN>
 <87a510emzk.fsf@HIDDEN> <86y0oked82.fsf@HIDDEN>
 <87frard1os.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Thu, 06 Nov 2025 08:07:20 +0000
> From: Pip Cet <pipcet@HIDDEN>
> Cc: Stefan Monnier <monnier@HIDDEN>, jonas@HIDDEN, 79760 <at> debbugs.gnu.org
> 
> "Eli Zaretskii" <eliz@HIDDEN> writes:
> 
> > Why cannot the Lisp script begin with something like
> >
> >   (setq-default lexical-binding t)
> >
> > ?
> 
> In general, that doesn't work:
> 
> #!/usr/bin/env -S emacs -Q --batch -l
> (setq-default lexical-binding t)
> (let ((x 3))
>   (setq closure (lambda () (cl-incf x))))
> (message "%S" (let ((x 42)) (funcall closure)))
> 
> produces "43" here, but should produce "4", if the lexical-binding setq
> were effective.
> 
> My understanding was that the lexical-binding cookie needs to be set at
> read time, not just when the code executes, because of macro expansion.

That probably means we will need to introduce a command-line option
(or maybe just using --eval will do?) to allow scripts to be run with
dynamic binding in effect.  Because even if we make lexical-binding
non-nil in --script, we still need to allow dynamic binding when it's
needed.  Any other ideas?

> Note that "-scriptload" (aka --script) and "-scripteval" (aka -x) behave
> differently here: scriptload starts by removing the #! line (throwing
> off all line numbers for future errors), then calls eval-buffer.
> scripteval reads and executes forms one by one, which means the
> setq-default thing appears to work.

Maybe a bug to fix, or at least a subtlety to document, right?




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Stefan Monnier <monnier@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 06 Nov 2025 12:50:02 +0000
Resent-Message-ID: <handler.79760.B79760.176243337023211 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: Pip Cet <pipcet@HIDDEN>, jonas@HIDDEN, 79760 <at> debbugs.gnu.org
Received: via spool by 79760-submit <at> debbugs.gnu.org id=B79760.176243337023211
          (code B ref 79760); Thu, 06 Nov 2025 12:50:02 +0000
Received: (at 79760) by debbugs.gnu.org; 6 Nov 2025 12:49:30 +0000
Received: from localhost ([127.0.0.1]:37879 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vGzQg-00062I-9A
	for submit <at> debbugs.gnu.org; Thu, 06 Nov 2025 07:49:30 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:3655)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
 id 1vGzQc-00061v-DQ
 for 79760 <at> debbugs.gnu.org; Thu, 06 Nov 2025 07:49:27 -0500
Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1])
 by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id D2EAC81690;
 Thu,  6 Nov 2025 07:49:20 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1762433360;
 bh=LoWgwRaZR/l8mzpmcXIRuQSvyu5oa0qFZ2KUr9dGQRs=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=jvAlDAaWDn5uXH+8cd2dI9V7Ks0w8BmGcGXHXWr+o2R0D4S9hvrY8h5+1ma2dQYkf
 utgqPHsnTfy15+zdzPMoiWMi9AAt8xdzRYP29+64fkvppRzmpm0FL0qJxlkOuFtbpC
 JPD4kwTDmEQEJh3VlramJiyJ18LrXdnaKfB4JLvvANFEAXoLJDscd3xaC4lul6ErCs
 F/JswlQjdPebtVCtDwMK1FcEyh1VYQT2SO9RjWajiPTDZ+xjjiIt9UwzxnGr9z6vKW
 w4u5Xx5uqqs8ms1pdJXyS2qWKjVzH2JW90uz1pIbezhCswrySEiQem2wdjKo8LmWqR
 dc8kYQ9XMsk4g==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 0B18C81679;
 Thu,  6 Nov 2025 07:49:20 -0500 (EST)
Received: from asado (unknown [181.28.45.30])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 50D0D12022A;
 Thu,  6 Nov 2025 07:49:18 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <86ms4zd0hp.fsf@HIDDEN>
Message-ID: <jwvldkjpc23.fsf-monnier+emacs@HIDDEN>
References: <874iraevwr.fsf@HIDDEN> <86wm46g8vx.fsf@HIDDEN>
 <87a51294no.fsf@HIDDEN> <87tsz9d1te.fsf@HIDDEN>
 <87a510emzk.fsf@HIDDEN> <86y0oked82.fsf@HIDDEN>
 <87frard1os.fsf@HIDDEN> <86ms4zd0hp.fsf@HIDDEN>
Date: Thu, 06 Nov 2025 07:49:12 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL -0.245 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

>> My understanding was that the lexical-binding cookie needs to be set at
>> read time, not just when the code executes, because of macro expansion.
>
> That probably means we will need to introduce a command-line option
> (or maybe just using --eval will do?) to allow scripts to be run with
> dynamic binding in effect.  Because even if we make lexical-binding
> non-nil in --script, we still need to allow dynamic binding when it's
> needed.  Any other ideas?

We could provide a macro

    (defmacro with-lexical-binding (lexbind &rest code)
      (declare (indent 1) (debug t))
      `(eval ',(macroexp-progn code) ,lexbind))

So they could wrap their code inside

    (with-lexical-binding nil
      ...)

Of course, experience tells us that for the vast majority of cases,
changing the default of `lexical-binding` has no visible effect anyway.


        Stefan





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 06 Nov 2025 13:18:02 +0000
Resent-Message-ID: <handler.79760.B79760.176243506827303 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Stefan Monnier <monnier@HIDDEN>
Cc: pipcet@HIDDEN, jonas@HIDDEN, 79760 <at> debbugs.gnu.org
Received: via spool by 79760-submit <at> debbugs.gnu.org id=B79760.176243506827303
          (code B ref 79760); Thu, 06 Nov 2025 13:18:02 +0000
Received: (at 79760) by debbugs.gnu.org; 6 Nov 2025 13:17:48 +0000
Received: from localhost ([127.0.0.1]:37963 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vGzs3-000764-7R
	for submit <at> debbugs.gnu.org; Thu, 06 Nov 2025 08:17:47 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:54756)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vGzs0-00075y-4b
 for 79760 <at> debbugs.gnu.org; Thu, 06 Nov 2025 08:17:45 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1vGzru-0003np-17; Thu, 06 Nov 2025 08:17:38 -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=OISybweZiyfFNj5wIeAspsXWxp9PhqTukq3D/F6n/p0=; b=Vyxnn8aSagwa6kXYdHOM
 ZgKIsDju2bJemvZbEh/Ox8jo1vFj1cbPiIElR41q0Dra31pDJA/qxd5U7xpJNjX5JmxsG2VfcnYCj
 RbDWayyWmto5ykzwHAy4tdfW4eZk/xHH9sMhNQ6fguunaFFJJ2gxm1M1iVy4has/+w3sT5JyEkJDy
 exmBICIh0RukOJNA7A5Qk1bgyqLa2xKjqfP4Nh56yR+smqCl4101NfhMsjo7K+WSLPvqwaqg1Qilw
 ZrjetLWZV6s15CrRWYx3VFXgpHySU0P5aXDORW5f/uhTUXA/PkvhhZvisdlqB0bJqniiviFsAkkpV
 sKWXXK6TV94YDw==;
Date: Thu, 06 Nov 2025 15:17:34 +0200
Message-Id: <861pmbcnbl.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <jwvldkjpc23.fsf-monnier+emacs@HIDDEN> (message from Stefan
 Monnier on Thu, 06 Nov 2025 07:49:12 -0500)
References: <874iraevwr.fsf@HIDDEN> <86wm46g8vx.fsf@HIDDEN>
 <87a51294no.fsf@HIDDEN> <87tsz9d1te.fsf@HIDDEN>
 <87a510emzk.fsf@HIDDEN> <86y0oked82.fsf@HIDDEN>
 <87frard1os.fsf@HIDDEN> <86ms4zd0hp.fsf@HIDDEN>
 <jwvldkjpc23.fsf-monnier+emacs@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Stefan Monnier <monnier@HIDDEN>
> Cc: Pip Cet <pipcet@HIDDEN>,  jonas@HIDDEN,  79760 <at> debbugs.gnu.org
> Date: Thu, 06 Nov 2025 07:49:12 -0500
> 
> >> My understanding was that the lexical-binding cookie needs to be set at
> >> read time, not just when the code executes, because of macro expansion.
> >
> > That probably means we will need to introduce a command-line option
> > (or maybe just using --eval will do?) to allow scripts to be run with
> > dynamic binding in effect.  Because even if we make lexical-binding
> > non-nil in --script, we still need to allow dynamic binding when it's
> > needed.  Any other ideas?
> 
> We could provide a macro
> 
>     (defmacro with-lexical-binding (lexbind &rest code)
>       (declare (indent 1) (debug t))
>       `(eval ',(macroexp-progn code) ,lexbind))
> 
> So they could wrap their code inside
> 
>     (with-lexical-binding nil
>       ...)

Should be fine, I think.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Stefan Monnier <monnier@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 06 Nov 2025 14:08:01 +0000
Resent-Message-ID: <handler.79760.B79760.17624380575047 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: pipcet@HIDDEN, jonas@HIDDEN, 79760 <at> debbugs.gnu.org
Received: via spool by 79760-submit <at> debbugs.gnu.org id=B79760.17624380575047
          (code B ref 79760); Thu, 06 Nov 2025 14:08:01 +0000
Received: (at 79760) by debbugs.gnu.org; 6 Nov 2025 14:07:37 +0000
Received: from localhost ([127.0.0.1]:38171 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vH0eH-0001JJ-0a
	for submit <at> debbugs.gnu.org; Thu, 06 Nov 2025 09:07:37 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:47078)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
 id 1vH0eE-0001Ix-Kz
 for 79760 <at> debbugs.gnu.org; Thu, 06 Nov 2025 09:07:35 -0500
Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1])
 by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 2996B440FC0;
 Thu,  6 Nov 2025 09:07:29 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1762438047;
 bh=UK3llMlevhzfq2dHleY1f78mkcnbLlTvlG8Jt2DWmlU=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=A/ZNa+a4gboStjmgKlcTEKgEB/DLVbbMBYFPh//AAOzu52Zx61uAQrdaPOlFjWc7Q
 m7FyZBbyli7qPCSjr91fsPiJlKeu/myopgO2EmpdSOa/hc7+QocBSl6J70U+c72n4T
 w4p71zHSj1kg6y5dfXpsJe+Bv6FgDdAYRwgJBxaXC2/aTUhHu/+/nK+ZWijOJo5ypN
 4UhXg/WkoqJW6YYrEDEFZEh6CTU7ID/nsQ0/Hj7uWoiGeAg3hGg4IS6cpM11Fq3Xz7
 Ve04KpDrffUzonzaHeOCpxE59izihvV0cHBDGzI0rg00WYscG4D4I2VqR+lP4BY6ht
 vdrA498Zxxv1g==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id BDED3440F94;
 Thu,  6 Nov 2025 09:07:27 -0500 (EST)
Received: from asado (unknown [181.28.45.30])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id BDEC512039E;
 Thu,  6 Nov 2025 09:07:24 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <861pmbcnbl.fsf@HIDDEN>
Message-ID: <jwvh5v7ntnn.fsf-monnier+emacs@HIDDEN>
References: <874iraevwr.fsf@HIDDEN> <86wm46g8vx.fsf@HIDDEN>
 <87a51294no.fsf@HIDDEN> <87tsz9d1te.fsf@HIDDEN>
 <87a510emzk.fsf@HIDDEN> <86y0oked82.fsf@HIDDEN>
 <87frard1os.fsf@HIDDEN> <86ms4zd0hp.fsf@HIDDEN>
 <jwvldkjpc23.fsf-monnier+emacs@HIDDEN> <861pmbcnbl.fsf@HIDDEN>
Date: Thu, 06 Nov 2025 09:07:20 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL -0.096 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Eli Zaretskii [2025-11-06 15:17:34] wrote:

>> From: Stefan Monnier <monnier@HIDDEN>
>> Cc: Pip Cet <pipcet@HIDDEN>,  jonas@HIDDEN,  79760 <at> debbugs.gnu.org
>> Date: Thu, 06 Nov 2025 07:49:12 -0500
>> 
>> >> My understanding was that the lexical-binding cookie needs to be set at
>> >> read time, not just when the code executes, because of macro expansion.
>> >
>> > That probably means we will need to introduce a command-line option
>> > (or maybe just using --eval will do?) to allow scripts to be run with
>> > dynamic binding in effect.  Because even if we make lexical-binding
>> > non-nil in --script, we still need to allow dynamic binding when it's
>> > needed.  Any other ideas?
>> 
>> We could provide a macro
>> 
>>     (defmacro with-lexical-binding (lexbind &rest code)
>>       (declare (indent 1) (debug t))
>>       `(eval ',(macroexp-progn code) ,lexbind))
>> 
>> So they could wrap their code inside
>> 
>>     (with-lexical-binding nil
>>       ...)
>
> Should be fine, I think.

Actually, it's just as easy to use `eval`, so maybe the patch below is
all we need?


        Stefan


diff --git a/etc/NEWS b/etc/NEWS
index 9243db67bce..eb1ffeed5ba 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -3037,6 +3037,15 @@ and blocks Emacs, or does not provide ways to limit how often it runs.
 
 * Incompatible Lisp Changes in Emacs 31.1
 
+** Files loaded from '-x' and '--script' now use lexical binding.
+If you don't have time to adapt your script's code to the lexical
+binding dialect (see (info "(elisp)Converting to Lexical Binding")),
+you can wrap your code in:
+
+    #!/usr/bin/emacs --script
+    (eval
+     '(YOUR CODE HERE))
+
 +++
 ** String mutation has been restricted further.
 'aset' on unibyte strings now requires the new character to be a single
diff --git a/lisp/startup.el b/lisp/startup.el
index aab8fcfe9f2..45c78052077 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -2744,6 +2744,7 @@ command-line-1
                     ((member argi '("-scriptload" "-scripteval"))
                      (let* ((file (command-line-normalize-file-name
                                    (or argval (pop command-line-args-left))))
+                            (lexical-binding t)
                             ;; Take file from default dir.
                             (file-ex (expand-file-name file))
                             (truename (file-truename file-ex)))





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 06 Nov 2025 14:51:02 +0000
Resent-Message-ID: <handler.79760.B79760.176244065118091 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Stefan Monnier <monnier@HIDDEN>
Cc: pipcet@HIDDEN, jonas@HIDDEN, 79760 <at> debbugs.gnu.org
Received: via spool by 79760-submit <at> debbugs.gnu.org id=B79760.176244065118091
          (code B ref 79760); Thu, 06 Nov 2025 14:51:02 +0000
Received: (at 79760) by debbugs.gnu.org; 6 Nov 2025 14:50:51 +0000
Received: from localhost ([127.0.0.1]:38509 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vH1K6-0004hg-GH
	for submit <at> debbugs.gnu.org; Thu, 06 Nov 2025 09:50:50 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:48854)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vH1K2-0004gl-2z
 for 79760 <at> debbugs.gnu.org; Thu, 06 Nov 2025 09:50:48 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1vH1Jv-0005xG-CM; Thu, 06 Nov 2025 09:50:39 -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=GcnSVZ2M53GFrfynhTCUK2BHJN0d43syok8P7KStpYo=; b=H03aYQk2mqm0v99CJon2
 9PlkQSooo4xISpPUE7zXKLNkpz9axbQdUvgZ5hgoPSGKqWYJhH+pYKmVr6+LCsIVMIYCL9mPnCnJq
 WeZTyavQY8RM28hvBUwdBO05tnKefjATHN+u+29FCsJNu7+Cf/4W9NLICed1azsMmh2JVKYyYs7Qm
 /HFeG/5PPe0BUlzV52dyd7A9PlpVUfGQPAv4EITLcVD/xkor2Vv1TupZ5LPYpINnKzHemRB+7/827
 dhEwwHG3zIJ4+o6Q5hzqM4avwpmTK2HOhvFFxCfiUVC96JzHSvikN2BoarK5uI98cMKSXWXPEI0jO
 JpJDupcRLerVog==;
Date: Thu, 06 Nov 2025 16:50:35 +0200
Message-Id: <86qzubb4g4.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <jwvh5v7ntnn.fsf-monnier+emacs@HIDDEN> (message from Stefan
 Monnier on Thu, 06 Nov 2025 09:07:20 -0500)
References: <874iraevwr.fsf@HIDDEN> <86wm46g8vx.fsf@HIDDEN>
 <87a51294no.fsf@HIDDEN> <87tsz9d1te.fsf@HIDDEN>
 <87a510emzk.fsf@HIDDEN> <86y0oked82.fsf@HIDDEN>
 <87frard1os.fsf@HIDDEN> <86ms4zd0hp.fsf@HIDDEN>
 <jwvldkjpc23.fsf-monnier+emacs@HIDDEN> <861pmbcnbl.fsf@HIDDEN>
 <jwvh5v7ntnn.fsf-monnier+emacs@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Stefan Monnier <monnier@HIDDEN>
> Cc: pipcet@HIDDEN,  jonas@HIDDEN,  79760 <at> debbugs.gnu.org
> Date: Thu, 06 Nov 2025 09:07:20 -0500
> 
> Eli Zaretskii [2025-11-06 15:17:34] wrote:
> 
> >> We could provide a macro
> >> 
> >>     (defmacro with-lexical-binding (lexbind &rest code)
> >>       (declare (indent 1) (debug t))
> >>       `(eval ',(macroexp-progn code) ,lexbind))
> >> 
> >> So they could wrap their code inside
> >> 
> >>     (with-lexical-binding nil
> >>       ...)
> >
> > Should be fine, I think.
> 
> Actually, it's just as easy to use `eval`, so maybe the patch below is
> all we need?

Assuming that 'eval' will always use dynamic binding, sure.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Pip Cet <pipcet@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 06 Nov 2025 15:15:02 +0000
Resent-Message-ID: <handler.79760.B79760.176244209221612 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Stefan Monnier <monnier@HIDDEN>
Cc: Eli Zaretskii <eliz@HIDDEN>, jonas@HIDDEN, 79760 <at> debbugs.gnu.org
Received: via spool by 79760-submit <at> debbugs.gnu.org id=B79760.176244209221612
          (code B ref 79760); Thu, 06 Nov 2025 15:15:02 +0000
Received: (at 79760) by debbugs.gnu.org; 6 Nov 2025 15:14:52 +0000
Received: from localhost ([127.0.0.1]:38677 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vH1hL-0005cW-VB
	for submit <at> debbugs.gnu.org; Thu, 06 Nov 2025 10:14:52 -0500
Received: from mail-4322.protonmail.ch ([185.70.43.22]:49255)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1vH1hI-0005cM-Be
 for 79760 <at> debbugs.gnu.org; Thu, 06 Nov 2025 10:14:49 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1762442082; x=1762701282;
 bh=VNGCUte1kuv+rGqRJBN1axih49RhqiVCWcpmKjbZSX4=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector;
 b=Rm5tWa1xfk5rAZ8BppT6G37AEmHfdiXrQGIf19qam/CphV0SpWcN+BTplXQ580SeX
 3cqaZCwxTZCT1Yy1tiQNv0/nDtU/r8zZGqiEaNYdrT9czLTVhMOtcKRRvBKeSmsAUC
 /8qdO62PcsL6U+scCmuVWaIgTDfLgJMEAN/S+DsVpMIpu+6rhLigRvE7bUOYwKSFa4
 4lClgiXDnTXfsc/XZ1iJNZS5zE+/qeISThq3C++xtOrAepzs1x1G6o1a7GD1EEMC9+
 n+wWowKLn06KlBOXh3XTNQwCPh+MUNOxcmbKAL3qmVVKVcR8+PwpEQGcqvbECwfegO
 DmxXRXglVCAyg==
Date: Thu, 06 Nov 2025 15:14:19 +0000
From: Pip Cet <pipcet@HIDDEN>
Message-ID: <87pl9vb3co.fsf@HIDDEN>
In-Reply-To: <jwvh5v7ntnn.fsf-monnier+emacs@HIDDEN>
References: <874iraevwr.fsf@HIDDEN> <87tsz9d1te.fsf@HIDDEN>
 <87a510emzk.fsf@HIDDEN> <86y0oked82.fsf@HIDDEN>
 <87frard1os.fsf@HIDDEN> <86ms4zd0hp.fsf@HIDDEN>
 <jwvldkjpc23.fsf-monnier+emacs@HIDDEN> <861pmbcnbl.fsf@HIDDEN>
 <jwvh5v7ntnn.fsf-monnier+emacs@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: bac6169627b59807dc9d6038f27317750b140eda
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

"Stefan Monnier" <monnier@HIDDEN> writes:

> Eli Zaretskii [2025-11-06 15:17:34] wrote:
>
>>> From: Stefan Monnier <monnier@HIDDEN>
>>> Cc: Pip Cet <pipcet@HIDDEN>,  jonas@HIDDEN,  79760@debbugs.=
gnu.org
>>> Date: Thu, 06 Nov 2025 07:49:12 -0500
>>>
>>> >> My understanding was that the lexical-binding cookie needs to be set=
 at
>>> >> read time, not just when the code executes, because of macro expansi=
on.
>>> >
>>> > That probably means we will need to introduce a command-line option
>>> > (or maybe just using --eval will do?) to allow scripts to be run with
>>> > dynamic binding in effect.  Because even if we make lexical-binding
>>> > non-nil in --script, we still need to allow dynamic binding when it's
>>> > needed.  Any other ideas?
>>>
>>> We could provide a macro
>>>
>>>     (defmacro with-lexical-binding (lexbind &rest code)
>>>       (declare (indent 1) (debug t))
>>>       `(eval ',(macroexp-progn code) ,lexbind))
>>>
>>> So they could wrap their code inside
>>>
>>>     (with-lexical-binding nil
>>>       ...)
>>
>> Should be fine, I think.
>
> Actually, it's just as easy to use `eval`, so maybe the patch below is
> all we need?

I don't think that actually works for emacs --script; it does work for
emacs -scripteval.

> diff --git a/etc/NEWS b/etc/NEWS
> index 9243db67bce..eb1ffeed5ba 100644
> --- a/etc/NEWS
> +++ b/etc/NEWS
> @@ -3037,6 +3037,15 @@ and blocks Emacs, or does not provide ways to limi=
t how often it runs.
>  =0C
>  * Incompatible Lisp Changes in Emacs 31.1
>
> +** Files loaded from '-x' and '--script' now use lexical binding.
> +If you don't have time to adapt your script's code to the lexical
> +binding dialect (see (info "(elisp)Converting to Lexical Binding")),
> +you can wrap your code in:
> +
> +    #!/usr/bin/emacs --script
         ^^^^^^^^^^^^^^^^^^^^^^^

I realize this is just an example, but can we please find a better
string to put here? I suggest "/usr/bin/env -S emacs --batch --script",
which

1. works on weird systems like guix (no /usr/bin except for env)
2. looks in your $PATH on normal systems
3. avoids reading user init files
4. can be expanded to include further arguments
5. avoids -scripteval (aka -x) and its weirdness

It'll break on systems which don't have /usr/bin/env, but those are much
less common than systems where emacs doesn't live in /usr/bin (or,
worse, it's the wrong version).

Pip





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Pip Cet <pipcet@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 07 Nov 2025 09:19:01 +0000
Resent-Message-ID: <handler.79760.B79760.176250713612219 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Stefan Monnier <monnier@HIDDEN>
Cc: Eli Zaretskii <eliz@HIDDEN>, jonas@HIDDEN, 79760 <at> debbugs.gnu.org
Received: via spool by 79760-submit <at> debbugs.gnu.org id=B79760.176250713612219
          (code B ref 79760); Fri, 07 Nov 2025 09:19:01 +0000
Received: (at 79760) by debbugs.gnu.org; 7 Nov 2025 09:18:56 +0000
Received: from localhost ([127.0.0.1]:45147 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vHIcS-0003B1-Ba
	for submit <at> debbugs.gnu.org; Fri, 07 Nov 2025 04:18:56 -0500
Received: from mail-4322.protonmail.ch ([185.70.43.22]:17689)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1vHIcP-0003Ag-6Z
 for 79760 <at> debbugs.gnu.org; Fri, 07 Nov 2025 04:18:54 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1762507126; x=1762766326;
 bh=zCdVu3xxPkBDDgsRLZ8Wpsm+WM0+ILWCR3ssWHC8fcU=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector;
 b=BCC6K8lZOUAvga5NrSGLB5sfFhKl/Mzl79UXz5eLnFq4FyWr0/zuleAD531rpEPPN
 4Zh8JQnpfH/Cwpd9BfzdGvb1WDPdmmjozeVd2TEOhvSrjJUhjtUliGt82jd12oUDxr
 6hDki2S/FGathJSbrcn4ZRcvTt6h0sGn9UgLklBXF6p1sCEGaDhR7ESGjxoQEt5j8G
 O63sIlvRYu58yF18qNVixEfJ79OUAF+/NDB2k11mZBBSeLYYMPmgvoIuUbQtQk3C9x
 FnqFvr8zXoCAlGnrX3FtwQRx7atzY3FfHO185wIKa+dAQ+JbVR9OOchfC8ZyQlHPO9
 zNZdYLg8KuFRw==
Date: Fri, 07 Nov 2025 09:18:39 +0000
From: Pip Cet <pipcet@HIDDEN>
Message-ID: <87wm429p5g.fsf@HIDDEN>
In-Reply-To: <jwvh5v7ntnn.fsf-monnier+emacs@HIDDEN>
References: <874iraevwr.fsf@HIDDEN> <87tsz9d1te.fsf@HIDDEN>
 <87a510emzk.fsf@HIDDEN> <86y0oked82.fsf@HIDDEN>
 <87frard1os.fsf@HIDDEN> <86ms4zd0hp.fsf@HIDDEN>
 <jwvldkjpc23.fsf-monnier+emacs@HIDDEN> <861pmbcnbl.fsf@HIDDEN>
 <jwvh5v7ntnn.fsf-monnier+emacs@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: 156b4f0cc368d56ed69f57990c114189de7083bb
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Pip Cet <pipcet@HIDDEN> writes:

> "Stefan Monnier" <monnier@HIDDEN> writes:
>
>> Eli Zaretskii [2025-11-06 15:17:34] wrote:
>>
>>>> From: Stefan Monnier <monnier@HIDDEN>
>>>> Cc: Pip Cet <pipcet@HIDDEN>,  jonas@HIDDEN,  79760@debbugs=
.gnu.org
>>>> Date: Thu, 06 Nov 2025 07:49:12 -0500
>>>>
>>>> >> My understanding was that the lexical-binding cookie needs to be se=
t at
>>>> >> read time, not just when the code executes, because of macro expans=
ion.
>>>> >
>>>> > That probably means we will need to introduce a command-line option
>>>> > (or maybe just using --eval will do?) to allow scripts to be run wit=
h
>>>> > dynamic binding in effect.  Because even if we make lexical-binding
>>>> > non-nil in --script, we still need to allow dynamic binding when it'=
s
>>>> > needed.  Any other ideas?
>>>>
>>>> We could provide a macro
>>>>
>>>>     (defmacro with-lexical-binding (lexbind &rest code)
>>>>       (declare (indent 1) (debug t))
>>>>       `(eval ',(macroexp-progn code) ,lexbind))
>>>>
>>>> So they could wrap their code inside
>>>>
>>>>     (with-lexical-binding nil
>>>>       ...)
>>>
>>> Should be fine, I think.
>>
>> Actually, it's just as easy to use `eval`, so maybe the patch below is
>> all we need?
>
> I don't think that actually works for emacs --script; it does work for
> emacs -scripteval.

Proposed patch:

From 5fa18e08471120808a54540764bd896a27313a7e Mon Sep 17 00:00:00 2001
From: Pip Cet <pipcet@HIDDEN>
Date: Fri, 7 Nov 2025 09:12:55 +0000
Subject: [PATCH] The --script option now enforces lexical binding (bug#7976=
0)

* etc/NEWS: Document the change.
* lisp/startup.el (command-line--load-script): Set 'lexical-binding';
if we delete the first line, insert a new line to preserve line
numbers.
(command-line--eval-script): Set 'lexical-binding'.
---
 etc/NEWS        | 10 ++++++++++
 lisp/startup.el |  6 ++++--
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/etc/NEWS b/etc/NEWS
index 0dbe168d8c1..47cdd54f02b 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -3031,6 +3031,16 @@ and blocks Emacs, or does not provide ways to limit =
how often it runs.
 =0C
 * Incompatible Lisp Changes in Emacs 31.1
=20
+** Files loaded from '-x' and '--script' now use lexical binding.
+If you don't have time to adapt your script's code to the lexical
+binding dialect (see (info "(elisp)Converting to Lexical Binding")),
+you can wrap your code in:
+
+    #!/usr/bin/env -S emacs --batch --script
+    (eval
+     '(progn
+        YOUR CODE HERE))
+
 +++
 ** String mutation has been restricted further.
 'aset' on unibyte strings now requires the new character to be a single
diff --git a/lisp/startup.el b/lisp/startup.el
index aab8fcfe9f2..5bf03d19e95 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -2961,12 +2961,14 @@ command-line--load-script
    file file nil t
    (lambda (buffer file)
      (with-current-buffer buffer
+       (setq-local lexical-binding t)
        (goto-char (point-min))
        ;; Removing the #! and then calling `eval-buffer' will make the
        ;; reader not signal an error if it then turns out that the
        ;; buffer is empty.
        (when (looking-at "#!")
-         (delete-line))
+         (delete-line)
+         (insert ";; -*- lexical-binding: t -*-\n"))
        (eval-buffer buffer nil file nil t)))))
=20
 (defun command-line--eval-script (file)
@@ -2974,7 +2976,7 @@ command-line--eval-script
    file file nil t
    (lambda (buffer _)
      (with-current-buffer buffer
-       (goto-char (point-min))
+       (setq-local lexical-binding t)
        (when (looking-at "#!")
          (forward-line))
        (let (value form)
--=20
2.51.1





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 07 Nov 2025 11:30:02 +0000
Resent-Message-ID: <handler.79760.B79760.176251498932459 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Pip Cet <pipcet@HIDDEN>
Cc: 79760 <at> debbugs.gnu.org, jonas@HIDDEN, monnier@HIDDEN
Received: via spool by 79760-submit <at> debbugs.gnu.org id=B79760.176251498932459
          (code B ref 79760); Fri, 07 Nov 2025 11:30:02 +0000
Received: (at 79760) by debbugs.gnu.org; 7 Nov 2025 11:29:49 +0000
Received: from localhost ([127.0.0.1]:45463 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vHKf7-0008RS-0J
	for submit <at> debbugs.gnu.org; Fri, 07 Nov 2025 06:29:49 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:48200)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vHKf4-0008Qv-5a
 for 79760 <at> debbugs.gnu.org; Fri, 07 Nov 2025 06:29:47 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1vHKew-0005nw-Oi; Fri, 07 Nov 2025 06:29:38 -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=NtBpZ3PdVctmQka1lV1vr6R1/VXXxR0jhKR2geyuBLk=; b=SP0XcgHkWHCADH64yD7E
 dyCrZ9VH9ugmDEy2SveGNAwARB5ENjgI2hfyea0bSjyLvMKo2eEq6CQ3By0zSJKAW90kcUlwxQUpg
 agLE81vBPlUWM29gxSmwi2G9GPbYhAD8C6GwphbKl+3HMIkJFYtkzRv49e1SY5CIe+ZUqntT3dQa2
 HyHPOTPSlAo5HKd7nfXH2tLrf2LidDtrnlViUcypETNHjWgmG63L12tZ+KcpC0g0vK/+k7LPbBFVF
 a/+d7zWgRMS6ClwUqvVJAm6obBXljrvqhLVUHVPXVVCVohfLcPwKuuM0ylGSONbuqpLezFLS5wngE
 GhkRBpQNJib3xw==;
Date: Fri, 07 Nov 2025 13:29:35 +0200
Message-Id: <86ms4y9j34.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <87wm429p5g.fsf@HIDDEN> (message from Pip Cet on Fri, 07
 Nov 2025 09:18:39 +0000)
References: <874iraevwr.fsf@HIDDEN> <87tsz9d1te.fsf@HIDDEN>
 <87a510emzk.fsf@HIDDEN> <86y0oked82.fsf@HIDDEN>
 <87frard1os.fsf@HIDDEN> <86ms4zd0hp.fsf@HIDDEN>
 <jwvldkjpc23.fsf-monnier+emacs@HIDDEN> <861pmbcnbl.fsf@HIDDEN>
 <jwvh5v7ntnn.fsf-monnier+emacs@HIDDEN> <87wm429p5g.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Fri, 07 Nov 2025 09:18:39 +0000
> From: Pip Cet <pipcet@HIDDEN>
> Cc: Eli Zaretskii <eliz@HIDDEN>, jonas@HIDDEN, 79760 <at> debbugs.gnu.org
> 
> @@ -2974,7 +2976,7 @@ command-line--eval-script
>     file file nil t
>     (lambda (buffer _)
>       (with-current-buffer buffer
> -       (goto-char (point-min))
> +       (setq-local lexical-binding t)
>         (when (looking-at "#!")
>           (forward-line))
>         (let (value form)

Why should we delete the goto-char line?




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Pip Cet <pipcet@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 07 Nov 2025 11:59:02 +0000
Resent-Message-ID: <handler.79760.B79760.17625167165145 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: 79760 <at> debbugs.gnu.org, jonas@HIDDEN, monnier@HIDDEN
Received: via spool by 79760-submit <at> debbugs.gnu.org id=B79760.17625167165145
          (code B ref 79760); Fri, 07 Nov 2025 11:59:02 +0000
Received: (at 79760) by debbugs.gnu.org; 7 Nov 2025 11:58:36 +0000
Received: from localhost ([127.0.0.1]:45572 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vHL6y-0001Ku-7O
	for submit <at> debbugs.gnu.org; Fri, 07 Nov 2025 06:58:36 -0500
Received: from mail-10630.protonmail.ch ([79.135.106.30]:33391)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1vHL6u-0001Kj-C8
 for 79760 <at> debbugs.gnu.org; Fri, 07 Nov 2025 06:58:34 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1762516704; x=1762775904;
 bh=2QR3kc6uEKtOMaOJTpDbahqQiKFRRF0YEcNcXVLxZmE=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector;
 b=SfOUQEk5QR9zXpEf+IqzshNoYqNQQHYScnY1Y5/OSMmWEjlFuRFZetbCGm3KSOCXq
 IWcemkkr7zJAuYQnCjm8OYKMIUZ+tBDH8lnCW8QAQW5PiZCDDHSzZYyvTXOdCcjBBS
 glYihltsMT/3kCVdlqbPNkhGZH7mBngZz9p57C1sk0T99tj4FrSM4Nl0J5If1MKqiW
 RcHbZhPI5FqDFRrdQVrcwtw/Iyz4XFwQCE/4VvBTLbxfVo1Q0Vgdg1Fhf7PQMUSpoL
 T5Z7l+P9T/MWzsUHk6t+Ia95kjuuomOvU/zNrHQymLpYJbqMzpMjnIgge6xbzoMFKJ
 19i+Td7jKt9tw==
Date: Fri, 07 Nov 2025 11:58:18 +0000
From: Pip Cet <pipcet@HIDDEN>
Message-ID: <871pma3vhn.fsf@HIDDEN>
In-Reply-To: <86ms4y9j34.fsf@HIDDEN>
References: <874iraevwr.fsf@HIDDEN> <86y0oked82.fsf@HIDDEN>
 <87frard1os.fsf@HIDDEN> <86ms4zd0hp.fsf@HIDDEN>
 <jwvldkjpc23.fsf-monnier+emacs@HIDDEN> <861pmbcnbl.fsf@HIDDEN>
 <jwvh5v7ntnn.fsf-monnier+emacs@HIDDEN> <87wm429p5g.fsf@HIDDEN>
 <86ms4y9j34.fsf@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: 01aff21cbe663f76777ccdedb044e267109c8716
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

"Eli Zaretskii" <eliz@HIDDEN> writes:

>> Date: Fri, 07 Nov 2025 09:18:39 +0000
>> From: Pip Cet <pipcet@HIDDEN>
>> Cc: Eli Zaretskii <eliz@HIDDEN>, jonas@HIDDEN, 79760@HIDDEN=
g
>>
>> @@ -2974,7 +2976,7 @@ command-line--eval-script
>>     file file nil t
>>     (lambda (buffer _)
>>       (with-current-buffer buffer
>> -       (goto-char (point-min))
>> +       (setq-local lexical-binding t)
>>         (when (looking-at "#!")
>>           (forward-line))
>>         (let (value form)
>
> Why should we delete the goto-char line?

Thanks for spotting that! That change was unintended (it happens to be
harmless because load-with-code-conversion leaves point at BOB, but best
not to rely on that).

Pip





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 07 Nov 2025 12:06:02 +0000
Resent-Message-ID: <handler.79760.B79760.17625171306265 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Pip Cet <pipcet@HIDDEN>
Cc: 79760 <at> debbugs.gnu.org, jonas@HIDDEN, monnier@HIDDEN
Received: via spool by 79760-submit <at> debbugs.gnu.org id=B79760.17625171306265
          (code B ref 79760); Fri, 07 Nov 2025 12:06:02 +0000
Received: (at 79760) by debbugs.gnu.org; 7 Nov 2025 12:05:30 +0000
Received: from localhost ([127.0.0.1]:45589 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vHLDd-0001cz-KX
	for submit <at> debbugs.gnu.org; Fri, 07 Nov 2025 07:05:29 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:37554)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vHLDb-0001bw-Sn
 for 79760 <at> debbugs.gnu.org; Fri, 07 Nov 2025 07:05:28 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1vHLDV-00017N-UK; Fri, 07 Nov 2025 07:05:21 -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=dbScm04OiIvDima+jNGuZCdKqOSI+geUUG9n7+gXz3Q=; b=qh0B03jCciPbGkOFeFhs
 cfkPMQVIQMUm1/Cdv2UP/BW8w8a+axddcljv7bS+FbLpG1iGAqWGjGMX49ur4Md9oiGcqW+mLGNxS
 H/iUOpcwoxC5zRrY/IjmWOXg+7W1IHjjMt70/k6jABHpGKeM60L/8E1xTjePaJ1qTss1lHhNyLgYf
 DWJ9JN46m2yyQNdgVWl5C/gPOkjdQ7WavCFtpVTSaqI3r53nzwZWTOI2aQ3UuANwjCg5K/x6Q8K9d
 YUA3xeirLe9e3TgZWgZ6wTs2BTgdl6RVZVINoVyBoZqsHkYmvAIrJxEoFJvnTb7RRzyxHasJO2gRY
 DBILi6k1psFfFw==;
Date: Fri, 07 Nov 2025 14:05:17 +0200
Message-Id: <86jz029hfm.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <871pma3vhn.fsf@HIDDEN> (message from Pip Cet on Fri, 07
 Nov 2025 11:58:18 +0000)
References: <874iraevwr.fsf@HIDDEN> <86y0oked82.fsf@HIDDEN>
 <87frard1os.fsf@HIDDEN> <86ms4zd0hp.fsf@HIDDEN>
 <jwvldkjpc23.fsf-monnier+emacs@HIDDEN> <861pmbcnbl.fsf@HIDDEN>
 <jwvh5v7ntnn.fsf-monnier+emacs@HIDDEN> <87wm429p5g.fsf@HIDDEN>
 <86ms4y9j34.fsf@HIDDEN> <871pma3vhn.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Fri, 07 Nov 2025 11:58:18 +0000
> From: Pip Cet <pipcet@HIDDEN>
> Cc: monnier@HIDDEN, jonas@HIDDEN, 79760 <at> debbugs.gnu.org
> 
> "Eli Zaretskii" <eliz@HIDDEN> writes:
> 
> >> Date: Fri, 07 Nov 2025 09:18:39 +0000
> >> From: Pip Cet <pipcet@HIDDEN>
> >> Cc: Eli Zaretskii <eliz@HIDDEN>, jonas@HIDDEN, 79760 <at> debbugs.gnu.org
> >>
> >> @@ -2974,7 +2976,7 @@ command-line--eval-script
> >>     file file nil t
> >>     (lambda (buffer _)
> >>       (with-current-buffer buffer
> >> -       (goto-char (point-min))
> >> +       (setq-local lexical-binding t)
> >>         (when (looking-at "#!")
> >>           (forward-line))
> >>         (let (value form)
> >
> > Why should we delete the goto-char line?
> 
> Thanks for spotting that! That change was unintended (it happens to be
> harmless because load-with-code-conversion leaves point at BOB, but best
> not to rely on that).

Agreed.

I'm okay with the rest of the patch, but let's hear from Stefan (and
Jonas if he has comments).




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79760: Missing =?UTF-8?Q?=E2=80=98lexical-binding=E2=80=99?= cookie warning for scripts
Resent-From: Michael Albinus <michael.albinus@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 07 Nov 2025 12:31:02 +0000
Resent-Message-ID: <handler.79760.B79760.176251865818045 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79760
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 79760 <at> debbugs.gnu.org
Cc: pipcet@HIDDEN, jonas@HIDDEN, eliz@HIDDEN, monnier@HIDDEN
X-Debbugs-Original-To: Pip Cet via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
X-Debbugs-Original-Cc: 79760 <at> debbugs.gnu.org, Pip Cet <pipcet@HIDDEN>, jonas@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, Stefan Monnier <monnier@HIDDEN>
Received: via spool by 79760-submit <at> debbugs.gnu.org id=B79760.176251865818045
          (code B ref 79760); Fri, 07 Nov 2025 12:31:02 +0000
Received: (at 79760) by debbugs.gnu.org; 7 Nov 2025 12:30:58 +0000
Received: from localhost ([127.0.0.1]:45628 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vHLcI-0004fj-4a
	for submit <at> debbugs.gnu.org; Fri, 07 Nov 2025 07:30:58 -0500
Received: from mout.gmx.net ([212.227.15.18]:49875)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <michael.albinus@HIDDEN>)
 id 1vHLcD-0004KI-K1
 for 79760 <at> debbugs.gnu.org; Fri, 07 Nov 2025 07:30:55 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de;
 s=s31663417; t=1762518647; x=1763123447; i=michael.albinus@HIDDEN;
 bh=wJr8vRjIeszQzzli0gl6H3vpJThalPf4JAZQnMHXyQg=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date:
 Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:cc:
 content-transfer-encoding:content-type:date:from:message-id:
 mime-version:reply-to:subject:to;
 b=KoyTZucriIQcQpmeueSWnCNkPwqabVpnJK5doM0T8AEvGpbA9ZqQHYSSbmPafOzF
 W8gaucvTSpCz9WRFC3HccqGmjCgn/7diJMvd66uAoBhu9WuL01UxCYBTo4G3rHE+g
 hpEh/gZXCn/ZkTw+p9K0P5P3lGSncgb0KSm3peOa8QU8H+WciP8hPzisxnGu5ks3X
 EPWneCNJWA55tf3epWXExcEzKeYjwh4ZTYsV53bInvFJFFkiaIaxaVFvuu11/7Os1
 5cethb8O4r7tk1V5+pQunLhHD93XQQWkVszb3yGLUUQ9OWRJn5xh7wYk6TzPIJhEJ
 Y09tXYbHd7gF6F/2lg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from gandalf.gmx.de ([185.89.37.61]) by mail.gmx.net (mrgmx005
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mg6e4-1vs4s50enW-00jkA6; Fri, 07
 Nov 2025 13:30:47 +0100
From: Michael Albinus <michael.albinus@HIDDEN>
In-Reply-To: <87wm429p5g.fsf@HIDDEN>
References: <874iraevwr.fsf@HIDDEN> <87tsz9d1te.fsf@HIDDEN>
 <87a510emzk.fsf@HIDDEN> <86y0oked82.fsf@HIDDEN>
 <87frard1os.fsf@HIDDEN> <86ms4zd0hp.fsf@HIDDEN>
 <jwvldkjpc23.fsf-monnier+emacs@HIDDEN> <861pmbcnbl.fsf@HIDDEN>
 <jwvh5v7ntnn.fsf-monnier+emacs@HIDDEN>
 <87wm429p5g.fsf@HIDDEN>
Date: Fri, 07 Nov 2025 13:30:45 +0100
Message-ID: <871pma81oq.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Provags-ID: V03:K1:W5Lbi/RWJ4cRHn4Mi+KBHvtxAExNlfRuU5Dyta0eOXGV2LMdHNn
 hbojWKBgNx92Btl+B/2PBTqrCfhelu8KgWUfZmOS5cZvztOj8bQnDEtK0dIOP3MRe9qk+wC
 Q9MAsVdHiZZ2GDjEMMbuREfDRMSdZQXW5+v5rTbBAL+9DRKiTHknQ8eYsZWglpvtMRpqwHI
 tHWhtDvQwWwx9k2Z4Pagw==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:jMiXKkfQwlA=;CyELsiB4c/KM5bkL0VNEhILesCJ
 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
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Pip Cet via "Bug reports for GNU Emacs, the Swiss army knife of text
editors" <bug-gnu-emacs@HIDDEN> writes:

Hi,

> diff --git a/etc/NEWS b/etc/NEWS
> index 0dbe168d8c1..47cdd54f02b 100644
> --- a/etc/NEWS
> +++ b/etc/NEWS
> @@ -3031,6 +3031,16 @@ and blocks Emacs, or does not provide ways to lim=
it how often it runs.
>  =0C
>  * Incompatible Lisp Changes in Emacs 31.1
> =20
> +** Files loaded from '-x' and '--script' now use lexical binding.
> +If you don't have time to adapt your script's code to the lexical
> +binding dialect (see (info "(elisp)Converting to Lexical Binding")),

In etc/NEWS, we say something like

=2D-8<---------------cut here---------------start------------->8---
binding dialect (see the Info node "(elisp) Converting to Lexical Binding"=
),
=2D-8<---------------cut here---------------end--------------->8---

> +you can wrap your code in:
> +
> +    #!/usr/bin/env -S emacs --batch --script
> +    (eval
> +     '(progn
> +        YOUR CODE HERE))
> +

Best regards, Michael.





Last modified: Fri, 7 Nov 2025 12:30:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.