Stefan Kangas <stefankangas@HIDDEN>
to control <at> debbugs.gnu.org.
Full text available.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.
bug-gnu-emacs@HIDDEN:bug#67321; Package emacs.
Full text available.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.
bug-gnu-emacs@HIDDEN:bug#67321; Package emacs.
Full text available.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.
bug-gnu-emacs@HIDDEN:bug#67321; Package emacs.
Full text available.
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.
bug-gnu-emacs@HIDDEN:bug#67321; Package emacs.
Full text available.Eli Zaretskii <eliz@HIDDEN>
to control <at> debbugs.gnu.org.
Full text available.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.
bug-gnu-emacs@HIDDEN:bug#67321; Package emacs.
Full text available.
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.
bug-gnu-emacs@HIDDEN:bug#67321; Package emacs.
Full text available.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?
bug-gnu-emacs@HIDDEN:bug#67321; Package emacs.
Full text available.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."
bug-gnu-emacs@HIDDEN:bug#67321; Package emacs.
Full text available.
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))
Sebastian Miele <iota@HIDDEN>:bug-gnu-emacs@HIDDEN.
Full text available.bug-gnu-emacs@HIDDEN:bug#67321; Package emacs.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.