GNU bug report logs - #67321
29.1.90; Different parsing rules for -*- lexical-binding:t; -*- in different circumstances

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Sebastian Miele <iota@HIDDEN>; Keywords: confirmed; merged with #64272; dated Tue, 21 Nov 2023 08:44:01 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.
Added tag(s) confirmed. Request was from Stefan Kangas <stefankangas@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 67321 <at> debbugs.gnu.org:


Received: (at 67321) by debbugs.gnu.org; 22 Nov 2023 19:18:56 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Nov 22 14:18:56 2023
Received: from localhost ([127.0.0.1]:59911 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r5skS-00042g-4V
	for submit <at> debbugs.gnu.org; Wed, 22 Nov 2023 14:18:56 -0500
Received: from mail-ed1-x536.google.com ([2a00:1450:4864:20::536]:44481)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <gerd.moellmann@HIDDEN>) id 1r5skP-00042T-VG
 for 67321 <at> debbugs.gnu.org; Wed, 22 Nov 2023 14:18:54 -0500
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-548a2c20f50so167713a12.1
 for <67321 <at> debbugs.gnu.org>; Wed, 22 Nov 2023 11:18:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1700680724; x=1701285524; darn=debbugs.gnu.org;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=yB+wWa2zFt/gzfda/X+1fMfehIGZsu8noMq1ui47g5g=;
 b=Ds2d6zepawFRl00efOhQvgOTQQ8dgEV01LQnE3/v94dnyLwIADym1tlUYD8wYKsGzy
 FQa6qrvVTOUnZ0aigxqG/NqqpVsOw5HKqlWNT4ZamBvZnXK5hktP4B5C4D8teWtm9gJ4
 faFPVHKU0VqExrxkrjPrpSxj5d7PI2WCP6zRBClsnZjKyY304UDCwy92Xhogl8q2ykm7
 SLM+jzIZP4ctKkTahWTNuTbnMbq6ZXfqzJRK7jgDMdyEiOHjy1DOLpTYr81iSP1ZgLIU
 mREfKApgN1bOn1rraR34HsSoKUebC5pNAV52k4vOMWh53hYgT1VGy7olgupGJD7B1x6A
 YZAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1700680724; x=1701285524;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date
 :message-id:reply-to;
 bh=yB+wWa2zFt/gzfda/X+1fMfehIGZsu8noMq1ui47g5g=;
 b=R4GnDFiB/GxtdDoOkRhPYIJBPOIbgx6PcmdjRolJg/8xamHy0pIkWZi6gX0dXcZTqo
 wAX6yeo8Up2Jnp4XjFH0moUNppulbv8KhNmuLHa16HaDwKdXeoAd2KIZgaek/+jpBTSW
 vg98KlLszIhXM9L3Ka8Eg0SPLkutlWukJCGqHTFppIfyuuZlhdNYi/3000x/Gz0F3GWG
 5zKocnT/rZoCalz/VTxQFPK66guz5tnZQ6cpJciESQy42DD8g4Xgva713c5gvTijg0o4
 BQx2s1kW0RCZgpcyudyZ1Awa5l8uMqGhSh7BgjsKrxaw8DJWZivoQeO6umBurCEaL+j3
 Mmaw==
X-Gm-Message-State: AOJu0Yy1ZatjzsGq4sEHq6o+6NX3FNk1ar/letwaRuxP+ITSMbrckUmz
 nRxK+O/1gj9YIp8FXpoHhHgzKEJ+ooM=
X-Google-Smtp-Source: AGHT+IHsW8p+n03jXfujKMmM7OzB0irsVFpq+DotvPa3kA5aDv1K0GVGhA7AF/ujQ6JSppjBBEL19A==
X-Received: by 2002:aa7:dad8:0:b0:53b:9948:cc1f with SMTP id
 x24-20020aa7dad8000000b0053b9948cc1fmr2827463eds.12.1700680723735; 
 Wed, 22 Nov 2023 11:18:43 -0800 (PST)
Received: from Pro.fritz.box (p4fe3a2b1.dip0.t-ipconnect.de. [79.227.162.177])
 by smtp.gmail.com with ESMTPSA id
 p13-20020aa7d30d000000b005488ae52752sm106950edq.18.2023.11.22.11.18.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 22 Nov 2023 11:18:43 -0800 (PST)
From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>
To: Sebastian Miele <iota@HIDDEN>
Subject: Re: bug#67321: 29.1.90; Different parsing rules for -*-
 lexical-binding:t; -*- in different circumstances
