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
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
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?
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
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
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
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?
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
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.
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
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?
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
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.
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)))
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.
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
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
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?
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
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).
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.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.