In-Reply-To: <878r6pfye6.fsf@HIDDEN> (Sebastian Miele's message of "Wed,
 22 Nov 2023 19:10:06 +0100")
References: <8734wzts37.fsf@HIDDEN> <m24jhfmliw.fsf@HIDDEN>
 <87cyw1gb9c.fsf@HIDDEN> <m2msv5sukc.fsf@HIDDEN>
 <878r6pfye6.fsf@HIDDEN>
Date: Wed, 22 Nov 2023 20:18:41 +0100
Message-ID: <m2h6ldsijy.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 67321
Cc: 67321 <at> debbugs.gnu.org
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 (-)

Sebastian Miele <iota@HIDDEN> writes:

>> cat >somefile <<EOF
>> ; -*- lexical-binding: t -*-
>> (message "%s" lexical-binding)
>> EOF
>> emacs --script somefile
>
> Didn't think of this either.  I'm not a big fan of the temporary file,
> but it definitely is fine.

It's kind of a standard example of how to use here-documents.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#67321; Package emacs. Full text available.

Message received at 67321 <at> debbugs.gnu.org:


Received: (at 67321) by debbugs.gnu.org; 22 Nov 2023 18:15:12 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Nov 22 13:15:12 2023
Received: from localhost ([127.0.0.1]:59881 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r5rkm-0002J3-FJ
	for submit <at> debbugs.gnu.org; Wed, 22 Nov 2023 13:15:12 -0500
Received: from mout-p-202.mailbox.org ([80.241.56.172]:38680)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <iota@HIDDEN>) id 1r5rkk-0002In-CB
 for 67321 <at> debbugs.gnu.org; Wed, 22 Nov 2023 13:15:11 -0500
Received: from smtp1.mailbox.org (smtp1.mailbox.org [10.196.197.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-202.mailbox.org (Postfix) with ESMTPS id 4Sb8Xz0GKJz9t0J;
 Wed, 22 Nov 2023 19:14:59 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=whxvd.name; s=MBO0001; 
 t=1700676899;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 content-transfer-encoding:content-transfer-encoding:
 in-reply-to:in-reply-to:references:references;
 bh=Bqqn7+/l3UNzPcfAut3Mdd2NBAxRJtMoL+tXn5KXL/0=;
 b=vl4UkaYVIR+vjTe/jMkjCYzIEEWIsy2aVqG+5KLj3zcCmE9bHK7wS0uJaaaoAVQqMoCkgx
 Kk4MMDXkhvULdg1uXPBfRirv9dMw2BsBIv2JVBlA02cvJKaKaqHDcG5T86tGGxEKzXdpDH
 5+V7t38k3/XAGv/Vu6t9ZdGPC6Ul6AEdMAaDhvrWtPl2AlNpWs1/D+MoyPajMwbKQBegfE
 8SjwiYksdLO27AZep6WUIlDJsMSyQUCKMXk4fbwux5yeOSnnWq8m9jYBvdyoCz7llte0AM
 M1waujjQGX70+7fFGE20rKSWr2EuIviq52phq6Ycxw4YQYG2XNIzef+RiB2PCA==
References: <8734wzts37.fsf@HIDDEN> <m24jhfmliw.fsf@HIDDEN>
 <87cyw1gb9c.fsf@HIDDEN> <m2msv5sukc.fsf@HIDDEN>
From: Sebastian Miele <iota@HIDDEN>
To: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN>
Subject: Re: bug#67321: 29.1.90; Different parsing rules for -*-
 lexical-binding:t; -*- in different circumstances
Date: Wed, 22 Nov 2023 19:10:06 +0100
In-reply-to: <m2msv5sukc.fsf@HIDDEN>
Message-ID: <878r6pfye6.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 67321
Cc: 67321 <at> debbugs.gnu.org
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 (-)

> From: Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN>
> Date: Wed, 2023-11-22 15:59 +0100
>
> Thanks, Sebastian. I got the trick, though it took me a minute. Clever,
> clever :-).

I want to explicitly have mentioned that I did not come up with the
trick by myself.  (And it took me more than a minute to grok it.)

> TBH, I don't see a good reason why that should be used instead of the
> much simpler
>
> cat >somefile <<EOF
> ; -*- lexical-binding: t -*-
> (message "%s" lexical-binding)
> EOF
> emacs --script somefile

Didn't think of this either.  I'm not a big fan of the temporary file,
but it definitely is fine.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#67321; Package emacs. Full text available.

Message received at 67321 <at> debbugs.gnu.org:


Received: (at 67321) by debbugs.gnu.org; 22 Nov 2023 14:59:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Nov 22 09:59:30 2023
Received: from localhost ([127.0.0.1]:59564 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r5ohO-00059s-1P
	for submit <at> debbugs.gnu.org; Wed, 22 Nov 2023 09:59:30 -0500
Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]:55430)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <gerd.moellmann@HIDDEN>) id 1r5ohL-00059e-Ps
 for 67321 <at> debbugs.gnu.org; Wed, 22 Nov 2023 09:59:28 -0500
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-548f74348f7so3201231a12.2
 for <67321 <at> debbugs.gnu.org>; Wed, 22 Nov 2023 06:59:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1700665158; x=1701269958; darn=debbugs.gnu.org;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=xuahfimlWucREsgDxImXAFR2f7qkjjjw0BKMheFpk6I=;
 b=gW3O8hB2inG9bMJbcm7tmYdes0dR208UgIZ09lsbWMV4hxce8wvNAwb2LPhijrqh6c
 4OeaRB4j4AQw4wYH/RyLuoEbE3HposQgMZ1twWKCGMINkURX7DwiaEXNKDNZ/6H4t9Qt
 5bxRZm88I51lhZp8g90ZAZyvOEgn1ABsFYy+HDHGaq0NAnfP0v9/w+WNaYHbQoqjociz
 6QVW7Ai06w02hPRG87/ke3DddFtPb6LR+zowQQGNYAwUv98FJBbYYS3W1vt9X2n172jh
 EL8yuXCLtKs8GENAbNvT+WEP9GUbjevtqRmhGP1LIPlLcYoDgEdRw0wmtYvq2yjDiZ7Z
 DOQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1700665158; x=1701269958;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from
 :to:cc:subject:date:message-id:reply-to;
 bh=xuahfimlWucREsgDxImXAFR2f7qkjjjw0BKMheFpk6I=;
 b=tuaZf2fh6PlkEJ9Zg9/5dhBemcNT4P5UjMiB2i912Bsmeet+OJrB5Kn3XPZDsIGu69
 B3VcuJ5uDOYApYeCrjkzNH1PNHdxmMDaHr/Izvw/Y6aSg3kyZICe25fdeW92gPNAOww3
 EOhfjbkCvbTsL8pkkFPZxrAEr64R901rT3wWl7zbjPaT7uA/KxNspyAZms2MyW3PbzVe
 cpVa3jM8iK3lT9Htr50mMSsanoOJabjTt0XDPxlEAWdr1Wc+KEJK0SerNmEYPC5ZuTM1
 Vkp6Qb+jaJIRc2PVRwt9Pk/cWBtOpsI1vaVeNiOm7LfDQHJExorf86Km7UUIRUAddLFY
 LFfw==
X-Gm-Message-State: AOJu0Yy8NaQb8KVSoZLq7FShM/Wu7xmO5/K4Fk7RpxanwEC937rkKqsN
 yggHr9UMDFvM1cVqumy+37+uluUrBYU=
X-Google-Smtp-Source: AGHT+IFby3eR/YehIzqQnjfQcgTC689ejGOv6VQTtXAu7yNf/NsG2sEm1uAFBcL8AYs/TGPHvL2MLQ==
X-Received: by 2002:a05:6402:7d6:b0:53e:e6eb:c838 with SMTP id
 u22-20020a05640207d600b0053ee6ebc838mr2149807edy.8.1700665157724; 
 Wed, 22 Nov 2023 06:59:17 -0800 (PST)
Received: from Pro.fritz.box (p4fe3a2b1.dip0.t-ipconnect.de. [79.227.162.177])
 by smtp.gmail.com with ESMTPSA id
 w6-20020aa7d286000000b00548b96a52besm3707459edq.78.2023.11.22.06.59.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 22 Nov 2023 06:59:17 -0800 (PST)
From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>
To: Sebastian Miele <iota@HIDDEN>
Subject: Re: bug#67321: 29.1.90; Different parsing rules for -*-
 lexical-binding:t; -*- in different circumstances
In-Reply-To: <87cyw1gb9c.fsf@HIDDEN> (Sebastian Miele's message of "Wed,
 22 Nov 2023 14:07:38 +0100")
References: <8734wzts37.fsf@HIDDEN> <m24jhfmliw.fsf@HIDDEN>
 <87cyw1gb9c.fsf@HIDDEN>
Date: Wed, 22 Nov 2023 15:59:15 +0100
Message-ID: <m2msv5sukc.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 67321
Cc: 67321 <at> debbugs.gnu.org
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 (-)

Sebastian Miele <iota@HIDDEN> writes:

>> From: Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN>
>> Date: Tue, 2023-11-21 11:46 +0100
>>
>>>   #!/bin/sh
>>>   : ; exec emacs --script "$0" -- "$@" #; -*- lexical-binding: t; mode:=
 emacs-lisp; -*-
>>>
>>>   (defmacro lexical-binding-p ()
>>>     '(let* ((x t)
>>>             (f (lambda () x))
>>>             (x nil))
>>>        (funcall f)))
>>>
>>>   (message "%s %s" lexical-binding (lexical-binding-p))
>>
>> Can I ask why that idiom is used?
>
> The idiom allows arbitrary shell processing before, and possibly even
> after, actually running Emacs in the script.
>
> See https://github.com/doomemacs/doomemacs/blob/master/bin/doom for an
> example including both pre- and postprocessing, and lots of comments
> about what is done there, and why.
>
> Another case that recently popped up on emacs-devel is that it allows to
> insert the "--" for cleanly separating the script commandline options
> from options that Emacs may interpret, see
> https://lists.gnu.org/archive/html/emacs-devel/2023-11/msg00896.html.
>
> I do not know anymore why I considered the trick in the past.  I do not
> want to spend the time to look into my scripts to find that bits that
> would become cumbersome without such tricks.  Because of the problem
> with lexical-binding not being picked up, and because I, for now, have
> the luxury of only using Linux, I can use another trick.  But being able
> to mangle the command line of Emacs before running Emacs definitely is a
> useful thing.  The portable alternative would be to have one separate
> (shell) wrapper around every Emacs script that needs such mangling.

Thanks, Sebastian. I got the trick, though it took me a minute. Clever,
clever :-).

TBH, I don't see a good reason why that should be used instead of the
much simpler

cat >somefile <<EOF
; -*- lexical-binding: t -*-
(message "%s" lexical-binding)
EOF
emacs --script somefile

So, I personally would not like to spend the time to change Emacs,
sorry.





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#67321; Package emacs. Full text available.

Message received at 67321 <at> debbugs.gnu.org:


Received: (at 67321) by debbugs.gnu.org; 22 Nov 2023 13:37:19 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Nov 22 08:37:19 2023
Received: from localhost ([127.0.0.1]:58266 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r5nPq-0002XP-Pp
	for submit <at> debbugs.gnu.org; Wed, 22 Nov 2023 08:37:19 -0500
Received: from mout-p-202.mailbox.org ([80.241.56.172]:36498)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <iota@HIDDEN>) id 1r5nPo-0002XB-77
 for 67321 <at> debbugs.gnu.org; Wed, 22 Nov 2023 08:37:17 -0500
Received: from smtp102.mailbox.org (smtp102.mailbox.org
 [IPv6:2001:67c:2050:b231:465::102])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-202.mailbox.org (Postfix) with ESMTPS id 4Sb2NJ5X9Tz9tLh;
 Wed, 22 Nov 2023 14:37:04 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=whxvd.name; s=MBO0001; 
 t=1700660224;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 content-transfer-encoding:content-transfer-encoding:
 in-reply-to:in-reply-to:references:references;
 bh=1jfHFvK7kZvnfvVwtvWYieAKTeYuf8ODVgUBa/VEDt0=;
 b=PY8v63cg7xh2z4MutWoNG61hfSdcnQiffFUP5dj2wY/U1/Yx3Wua3YPJl0uTVo3rlW0Ts3
 TPXKn1pqo8TlQg17l47yDKP+OLZraQMc7eZFUNZGWUd4CWfU5a2hqvKZTJD8BhBKLSeHLK
 NtDg9ejYcIraRS2GyKwuxxtsUk30qrNM919XSLGofKgmEOymXLMukE5C6wrq9fKlMeryKx
 sDK+4V71mhLeiIGOa+DcMuSMo5VK+AlAKZ223yFsW3fxMI2SGFZJUFUolXG3m13sFJ5Sa6
 e7RxUz7OfaqqT1T2KXmKuRBIrdQGTG5dKK9f0z+MqxQs+ltj42JtwcxFCermcA==
References: <8734wzts37.fsf@HIDDEN> <m24jhfmliw.fsf@HIDDEN>
From: Sebastian Miele <iota@HIDDEN>
To: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN>
Subject: Re: bug#67321: 29.1.90; Different parsing rules for -*-
 lexical-binding:t; -*- in different circumstances
Date: Wed, 22 Nov 2023 14:07:38 +0100
In-reply-to: <m24jhfmliw.fsf@HIDDEN>
Message-ID: <87cyw1gb9c.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Rspamd-Queue-Id: 4Sb2NJ5X9Tz9tLh
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 67321
Cc: 67321 <at> debbugs.gnu.org
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 (-)

> From: Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN>
> Date: Tue, 2023-11-21 11:46 +0100
>
>>   #!/bin/sh
>>   : ; exec emacs --script "$0" -- "$@" #; -*- lexical-binding: t; mode: =
emacs-lisp; -*-
>>
>>   (defmacro lexical-binding-p ()
>>     '(let* ((x t)
>>             (f (lambda () x))
>>             (x nil))
>>        (funcall f)))
>>
>>   (message "%s %s" lexical-binding (lexical-binding-p))
>
> Can I ask why that idiom is used?

The idiom allows arbitrary shell processing before, and possibly even
after, actually running Emacs in the script.

See https://github.com/doomemacs/doomemacs/blob/master/bin/doom for an
example including both pre- and postprocessing, and lots of comments
about what is done there, and why.

Another case that recently popped up on emacs-devel is that it allows to
insert the "--" for cleanly separating the script commandline options
from options that Emacs may interpret, see
https://lists.gnu.org/archive/html/emacs-devel/2023-11/msg00896.html.

I do not know anymore why I considered the trick in the past.  I do not
want to spend the time to look into my scripts to find that bits that
would become cumbersome without such tricks.  Because of the problem
with lexical-binding not being picked up, and because I, for now, have
the luxury of only using Linux, I can use another trick.  But being able
to mangle the command line of Emacs before running Emacs definitely is a
useful thing.  The portable alternative would be to have one separate
(shell) wrapper around every Emacs script that needs such mangling.

What follows is the beginning of
https://github.com/doomemacs/doomemacs/blob/master/bin/doom for those
who do not visit GitHub:

#!/usr/bin/env sh
:; # -*- mode: emacs-lisp; lexical-binding: t -*-
:; case "$EMACS" in *term*) EMACS=3Demacs ;; *) EMACS=3D"${EMACS:-emacs}" ;=
; esac
:; emacs=3D"$EMACS ${DEBUG:+--debug-init} -q --no-site-file --batch"
:; tmpdir=3D`$emacs --eval '(princ (temporary-file-directory))' 2>/dev/null`
:; [ -z "$tmpdir" ] && { >&2 echo "Error: failed to run Emacs with command =
'$EMACS'"; >&2 echo; >&2 echo "Are you sure Emacs is installed and in your =
\$PATH?"; exit 1; }
:; export __DOOMPID=3D"${__DOOMPID:-$$}"
:; export __DOOMSTEP=3D"${__DOOMSTEP:-0}"
:; export __DOOMGEOM=3D"${__DOOMGEOM:-`tput cols 2>/dev/null`x`tput lines 2=
>/dev/null`}"
:; export __DOOMGPIPE=3D${__DOOMGPIPE:-$__DOOMPIPE}
:; export __DOOMPIPE=3D; [ -t 0 ] || __DOOMPIPE=3D"${__DOOMPIPE}0"; [ -t 1 =
] || __DOOMPIPE=3D"${__DOOMPIPE}1"
:; $emacs --load "$0" -- "$@" || exit=3D$?
:; [ "${exit:-0}" -eq 254 ] && { sh "${tmpdir}/doom.${__DOOMPID}.${__DOOMST=
EP}.sh" "$0" "$@" && true; exit=3D"$?"; }
:; exit $exit

;; This magical mess of a shebang is necessary for any script that relies on
;; Doom's CLI framework, because Emacs' tty libraries and capabilities are =
too
;; immature (borderline non-existent) at the time of writing (28.1). This
;; shebang sets out to accomplish these three goals:
;;
;; 1. To produce a more helpful error if Emacs isn't installed or broken. It
;;    must do so without assuming whether $EMACS is a shell command (e.g. '=
snap
;;    run emacs') or an absolute path (to an emacs executable). I've avoided
;;    'command -v $EMACS' for this reason.
;;
;; 2. To allow this Emacs session to "exit into" a child process (since Eli=
sp
;;    lacks an analogue for exec system calls) by calling an auto-generated=
 and
;;    self-destructing "exit script" if the parent Emacs process exits with=
 code
;;    254. It takes care to prevent nested child instances from clobbering =
the
;;    exit script.
;;
;; 3. To expose some information about the terminal and session:
;;    - $__DOOMGEOM holds the dimensions of the terminal (W . H).
;;    - $__DOOMPIPE indicates whether the script has been piped (in and/or =
out).
;;    - $__DOOMGPIPE indicates whether one of this process' parent has been
;;      piped to/from.
;;    - $__DOOMPID is a unique identifier for the parent script, so
;;      child processes can identify which persistent data files (like logs=
) it
;;      has access to.
;;    - $__DOOMSTEP counts how many levels deep we are in the dream (append=
ing
;;      this to the exit script's filename avoids child processes clobberin=
g the
;;      same exit script and causing read errors).
;;    - $TMPDIR (or $TEMP and $TMP on Windows) aren't guaranteed to have va=
lues,
;;      and mktemp isn't available on all systems, but you know what is? Em=
acs!
;;      So I use it to print `temporary-file-directory'. And it seconds as a
;;      quick sanity check for Emacs' existence (for goal #1).
;;
;; Other weird facts about this shebang line:
;;
;; - The :; hack exploits properties of : and ; in shell scripting and elis=
p to
;;   allow shell script and elisp to coexist in the same file without eithe=
r's
;;   interpreter throwing foreign syntax errors:
;;
;;   - In elisp, ":" is a valid keyword symbol literal; it evaluates to its=
elf
;;     and has no side-effect.
;;   - In the shell, ":" is a valid command that does nothing and ignores i=
ts
;;     arguments.
;;   - In elisp, ";" begins a comment. I.e. the interpreter ignores everyth=
ing
;;     after it.
;;   - In the shell, ";" is a command separator.
;;
;;   Put together, plus a strategically placed exit call, the shell will re=
ad
;;   one part of this file and ignore the rest, while the elisp interpreter=
 will
;;   do the opposite.
;; - I intentionally avoid loading site files, so lisp/doom-cli.el can load=
 them
;;   by hand later. There, I can suppress and deal with unhelpful warnings =
(e.g.
;;   "package cl is deprecated"), "Loading X...DONE" spam, and any other
;;   disasterous side-effects.
;;
;;   But be careful not to use -Q! It implies --no-site-lisp, which omits t=
he
;;   site-lisp directory from `load-path'.
;; - POSIX-compliancy is paramount: there's no guarantee what /bin/sh will =
be
;;   symlinked to in the esoteric OSes/distros Emacs users use.
;; - The user may have a noexec flag set on /tmp, so pass the exit script to
;;   /bin/sh rather than executing them directly.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#67321; Package emacs. Full text available.
Merged 64272 67321. Request was from Eli Zaretskii <eliz@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 67321 <at> debbugs.gnu.org:


Received: (at 67321) by debbugs.gnu.org; 21 Nov 2023 12:43:38 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 21 07:43:38 2023
Received: from localhost ([127.0.0.1]:55371 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r5Q6L-00044J-KZ
	for submit <at> debbugs.gnu.org; Tue, 21 Nov 2023 07:43:38 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:55904)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>)
 id 1r5Q6J-000441-Dt; Tue, 21 Nov 2023 07:43:36 -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 1r5Q6A-0001Bo-CP; Tue, 21 Nov 2023 07:43:26 -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=iJbkO3zBoC9kakwA+KNIexXN+/dDfk3pLmbhGs0Yids=; b=njRuhojRI9alzX69/HeB
 kynePl/qX8Z32s9H2j41el5dpaS09BfwplNJN/7OMLMVb6AYyK0cde8AMPuAkVIsMG2ru/GRowRYT
 32g3MeDowOxJVXxkR05m0W+eiqfqEPPM3vJ50n1UFJI/SAVwwKm4N+zAnFVIzEWJPMp1Y1g9uD3gk
 /Z19JTfjXmzsi645GOgKr598rhJt5DVHJWrlxju9QyT0xD0odbOeuUrj4+3rHLDJmqwx9GYU21uji
 RrcPD7F2peaDPlJ5TpubU9YMF79VhEjK0ikSLtlMR3FuyMK56vE1WHPU1xs5mwCsMCfli69rPZ3K/
 10NmKTtfQgf9iQ==;
Date: Tue, 21 Nov 2023 14:43:12 +0200
Message-Id: <834jhfi8f3.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Sebastian Miele <iota@HIDDEN>
In-Reply-To: <8734wzts37.fsf@HIDDEN> (message from Sebastian Miele on Tue, 
 21 Nov 2023 09:16:13 +0100)
Subject: Re: bug#67321: 29.1.90;
 Different parsing rules for -*- lexical-binding:t; 
 -*- in different circumstances
References: <8734wzts37.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 67321
Cc: 67321 <at> debbugs.gnu.org
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 (---)

merge 67321 64272
thanks

> From: Sebastian Miele <iota@HIDDEN>
> Date: Tue, 21 Nov 2023 09:16:13 +0100
> 
> Put the following into a file named, e.g., ‘test-script’, and ‘chmod +x’
> it.
> 
>   #!/bin/sh
>   : ; exec emacs --script "$0" -- "$@" #; -*- lexical-binding: t; mode: emacs-lisp; -*-
> 
>   (defmacro lexical-binding-p ()
>     '(let* ((x t)
>             (f (lambda () x))
>             (x nil))
>        (funcall f)))
> 
>   (message "%s %s" lexical-binding (lexical-binding-p))
> 
> When the script is run, the output is "nil nil", signifying that lexical
> binding is not enabled.
> 
> Then find the file in an interactive Emacs session, and interactively
> evaluate (C-x C-e) the two expressions.  The output now is "t t", i.e.,
> lexical binding is in use.
> 
> https://lists.gnu.org/archive/html/emacs-devel/2023-11/msg01041.html
> contains more details, which are repeated here:
> 
> > From: Jens Schmidt <jschmidt4gnu@HIDDEN>
> > Date: Mon, 2023-11-20 21:10 +0100
> >
> > I tried byte-compiling something similar yesterday, which also
> > indicated that the byte-compiler compiles with lexical bindings.  Only
> > the scripting machinery sees dynamical bindings.
> >
> > […]  It seems that the scripting machinery expects a semicolon in the
> > very first column, without that the lexical-binding line is not
> > recognized.  Even a space before the semicolon breaks the recognition.
> >
> > The problem is in function `lisp_file_lexically_bound_p' from lread.c,
> > which is indeed much more strict in its recognition of the -*- ... -*-
> > stanza than the functions `set-auto-mode-1' and
> > `hack-local-variables-prop-line' from files.el.  The Emacs manual
> > ((emacs) Specifying File Variables) only mentions that the stanza has
> > to be in the first line (or the second one if the first is taken by a
> > she-bang), without any restriction where the comment has to start.
> 
> ((emacs) Specifying File Variables) states no restrictions on what must
> (not) precede or follow a "-*- … -*-" on the first or second line of a
> file.
> 
> Expected: At least consistent behavior.  Ideally, lexical binding
> should be enabled in all cases.

There's more here than meets the eye, see bug#64272.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#67321; Package emacs. Full text available.

Message received at 67321 <at> debbugs.gnu.org:


Received: (at 67321) by debbugs.gnu.org; 21 Nov 2023 11:11:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 21 06:11:34 2023
Received: from localhost ([127.0.0.1]:55248 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r5OfF-0004hP-Oo
	for submit <at> debbugs.gnu.org; Tue, 21 Nov 2023 06:11:34 -0500
Received: from mout-p-202.mailbox.org ([2001:67c:2050:0:465::202]:55860)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <iota@HIDDEN>) id 1r5OfB-0004h6-3G
 for 67321 <at> debbugs.gnu.org; Tue, 21 Nov 2023 06:11:32 -0500
Received: from smtp1.mailbox.org (smtp1.mailbox.org
 [IPv6:2001:67c:2050:b231:465::1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-202.mailbox.org (Postfix) with ESMTPS id 4SZMBX5dcTz9sck;
 Tue, 21 Nov 2023 12:11:16 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=whxvd.name; s=MBO0001; 
 t=1700565076;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=2ABtn8iifYbdbLWJsTI2Uw63ZLH6BdQ7P/fJt4SEwng=;
 b=FHx6i7L6qb9u7gpsWcD7AYHCuP2BBXEmZWzVq7avw4eNu0xFSlodTNoZ7gPqfx1mhffi82
 sALZKuoz4eV0qaQEC5/xPp9kHXnv0epxU6Hil22WhfMi3+3/tyNBZivPdkYVGki1E5Kgri
 J7N1KrDq37wgu1cFfjY/wnzqwGCnH0q8Ir5ongedvOGto8RXWlirn0khZMKkMQ3miazyJQ
 SyKfhlpjBuY7qUNdgpUyQTJXZhGRwOm8+ZaXe2W03QUe/B8MtIaxqg13lI/THEQK3RlgIl
 I3hBpD5YQqo5C3UkWcsjw2HicGIx5PA8UX7yLu0udGvZRYV9Dlp8LMR9pBDcJQ==
References: <8734wzts37.fsf@HIDDEN> <mvmy1erto7t.fsf@HIDDEN>
From: Sebastian Miele <iota@HIDDEN>
To: Andreas Schwab <schwab@HIDDEN>
Subject: Re: bug#67321: 29.1.90; Different parsing rules for -*-
 lexical-binding:t; -*- in different circumstances
Date: Tue, 21 Nov 2023 12:07:59 +0100
In-reply-to: <mvmy1erto7t.fsf@HIDDEN>
Message-ID: <87ttpfs6ng.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Rspamd-Queue-Id: 4SZMBX5dcTz9sck
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 67321
Cc: 67321 <at> debbugs.gnu.org
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 (-)

> From: Andreas Schwab <schwab@HIDDEN>
> Date: Tue, 2023-11-21 11:06 +0100
>
> There are no different parsing rules.  emacs --script just doesn't pay
> attention to file local variables.

That cannot be true.  Running

  #!/path/to/emacs --script
  ;; -*- lexical-binding: t; mode: emacs-lisp; -*-
  (defmacro lexical-binding-p ()
    '(let* ((x t)
            (f (lambda () x))
            (x nil))
       (funcall f)))
  (message "%s %s" lexical-binding (lexical-binding-p))

as a script outputs "t t".  When I change the "lexical-binding: t" into
"lexical-binding: nil", the output is "nil nil".  So that special
file-local variable does receive some handling by emacs --script.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#67321; Package emacs. Full text available.

Message received at 67321 <at> debbugs.gnu.org:


Received: (at 67321) by debbugs.gnu.org; 21 Nov 2023 10:46:47 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 21 05:46:47 2023
Received: from localhost ([127.0.0.1]:55233 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r5OHH-0003zL-2A
	for submit <at> debbugs.gnu.org; Tue, 21 Nov 2023 05:46:47 -0500
Received: from mail-lf1-x131.google.com ([2a00:1450:4864:20::131]:52620)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <gerd.moellmann@HIDDEN>) id 1r5OHC-0003z5-G0
 for 67321 <at> debbugs.gnu.org; Tue, 21 Nov 2023 05:46:45 -0500
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-507bd64814fso7561894e87.1
 for <67321 <at> debbugs.gnu.org>; Tue, 21 Nov 2023 02:46:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1700563593; x=1701168393; darn=debbugs.gnu.org;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=w/VEUMJo+rDxvtdO/CCheDgcVN2VBJorID9WScuoriw=;
 b=fAtuG/ipJm8buqiBAjVfLjlwrpZ5qafGv8/HCLIsXWd687Zu3uoXpdE5GF30YPNFNE
 VIp5jRpnhvznuPIu3q2QsU0PjLouV6QPctODaC0Gsq2mGNLI8Zpq4V/qk7f1UrFimhpO
 HUJ9tsir2HXRs51UcOmhoxJ/kc1gK6ybrtmin4StpHnQzc0N0yvtaGZRLHIiL+6mAeYS
 fPN5ZqnkrtvgtYIqH9CFtce8/Qj8+3k5yjK+hIfCIJlSeLssG+pRUlCG+MDStSu5vSYO
 X71enb+F2cSljiEJ14otsRGS69zhh4tXtjUl6aMMSOTqIxvnDmhpOXFMG5+FvCjpMm7p
 BKrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1700563593; x=1701168393;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from
 :to:cc:subject:date:message-id:reply-to;
 bh=w/VEUMJo+rDxvtdO/CCheDgcVN2VBJorID9WScuoriw=;
 b=ojx7UMZ4juwLMy4v1NFYRN2rw2TuZdJ2FrxQlOW44Vx8chh5PZXkL5B5hwx4o10qRh
 0Y/A71ak+M3ZFHyjcqknE6udih4hlSCKSkEjBb1E6cI+K9hBeXxYyH5QZDLwWOWGBVBm
 QwmNUgIuy2IKC/O9eoo9SsFCGTMRO9p/o553uYdrk6NhYNsVVYZ99gtEBQryyPRg7CEg
 vckYv5luLouf+kd/IE44GUgCZuSGaXiQuEAVtM/l4Z9N8nbd1E7CFIWBnGVtAp+a/5oI
 WCu9Qli+OQ7Vm5tisPm9EPFeTmT6rfgCwMWAVy5YqsjZtTn85LGHQMoibRCOeplObggS
 urRQ==
X-Gm-Message-State: AOJu0YyPFHvhYhYBpQ7QCepKj/5eAIYf3m/GLv6FTpyKDGujpb0AMbgI
 i1g+QJVHRXMJ2pviniA5qCjsS0lgTHs=
X-Google-Smtp-Source: AGHT+IGYV2slhfkZZZ/cCkNbWu5HcExTb0T4UtXuBPkTIa/6LVOuUyhPsDo0UjrSb4JygKk1HzQu8Q==
X-Received: by 2002:ac2:531a:0:b0:50a:6f8a:6461 with SMTP id
 c26-20020ac2531a000000b0050a6f8a6461mr7200101lfh.58.1700563592980; 
 Tue, 21 Nov 2023 02:46:32 -0800 (PST)
Received: from Pro.fritz.box (p4fe3a849.dip0.t-ipconnect.de. [79.227.168.73])
 by smtp.gmail.com with ESMTPSA id
 kk17-20020a170907767100b0099cce6f7d50sm5091606ejc.64.2023.11.21.02.46.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 21 Nov 2023 02:46:32 -0800 (PST)
From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>
To: Sebastian Miele <iota@HIDDEN>
Subject: Re: bug#67321: 29.1.90; Different parsing rules for -*-
 lexical-binding:t; -*- in different circumstances
In-Reply-To: <8734wzts37.fsf@HIDDEN> (Sebastian Miele's message of "Tue,
 21 Nov 2023 09:16:13 +0100")
References: <8734wzts37.fsf@HIDDEN>
Date: Tue, 21 Nov 2023 11:46:31 +0100
Message-ID: <m24jhfmliw.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 67321
Cc: 67321 <at> debbugs.gnu.org
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 (-)

Sebastian Miele <iota@HIDDEN> writes:

> Put the following into a file named, e.g., =E2=80=98test-script=E2=80=99,=
 and =E2=80=98chmod +x=E2=80=99
> it.
>
>   #!/bin/sh
>   : ; exec emacs --script "$0" -- "$@" #; -*- lexical-binding: t; mode: e=
macs-lisp; -*-
>
>   (defmacro lexical-binding-p ()
>     '(let* ((x t)
>             (f (lambda () x))
>             (x nil))
>        (funcall f)))
>
>   (message "%s %s" lexical-binding (lexical-binding-p))
>
> When the script is run, the output is "nil nil", signifying that lexical
> binding is not enabled.
>
> Then find the file in an interactive Emacs session, and interactively
> evaluate (C-x C-e) the two expressions.  The output now is "t t", i.e.,
> lexical binding is in use.
>
> https://lists.gnu.org/archive/html/emacs-devel/2023-11/msg01041.html
> contains more details, which are repeated here:
>
>> From: Jens Schmidt <jschmidt4gnu@HIDDEN>
>> Date: Mon, 2023-11-20 21:10 +0100
>>
>> I tried byte-compiling something similar yesterday, which also
>> indicated that the byte-compiler compiles with lexical bindings.  Only
>> the scripting machinery sees dynamical bindings.
>>
>> [=E2=80=A6]  It seems that the scripting machinery expects a semicolon i=
n the
>> very first column, without that the lexical-binding line is not
>> recognized.  Even a space before the semicolon breaks the recognition.
>>
>> The problem is in function `lisp_file_lexically_bound_p' from lread.c,
>> which is indeed much more strict in its recognition of the -*- ... -*-
>> stanza than the functions `set-auto-mode-1' and
>> `hack-local-variables-prop-line' from files.el.  The Emacs manual
>> ((emacs) Specifying File Variables) only mentions that the stanza has
>> to be in the first line (or the second one if the first is taken by a
>> she-bang), without any restriction where the comment has to start.
>
> ((emacs) Specifying File Variables) states no restrictions on what must
> (not) precede or follow a "-*- =E2=80=A6 -*-" on the first or second line=
 of a
> file.
>
> Expected: At least consistent behavior.  Ideally, lexical binding
> should be enabled in all cases.
>
> In GNU Emacs 29.1.90 (build 1, x86_64-pc-linux-gnu, GTK+ Version

Same in master, BTW, and everything you write is correct, I think.

I guess one could recognize the ": ; exec" idiom (do nothing
successfully and then exec emacs) in command-line--load-script, but that
feels really strange and brittle.

Can I ask why that idiom is used?





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#67321; Package emacs. Full text available.

Message received at 67321 <at> debbugs.gnu.org:


Received: (at 67321) by debbugs.gnu.org; 21 Nov 2023 10:06:43 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 21 05:06:43 2023
Received: from localhost ([127.0.0.1]:55215 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r5NeU-000321-RM
	for submit <at> debbugs.gnu.org; Tue, 21 Nov 2023 05:06:43 -0500
Received: from smtp-out2.suse.de ([2001:67c:2178:6::1d]:43732)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <schwab@HIDDEN>) id 1r5NeQ-00031k-St
 for 67321 <at> debbugs.gnu.org; Tue, 21 Nov 2023 05:06:41 -0500
Received: from relay2.suse.de (relay2.suse.de [149.44.160.134])
 by smtp-out2.suse.de (Postfix) with ESMTP id 5EFF21F8A8;
 Tue, 21 Nov 2023 10:06:30 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
 t=1700561190; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
 mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=77VAOAIS7iE8zt/cr1ftrdld2GBKRjQXjuAA42jFsyw=;
 b=mwSDIuYC6VEoEGVs4YYXTsm+lx2lpM2k6ift3dUpO3X70Dz/qnd+v5tPcCc9LjPz4L0Oew
 l+jzjgJX3KdLIVQTb+afiWg0gJd0wlj7Gq1kBrUZDauxli/5CyNlH2+K8zpuaQSl6gjbhx
 IWdS4wpH0JNQxkTTaoTfq0cVz29Ka74=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
 s=susede2_ed25519; t=1700561190;
 h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
 mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=77VAOAIS7iE8zt/cr1ftrdld2GBKRjQXjuAA42jFsyw=;
 b=JPYSuSpLH1Koe+s6JHIWdtT39sto9AnGKLvqsJaflEBYu/3DFND7FuYyRuq2fZGZ2hiBPF
 2JDyG+p8sOYVSBDQ==
Received: from hawking.nue2.suse.org (unknown [10.168.4.11])
 by relay2.suse.de (Postfix) with ESMTP id 60E392C146;
 Tue, 21 Nov 2023 10:06:30 +0000 (UTC)
Received: by hawking.nue2.suse.org (Postfix, from userid 17005)
 id 3CAB54AACD5; Tue, 21 Nov 2023 11:06:30 +0100 (CET)
From: Andreas Schwab <schwab@HIDDEN>
To: Sebastian Miele <iota@HIDDEN>
Subject: Re: bug#67321: 29.1.90; Different parsing rules for -*-
 lexical-binding:t; -*- in different circumstances
In-Reply-To: <8734wzts37.fsf@HIDDEN> (Sebastian Miele's message of "Tue,
 21 Nov 2023 09:16:13 +0100")
References: <8734wzts37.fsf@HIDDEN>
X-Yow: That's a decision that can only be made between you & SY SPERLING!!
Date: Tue, 21 Nov 2023 11:06:30 +0100
Message-ID: <mvmy1erto7t.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Level: ****************
X-Spamd-Bar: ++++++++++++++++
Authentication-Results: smtp-out2.suse.de; dkim=none; dmarc=none;
 spf=softfail (smtp-out2.suse.de: 149.44.160.134 is neither permitted nor
 denied by domain of schwab@HIDDEN) smtp.mailfrom=schwab@HIDDEN
X-Rspamd-Server: rspamd2
X-Spamd-Result: default: False [16.09 / 50.00]; ARC_NA(0.00)[];
 FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[];
 TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_SPAM_SHORT(3.00)[1.000];
 MIME_GOOD(-0.10)[text/plain]; DMARC_NA(1.20)[suse.de];
 R_SPF_SOFTFAIL(4.60)[~all:c];
 RWL_MAILSPIKE_GOOD(-1.00)[149.44.160.134:from];
 DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
 MX_GOOD(-0.01)[]; RCPT_COUNT_TWO(0.00)[2];
 VIOLATED_DIRECT_SPF(3.50)[]; NEURAL_SPAM_LONG(3.50)[1.000];
 FUZZY_BLOCKED(0.00)[rspamd.com]; RCVD_NO_TLS_LAST(0.10)[];
 FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(2.20)[];
 MIME_TRACE(0.00)[0:+]; RCVD_COUNT_TWO(0.00)[2];
 MID_RHS_MATCH_FROM(0.00)[]; BAYES_HAM(-0.90)[85.99%]
X-Spam-Score: 16.09
X-Rspamd-Queue-Id: 5EFF21F8A8
X-Spam-Flag: NO
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 67321
Cc: 67321 <at> debbugs.gnu.org
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 (---)

There are no different parsing rules.  emacs --script just doesn't pay
attention to file local variables.

-- 
Andreas Schwab, SUSE Labs, schwab@HIDDEN
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#67321; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 21 Nov 2023 08:43:21 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 21 03:43:21 2023
Received: from localhost ([127.0.0.1]:55142 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r5MLo-0000lS-DM
	for submit <at> debbugs.gnu.org; Tue, 21 Nov 2023 03:43:21 -0500
Received: from lists.gnu.org ([2001:470:142::17]:56822)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <iota@HIDDEN>) id 1r5MLk-0000lC-79
 for submit <at> debbugs.gnu.org; Tue, 21 Nov 2023 03:43:18 -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 <iota@HIDDEN>) id 1r5MLb-0005SZ-Df
 for bug-gnu-emacs@HIDDEN; Tue, 21 Nov 2023 03:43:07 -0500
Received: from mout-p-201.mailbox.org ([2001:67c:2050:0:465::201])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_CHACHA20_POLY1305:256)
 (Exim 4.90_1) (envelope-from <iota@HIDDEN>) id 1r5MLY-0000NH-G7
 for bug-gnu-emacs@HIDDEN; Tue, 21 Nov 2023 03:43:07 -0500
Received: from smtp202.mailbox.org (smtp202.mailbox.org [10.196.197.202])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-201.mailbox.org (Postfix) with ESMTPS id 4SZHvK6fNDz9sQ8
 for <bug-gnu-emacs@HIDDEN>; Tue, 21 Nov 2023 09:42:53 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=whxvd.name; s=MBO0001; 
 t=1700556173;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:mime-version:mime-version:content-type:content-type:
 content-transfer-encoding:content-transfer-encoding;
 bh=9MIOWrPBx/EGSCtncdwbFaIFrkIM6v+5k3MKJIm9LOM=;
 b=vMZLp2m+1q2OSPAG4IFr8o38/GcttMBlMJZbUcfE0Rd8cn48WrysdZyMAI/Iu56wm2AsRS
 Metc9LgT4odP/CLWngGkgUAUheq0UjcFvzeUOW0XjX4kzA7Lu1HWZnmywpdcFlvIrYOwoF
 bSe1ch4/9AFnnKoeKfYqfuIaxp9VuzcF2KVfn1Lrlbe4roZTMVih6urmBZVTk9xuZxluYr
 k1raH3zoZXvbq8LefmKxZTkrnfAqanQulOg3DETgxWDWRYn+mxCw3zxf2H0xBbl4kevrxn
 GfYCFFAZOpU/iZf+LSTI1ET1KyA5B63bm096MihxxFbnDuJlucaMpusG6QT/gA==
From: Sebastian Miele <iota@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 29.1.90; Different parsing rules for -*- lexical-binding:t; -*- in
 different circumstances
Date: Tue, 21 Nov 2023 09:16:13 +0100
Message-ID: <8734wzts37.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass client-ip=2001:67c:2050:0:465::201;
 envelope-from=iota@HIDDEN; helo=mout-p-201.mailbox.org
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
 T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 0.6 (/)
X-Debbugs-Envelope-To: submit
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.4 (/)

Put the following into a file named, e.g., =E2=80=98test-script=E2=80=99, a=
nd =E2=80=98chmod +x=E2=80=99
it.

  #!/bin/sh
  : ; exec emacs --script "$0" -- "$@" #; -*- lexical-binding: t; mode: ema=
cs-lisp; -*-

  (defmacro lexical-binding-p ()
    '(let* ((x t)
            (f (lambda () x))
            (x nil))
       (funcall f)))

  (message "%s %s" lexical-binding (lexical-binding-p))

When the script is run, the output is "nil nil", signifying that lexical
binding is not enabled.

Then find the file in an interactive Emacs session, and interactively
evaluate (C-x C-e) the two expressions.  The output now is "t t", i.e.,
lexical binding is in use.

https://lists.gnu.org/archive/html/emacs-devel/2023-11/msg01041.html
contains more details, which are repeated here:

> From: Jens Schmidt <jschmidt4gnu@HIDDEN>
> Date: Mon, 2023-11-20 21:10 +0100
>
> I tried byte-compiling something similar yesterday, which also
> indicated that the byte-compiler compiles with lexical bindings.  Only
> the scripting machinery sees dynamical bindings.
>
> [=E2=80=A6]  It seems that the scripting machinery expects a semicolon in=
 the
> very first column, without that the lexical-binding line is not
> recognized.  Even a space before the semicolon breaks the recognition.
>
> The problem is in function `lisp_file_lexically_bound_p' from lread.c,
> which is indeed much more strict in its recognition of the -*- ... -*-
> stanza than the functions `set-auto-mode-1' and
> `hack-local-variables-prop-line' from files.el.  The Emacs manual
> ((emacs) Specifying File Variables) only mentions that the stanza has
> to be in the first line (or the second one if the first is taken by a
> she-bang), without any restriction where the comment has to start.

((emacs) Specifying File Variables) states no restrictions on what must
(not) precede or follow a "-*- =E2=80=A6 -*-" on the first or second line o=
f a
file.

Expected: At least consistent behavior.  Ideally, lexical binding
should be enabled in all cases.

In GNU Emacs 29.1.90 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.38, cairo version 1.18.0) of 2023-11-17 built on blatt
Repository revision: b759f9b508da20649a0741bcfad466e6111edb4e
Repository branch: pgtk-hyper
System Description: Arch Linux

Configured using:
 'configure --with-pgtk --with-native-compilation --with-tree-sitter
 --with-json --with-mailutils --with-imagemagick
 'CFLAGS=3D-march=3Divybridge -mtune=3Divybridge''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ
IMAGEMAGICK JPEG JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 MODULES
NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3
THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM GTK3 ZLIB

Important settings:
  value of $LANG: C.UTF-8
  locale-coding-system: utf-8-unix

Major mode: mu4e:view

Minor modes in effect:
  mu4e-search-minor-mode: t
  mu4e-context-minor-mode: t
  envrc-global-mode: t
  envrc-mode: t
  editorconfig-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  marginalia-mode: t
  corfu-popupinfo-mode: t
  corfu-history-mode: t
  corfu-candidate-overlay-mode: t
  global-corfu-mode: t
  corfu-mode: t
  info-rename-buffer-mode: t
  savehist-mode: t
  server-mode: t
  recentf-mode: t
  vertico-mode: t
  shell-dirtrack-mode: t
  minibuffer-depth-indicate-mode: t
  global-so-long-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  temp-buffer-resize-mode: t

Load-path shadows:
/home/w/dot/emacs/.init.d/usr/elpa/modus-themes-20231115.1302/theme-loaddef=
s hides /home/w/usr/emacs/0/29/0/lisp/theme-loaddefs
/home/w/dot/emacs/.init.d/usr/elpa/transient-20231112.923/transient hides /=
home/w/usr/emacs/0/29/0/lisp/transient

Features:
(shadow emacsbug sort smiley gnus-cite mail-extr textsec uni-scripts
idna-mapping ucs-normalize uni-confusable textsec-check macrostep-c
cmacexp make-mode tabify tramp-cmds misearch multi-isearch goto-addr
vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view
emacsql-sqlite-builtin sqlite face-remap cal-move oc-basic ol-eww
ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect ol-docview doc-view
jka-compr image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m ol-doi
org-link-doi cus-start whx-init-later whx-tangled-mu mu4e mu4e-org
mu4e-notification notifications mu4e-main mu4e-view gnus-art mm-uu
mml2015 mm-view mml-smime smime dig gnus-sum gnus-group gnus-undo
gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo
gnus-spec gnus-int gnus-range gnus-win mu4e-headers mu4e-compose
mu4e-draft mu4e-actions smtpmail mu4e-search mu4e-lists mu4e-bookmarks
mu4e-mark mu4e-message flow-fill mule-util hl-line mu4e-contacts
mu4e-update mu4e-folders mu4e-context mu4e-query-items mu4e-server
mu4e-modeline mu4e-vars mu4e-helpers mu4e-config mu4e-window ido
mu4e-obsolete whx-tangled-envrc eglot external-completion array jsonrpc
ert ewoc flymake-proc flymake envrc inheritenv whx-tangled-org ob-python
ob-shell whx-custom org-superstar ol-eshell ol-man whx-password
whx-pcase whx-walk ox-odt rng-loc rng-uri rng-parse rng-match rng-dt
rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex
ox-icalendar org-agenda ox-html table ox-ascii ox-publish ox whx-etc-org
whx-tangled-0 web-mode advice disp-table css-mode sgml-mode facemenu eww
url-queue shr pixel-fill kinsoku url-file mm-url gnus nnheader range
docker-compose-mode dockerfile-mode apache-mode systemd cmake-font-lock
cmake-mode rst python sh-script smie executable lua-mode json-mode
json-snatcher js c-ts-common cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine yaml-mode vcard tex-mode compile
consult-register vc-git consult-xref dumb-jump popup xref project
gptel-transient gptel gptel-openai editorconfig editorconfig-core
editorconfig-core-handle editorconfig-fnmatch ace-window avy wdired
dired-filter dired-hacks-utils dired-aux dired-x diary-lib
diary-loaddefs cal-iso forge-list forge-commands forge-semi
forge-bitbucket buck forge-gogs gogs forge-gitea gtea forge-gitlab glab
forge-github ghub-graphql treepy gsexp ghub url-http url-gw nsm url-auth
let-alist gnutls forge-notify forge-revnote forge-pullreq forge-issue
forge-topic yaml bug-reference forge-post markdown-mode forge-repo forge
forge-core forge-db closql emacsql-sqlite-common emacsql
emacsql-compiler eieio-base magit-patch magit-extras magit-bookmark
magit-submodule magit-blame magit-stash magit-reflog magit-bisect
magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit
magit-sequence magit-notes magit-worktree magit-tag magit-merge
magit-branch magit-reset magit-files magit-refs magit-status magit
magit-repos magit-apply magit-wip magit-log which-func magit-diff
smerge-mode diff diff-mode easy-mmode git-commit log-edit message
sendmail yank-media puny rfc822 mml mml-sec epa derived epg rfc6068
epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils
gmm-utils mailheader pcvs-util add-log magit-core magit-autorevert
autorevert filenotify magit-margin magit-transient magit-process
with-editor magit-mode magit-git magit-base magit-section cursor-sensor
git-modes gitignore-mode gitconfig-mode conf-mode gitattributes-mode
em-hist em-pred esh-mode eshell esh-cmd esh-ext esh-opt esh-proc esh-io
esh-arg esh-module esh-groups esh-util marginalia vertico-quick
corfu-popupinfo corfu-info kind-icon svg-lib color svg dom xml
corfu-history corfu-quick corfu-candidate-overlay corfu orderless crm
man info-rename-buffer helpful cc-langs cc-vars cc-defs imenu trace
edebug info-look f f-shortdoc elisp-refs help-fns radix-tree embark-org
org-element org-persist xdg org-id org-refile avl-tree generator
embark-consult embark ffap thingatpt ispell savehist tramp-cache
time-stamp expreg treesit cap-words superword subword rect whx-cl server
consult-dir consult recentf tree-widget bookmark text-property-search
vertico-directory vertico tramp-sh tramp-rclone tramp-fuse tramp
tramp-loaddefs trampver tramp-integration files-x tramp-compat shell
parse-time iso8601 mb-depth whx-safe-local whx-etc-2 whx-transient comp
comp-cstr warnings whx-arg whx-meta transient cl-extra edmacro kmacro
compat whx-etc-elisp whx-bind whx-elisp whx-feature whx-string s
whx-error debug backtrace help-mode macrostep whx-etc-look dired
dired-loaddefs org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro
org-src ob-comint org-pcomplete pcomplete comint ansi-osc ansi-color
ring org-list org-footnote org-faces org-entities time-date noutline
outline ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold
org-fold-core org-keys oc org-loaddefs find-func cal-menu calendar
cal-loaddefs org-version org-compat org-macs format-spec whx-face
whx-alist whx-plist whx-list dash modus-operandi-theme modus-themes
diminish whx-etc-packages--core finder-inf ace-window-autoloads
apache-mode-autoloads async-autoloads avy-autoloads
cmake-font-lock-autoloads cmake-mode-autoloads consult-dir-autoloads
consult-project-extra-autoloads corfu-candidate-overlay-autoloads
corfu-autoloads debbugs-autoloads diminish-autoloads
dired-collapse-autoloads dired-filter-autoloads dired-subtree-autoloads
dired-hacks-utils-autoloads docker-compose-mode-autoloads
dockerfile-mode-autoloads dumb-jump-autoloads editorconfig-autoloads
eglot-tempel-autoloads embark-consult-autoloads consult-autoloads
embark-autoloads envrc-autoloads expand-region-autoloads
expreg-autoloads forge-autoloads closql-autoloads emacsql-autoloads
geiser-guile-autoloads geiser-autoloads ghub-autoloads
git-modes-autoloads gptel-autoloads helpful-autoloads
elisp-refs-autoloads f-autoloads i3wm-config-mode-autoloads
info-rename-buffer-autoloads inheritenv-autoloads json-mode-autoloads
json-snatcher-autoloads kbd-mode-autoloads keycast-autoloads
kind-icon-autoloads lua-mode-autoloads macrostep-autoloads
magit-autoloads git-commit-autoloads magit-section-autoloads
dash-autoloads marginalia-autoloads markdown-mode-autoloads
modus-themes-autoloads mu4e-autoloads orderless-autoloads
org-superstar-autoloads pkgbuild-mode-autoloads popup-autoloads
quelpa-autoloads rainbow-mode-autoloads s-autoloads svg-lib-autoloads
systemd-autoloads tempel-collection-autoloads tempel-autoloads
transient-autoloads treepy-autoloads vcard-autoloads vertico-autoloads
vimrc-mode-autoloads web-mode-autoloads wgrep-autoloads
with-editor-autoloads info compat-autoloads yaml-autoloads
yaml-mode-autoloads whx-package--core package-vc vc vc-dispatcher
lisp-mnt package browse-url url url-proxy url-privacy url-expand
url-methods url-history url-cookie generate-lisp-file url-domsuf
url-util mailcap url-handlers url-parse auth-source eieio eieio-core
password-cache json map byte-opt bytecomp byte-compile url-vars
whx-etc-1--core so-long whx-etc-buffer--core ibuffer ibuffer-loaddefs
whx-etc-elisp--core whx-elisp--core rx whx-etc-gc--core whx-bind--core
whx-init-early whx-boot whx-etc-0--core cus-edit pp cus-load icons
wid-edit whx-etc-native-comp--core whx-etc-litter--core no-littering
whx-etc-fs-path--core whx-fs-path--core cl-seq whx-string--core
whx-log--core whx-0--core whx-let-set--core whx-symbol--core
whx-list--core subr-x whx-meta--core whx-pcase--core pcase
whx-error--core whx-binary-unit-prefix--core whx-feature--core cl-macs
gv cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric
uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/pgtk-win pgtk-win term/common-win pgtk-dnd tool-bar dnd fontset
image regexp-opt fringe tabulated-list replace newcomment text-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify
dynamic-setting system-font-setting font-render-setting cairo gtk pgtk
lcms2 multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 1580890 49378)
 (symbols 48 74132 9)
 (strings 32 392309 15713)
 (string-bytes 1 11053956)
 (vectors 16 155349)
 (vector-slots 8 3761081 202439)
 (floats 8 807 1807)
 (intervals 56 61711 3388)
 (buffers 984 46))




Acknowledgement sent to Sebastian Miele <iota@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#67321; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sat, 20 Jan 2024 12:30:02 UTC

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