Stefan Monnier <monnier@HIDDEN>
to control <at> debbugs.gnu.org.
Full text available.Received: (at 79852) by debbugs.gnu.org; 25 Nov 2025 20:21:23 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 25 15:21:23 2025 Received: from localhost ([127.0.0.1]:41796 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vNzXO-0000tS-O8 for submit <at> debbugs.gnu.org; Tue, 25 Nov 2025 15:21:23 -0500 Received: from mail-yw1-x1135.google.com ([2607:f8b0:4864:20::1135]:55777) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <jdtsmith@HIDDEN>) id 1vMtMw-0005LY-VT for 79852 <at> debbugs.gnu.org; Sat, 22 Nov 2025 14:34:03 -0500 Received: by mail-yw1-x1135.google.com with SMTP id 00721157ae682-786a822e73aso31404297b3.3 for <79852 <at> debbugs.gnu.org>; Sat, 22 Nov 2025 11:34:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763840035; x=1764444835; darn=debbugs.gnu.org; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:from:to:cc:subject:date:message-id:reply-to; bh=SJkg5kIgTb+r6xTAwLXbUI3DAJuylmQwjoGMp9oBBFc=; b=I2L0s1CdaurUauQM9FVnGNFy5QJEghBugZfEz4Dw4/McbD39ce0H1raT4aYbJgVH6O R+1W1xAKGOEjaMGpfTdo7qiO37x5X8JziaJdIHUig7fuk2F7Mar0vHF/EusJQR7BBvFA /hJ18fG5/XjOFjwLTfAIPhOlugBRmlPqf6YH+bGXQMSRl7h1zzdgzO1BwfbvHn9aBGs8 7QEtzei/M6ADDww3nnoPQC2jFXRVOCEemfTP2HDg5C4cPIrKElAtFLhqfb0r3d5N+LRo Cy+2aih1/O++f0K2vbwQFCZt4p3qYDsjPdBU34VB829BMZxbhXML+4d4RI508GXO/W51 sT5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763840035; x=1764444835; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=SJkg5kIgTb+r6xTAwLXbUI3DAJuylmQwjoGMp9oBBFc=; b=c5z/h+6hvfztmUBVw9sQ27XTDPTgGKqeb4SOSVEtl+Ep/AUzFwGDVlAlm8G32yE2Za 1DkqQq7WdlvNtXNjF+DXOV8u3au56fTYaGPNjzR+4f2QkF3pV1vC6ZiVkV+N4LiRE4zy wAgPb7RCOAldwn00F1vlAm2urhMcYG4w69KNnuYkFXxuP+WTSv6MuFV1/MHLFfvDDDYU 4b5be28AdUjDnrvb6pfvqByMBIbBaPn3GqsSkWlj2IlSzURz39tJy2zNBO3/Eh8JXFfS KjHiyBMatcE1OGz4QHLXUPIiC+Ddm9p6M9PFNV3qMJb8lvsxLZ/3OCPVRINvW+kwnvFT HShQ== X-Gm-Message-State: AOJu0YyOugkLrT8DbB++XJYRoKMuur5OjSMG6WQBqO9jDrXrHG8nw+qv TNuCWk6gMv8XxTsQof4zAk7NOdn3EwF+eAOvsdawmmc+/9fXkPoCyOvP1nKobHrd X-Gm-Gg: ASbGncthiSLxgorJgsnNqvgRMMIZP+FKH5FHGjJnDBX80cXvo410OxQX7tv3BNx4DHT 4BHDO6v+sC8lVlHILtqXROjB2vaeG24JNhTSFbUrSTdWmgKiM0Da7Vhf9zSkVVTDnzTri6RbSLU npngCEjpDRsE5Ut8HrvtALLVxT7o8vxNtUQZ9qSkzOCy9myFLz6xW6GMg9BI4h4kO6aFEH9NFmK MgGWq5OLv0CioFHYfz/cSdT01fiDCJ1Gzbv7GpZZsb59GnkvItNqcRhN1SaRwnH2nYEW+FAM6A1 5sy+lnlzWG6XK7DnpT9iXnSVxw81LuS/EKFwqKUh7YfVJ7Qe5SNxk9n6Rg7XEwqdBmFmAnrDnmA PvRJfH8Ufe9YFSy5Vbla5M/b8wDJ+g/dS4D85Wo4o56lRHRv7wsCpQ8a3j9NsQ2kmIPh+O5jftg Dk3nlC59FkUZtWWnuF9WMi0NzxnSBtC41QN2xwxm2h8TlXxPnn+RsGWmrSiQ== X-Google-Smtp-Source: AGHT+IGKqfaAM5m0lq0sv4rCZ7qXgfyKva9py6pLERt/8OvRUquo19AWYxs6SwJwgMVLYef4Y74KuA== X-Received: by 2002:a05:690c:708f:b0:786:66e4:ccba with SMTP id 00721157ae682-78a8b55cf2bmr53266827b3.57.1763840035048; Sat, 22 Nov 2025 11:33:55 -0800 (PST) Received: from smtpclient.apple (cm-24-53-187-185.buckeyecom.net. [24.53.187.185]) by smtp.gmail.com with ESMTPSA id 00721157ae682-78a799405edsm27330777b3.46.2025.11.22.11.33.53 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 22 Nov 2025 11:33:54 -0800 (PST) From: JD Smith <jdtsmith@HIDDEN> Message-Id: <B0FF4131-F6B9-483A-92C2-FBA9665BE304@HIDDEN> Content-Type: multipart/alternative; boundary="Apple-Mail=_2E706B4C-34FF-45A2-934B-BB50F22475C1" Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.700.81\)) Subject: Re: bug#79852: Incomplete autoload: `ert-deftest` docstring highlighted as a mere string Date: Sat, 22 Nov 2025 14:33:15 -0500 In-Reply-To: <jwvikf2fffz.fsf-monnier+emacs@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> References: <jwvzf8ku7je.fsf-monnier+emacs@HIDDEN> <m27bvok3t6.fsf@HIDDEN> <jwvldk4sebg.fsf-monnier+emacs@HIDDEN> <m2346bj8yz.fsf@HIDDEN> <jwvbjkwi2nk.fsf-monnier+emacs@HIDDEN> <m2ldk0ysa3.fsf@HIDDEN> <jwvzf8fh79j.fsf-monnier+emacs@HIDDEN> <31982A94-C1BD-4D79-AA50-27E8F9E8A462@HIDDEN> <jwvikf2fffz.fsf-monnier+emacs@HIDDEN> X-Mailer: Apple Mail (2.3826.700.81) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79852 Cc: 79852 <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 (-) --Apple-Mail=_2E706B4C-34FF-45A2-934B-BB50F22475C1 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On Nov 22, 2025, at 7:04=E2=80=AFAM, Stefan Monnier = <monnier@HIDDEN> wrote: >=20 >> Fully agreement. I am (in hindsight) objecting to the three possible = paths >> a macro on this list can take: >=20 > OK, I pushed a set of patches which removes path number 2. Thanks for whittling down the leftover complexity. Looking forward to = using this for external packages.= --Apple-Mail=_2E706B4C-34FF-45A2-934B-BB50F22475C1 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 <html><head><meta http-equiv=3D"content-type" content=3D"text/html; = charset=3Dutf-8"></head><body style=3D"overflow-wrap: break-word; = -webkit-nbsp-mode: space; line-break: after-white-space;"><br = id=3D"lineBreakAtBeginningOfMessage"><div><br><blockquote = type=3D"cite"><div>On Nov 22, 2025, at 7:04=E2=80=AFAM, Stefan Monnier = <monnier@HIDDEN> wrote:</div><br = class=3D"Apple-interchange-newline"><div><meta = charset=3D"UTF-8"><div><blockquote type=3D"cite" style=3D"font-family: = Helvetica; font-size: 12px; font-style: normal; font-variant-caps: = normal; font-weight: 400; letter-spacing: normal; orphans: auto; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;">Fully agreement. I am (in hindsight) = objecting to the three possible paths<br>a macro on this list can = take:<br></blockquote><br style=3D"caret-color: rgb(0, 0, 0); = font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant-caps: normal; font-weight: 400; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;"><span style=3D"caret-color: rgb(0, 0, 0); = font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant-caps: normal; font-weight: 400; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none; float: none; display: inline !important;">OK, I = pushed a set of patches which removes path number 2.</span><br = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; = letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: = none;"></div></div></blockquote></div><div><br></div>Thanks for = whittling down the leftover complexity. Looking forward to using = this for external packages.</body></html>= --Apple-Mail=_2E706B4C-34FF-45A2-934B-BB50F22475C1--
bug-gnu-emacs@HIDDEN:bug#79852; Package emacs.
Full text available.
Received: (at 79852) by debbugs.gnu.org; 25 Nov 2025 20:21:18 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 25 15:21:18 2025
Received: from localhost ([127.0.0.1]:41780 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vNzXJ-0000sS-Ke
for submit <at> debbugs.gnu.org; Tue, 25 Nov 2025 15:21:18 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:53984)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
id 1vMmLs-0000Ap-FI
for 79852 <at> debbugs.gnu.org; Sat, 22 Nov 2025 07:04:31 -0500
Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1])
by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 181AC1000BC;
Sat, 22 Nov 2025 07:04:19 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
s=mail; t=1763813058;
bh=2oG7plqg33szQUtQ4Yxis2XaYvIP2DJ03wRmZhRYezI=;
h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
b=BCBJrqmfqps0WecDN/MwVqyxGDjjiKCYmJT8HqGs6ohq1GGGDTD/J5uE6k7+mO9/z
rGuooCKt6endTQg9H4Up9hh582Ted0yV9jiGnnzJiOSLX4GXVv/XUMWf/eMFHbPbEb
xqUNlZSRbiGAwEM651oKHmTJTkUZvDL45duQ7o9Qmob18qtcnwh7xtjEaImrYDIJVC
b92B+8n1Z555RhNKLjYqhKB8J5bEln6fAzBKRx3/f89wb12X1tzITfORS8cuqmDCgm
yuEnkc6x9+4tgyy+zBrCsYeOX6GcmLrtu10Zqnq5Wo+wwHiHb3BN4QL40p94LCPXHf
rRh3w7432wuAw==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 31216100029;
Sat, 22 Nov 2025 07:04:18 -0500 (EST)
Received: from asado (unknown [181.28.45.30])
by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 1E7141207DA;
Sat, 22 Nov 2025 07:04:16 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: JD Smith <jdtsmith@HIDDEN>
Subject: Re: bug#79852: Incomplete autoload: `ert-deftest` docstring
highlighted as a mere string
In-Reply-To: <31982A94-C1BD-4D79-AA50-27E8F9E8A462@HIDDEN>
Message-ID: <jwvikf2fffz.fsf-monnier+emacs@HIDDEN>
References: <jwvzf8ku7je.fsf-monnier+emacs@HIDDEN>
<m27bvok3t6.fsf@HIDDEN>
<jwvldk4sebg.fsf-monnier+emacs@HIDDEN>
<m2346bj8yz.fsf@HIDDEN>
<jwvbjkwi2nk.fsf-monnier+emacs@HIDDEN>
<m2ldk0ysa3.fsf@HIDDEN>
<jwvzf8fh79j.fsf-monnier+emacs@HIDDEN>
<31982A94-C1BD-4D79-AA50-27E8F9E8A462@HIDDEN>
Date: Sat, 22 Nov 2025 07:04:13 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results: 0
ALL_TRUSTED -1 Passed through trusted hosts only via SMTP
AWL -0.338 Adjusted score from AWL reputation of From: address
BAYES_00 -1.9 Bayes spam probability is 0 to 1%
DKIM_SIGNED 0.1 Message has a DKIM or DK signature,
not necessarily valid
DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
domain
DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
domain POISEN_SPAM_PILL 0.1 Meta: its spam
POISEN_SPAM_PILL_1 0.1 random spam to be learned in bayes
POISEN_SPAM_PILL_3 0.1 random spam to be learned in bayes
X-SPAM-LEVEL:
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79852
Cc: 79852 <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 (---)
> Aha. Our comment does specify that /either/ a defining macro should be on
> this list /or/ use autoload-macro expand.
>
> ;; The following macros are known to define functions, and are treated
> ;; specially when encountered during autoload generation, translating
> ;; calls to them directly into appropriate (autoload function ...)
> ;; forms.
> ;;
> ;; An alternative to appearing on this list is for a macro to declare
> ;; (autoload-macro expand),
>
> But note that several other macros break this guideline too:
>
> loaddefs-generate: define-globalized-minor-mode has autoload-macro expand
> loaddefs-generate: define-minor-mode has autoload-macro expand
> loaddefs-generate: cl-defun has autoload-macro expand
> loaddefs-generate: cl-defmacro has autoload-macro expand
> loaddefs-generate: easy-mmode-define-global-mode has autoload-macro expand
> loaddefs-generate: easy-mmode-define-minor-mode has autoload-macro expand
> loaddefs-generate: define-global-minor-mode has autoload-macro expand
Indeed the core of this bug is that `cl-defmacro` was in that list, IMO.
> Fully agreement. I am (in hindsight) objecting to the three possible paths
> a macro on this list can take:
OK, I pushed a set of patches which removes path number 2.
>> AFAIC, this list should over time be reduced to the empty list.
> Unless speed is somehow a concern, I agree. Let the macro tell you what it
> wants. And let it expand to include what it needs among its generated
> forms. Let it generate `function-put's and `defun's that turn into
> `defalias's and then straight into `autoload's. Nothing special required
> (except remembering to use `:autoload-end' to cut out the irrelevancies).
I have a hard time imagining a circumstance where speed would end up
being a concern, in practice.
> But note the "shortcut" branch still has plenty of special processing for
> building a rich autoload statement: arguments are munged and special-cased,
> the INTERACTIVE argument is set, DOC is amended with usage info, etc.
> Not sure what if anything to do about those "features" we'd be foregoing.
> Maybe they're not essential.
There's nothing special, there, really. It just mimics what the macros
themselves do and what `loaddefs-generate--make-autoload` does for the
`defun/defmacro/defalias` case.
Stefan
bug-gnu-emacs@HIDDEN:bug#79852; Package emacs.
Full text available.
Received: (at 79852) by debbugs.gnu.org; 25 Nov 2025 20:17:18 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 25 15:17:18 2025
Received: from localhost ([127.0.0.1]:55381 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vNzTR-0005Hd-Ns
for submit <at> debbugs.gnu.org; Tue, 25 Nov 2025 15:17:18 -0500
Received: from [132.204.25.50] (port=26197 helo=mailscanner.iro.umontreal.ca)
by debbugs.gnu.org with esmtps
(TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2)
(envelope-from <monnier@HIDDEN>) id 1vMQtE-0006PP-VU
for 79852 <at> debbugs.gnu.org; Fri, 21 Nov 2025 08:09:50 -0500
Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1])
by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 7E363440D17;
Fri, 21 Nov 2025 08:09:17 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
s=mail; t=1763730556;
bh=Yms31I5IsxUGBOTT5v6O/VvsFKzemZj0min5RED2ukU=;
h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
b=SA/8kFlKivvKHGUNnqRA7FPW9m12Who9Lh3Wb0DieYe3aOKYhl7VtrLvDtqlQDkXS
JbAf2+w0Kud1DDpeEGhDLE+59+2cGU3u93iNPyXJyPMhD54KcidxBvC//euIv/1g7R
pG/HHWlVrSl3Q/+dtQOwZjIH2ytAU4b/+UBae9UIf21eEQd6EuNaB2ikmQZQIGybiS
C9McUEYScWqZXdjAmUGfa7gwuaFNgd2/HqUuJh1ta+CD6omm+8EpsmaGaKDDwSVIOe
EbOJFOIOHU07t1H7AK3AKDgXpQ8ABrU3Ck5ASVjMwiN4R6MyC1R/d0jlWEgO/V7i/f
pqD1i6E/fu3CA==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 45BF3440BFF;
Fri, 21 Nov 2025 08:09:16 -0500 (EST)
Received: from asado (unknown [181.28.45.30])
by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 36FFB12067A;
Fri, 21 Nov 2025 08:09:15 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: "J.D. Smith" <jdtsmith@HIDDEN>
Subject: Re: bug#79852: Incomplete autoload: `ert-deftest` docstring
highlighted as a mere string
In-Reply-To: <m2ldk0ysa3.fsf@HIDDEN>
Message-ID: <jwvzf8fh79j.fsf-monnier+emacs@HIDDEN>
References: <jwvzf8ku7je.fsf-monnier+emacs@HIDDEN>
<m27bvok3t6.fsf@HIDDEN>
<jwvldk4sebg.fsf-monnier+emacs@HIDDEN>
<m2346bj8yz.fsf@HIDDEN>
<jwvbjkwi2nk.fsf-monnier+emacs@HIDDEN>
<m2ldk0ysa3.fsf@HIDDEN>
Date: Fri, 21 Nov 2025 08:09:11 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results: 0
ALL_TRUSTED -1 Passed through trusted hosts only via SMTP
AWL -0.266 Adjusted score from AWL reputation of From: address
BAYES_00 -1.9 Bayes spam probability is 0 to 1%
DKIM_SIGNED 0.1 Message has a DKIM or DK signature,
not necessarily valid
DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
domain
DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
domain POISEN_SPAM_PILL 0.1 Meta: its spam
POISEN_SPAM_PILL_1 0.1 random spam to be learned in bayes
POISEN_SPAM_PILL_3 0.1 random spam to be learned in bayes
X-SPAM-LEVEL:
X-Spam-Score: 1.3 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
has NOT identified this incoming email as spam. The original
message has been attached to this so you can view it or label
similar future email. If you have any questions, see
the administrator of that system for details.
Content preview: > I'm not totally sure why we're singling out macro-defining
macros. What makes you think we're singling out macro-defining macros? The
only "macros that define macros" that appear in my patch are
`(cl-)-defmacro(*)`,
the rest are macros that define functions.
Content analysis details: (1.3 points, 10.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
0.0 T_SPF_HELO_TEMPERROR SPF: test of HELO record failed (temperror)
0.0 T_SPF_TEMPERROR SPF: test of record failed (temperror)
1.3 RDNS_NONE Delivered to internal network by a host with no rDNS
X-Debbugs-Envelope-To: 79852
Cc: 79852 <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: -2.0 (--)
> I'm not totally sure why we're singling out macro-defining macros.
What makes you think we're singling out macro-defining macros?
The only "macros that define macros" that appear in my patch are
`(cl-)-defmacro(*)`, the rest are macros that define functions.
> I guess the remaining members of the list are macros where we just want to
> take the shortcut ("direct autoload") route?
The rest are macros that we have not yet adapted to use the
`autoload-macro` declaration.
> The problem is, this is not a guarantee. If for some reason a macro on
> the `defining-macros' list happens to be /defined already/ during
> bootstrap, you do /not/ take the shortcut (assuming, that is, that it
> requests autoload expansion).
The thrust of my patch is to change the code so that we *always* try to
make sure the macro is defined.
> This is sort of opaquely magical behavior.
The present bug is exactly an occurrence of that magic, and my patch
aims to eliminate those occurrences.
> @@ -293,8 +289,7 @@ loaddefs-generate--make-autoload
> ;; List of modes or just t.
> (or (if (nthcdr 2 (car body))
> (list 'quote (nthcdr 2 (car body)))
> - t))))
> - ,(if macrop ''macro nil)))))
> + t))))))))
>
> So do we never want the TYPE argument of autoload to be `macro' anymore?
Since the patch removes `(cl-)-defmacro(*)` from this "shortcut" path,
none of the remaining macros define macros, so `macrop` is simply always
nil here (i.e. in the shortcut path).
> I don't know what autoload actually does with that argument.
It puts it into the "autoload object" which is then used by `macrop`.
>> Maybe a safer patch would replace the `loaddefs--defining-macros` list
>> with an alist that maps each of those macros to the feature that defines
>> it (and thus `require` that feature directly instead of loading the
>> scraped file).
>
> Thinking a bit more, maybe what is needed are /two/ lists:
>
> loaddefs--direct-autoload-macros: macros we for sure want to take the
> shortcut on. We /never/ expand calls to these, even if they are
> defined already. We just transmute them directly into (autoload ...).
AFAIC, this list should over time be reduced to the empty list.
> (optional:) loaddefs--defining-macros: alist of ( (MACRO . FEATURE) ...)
> for macros we want to require if needed to check whether they want to
> be expanded.
>
> The latter is just a convenience to avoid loading some large package
> just to process their autoloads. But it feels repetitive with the
> declare autoload-macro forms.
Exactly. And I think YAGNI.
Stefan
bug-gnu-emacs@HIDDEN:bug#79852; Package emacs.
Full text available.
Received: (at 79852) by debbugs.gnu.org; 25 Nov 2025 20:16:27 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 25 15:16:27 2025
Received: from localhost ([127.0.0.1]:55318 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vNzSc-0005A6-EA
for submit <at> debbugs.gnu.org; Tue, 25 Nov 2025 15:16:27 -0500
Received: from mail-yw1-x1135.google.com ([2607:f8b0:4864:20::1135]:49184)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <jdtsmith@HIDDEN>)
id 1vMeE2-0002LW-IQ
for 79852 <at> debbugs.gnu.org; Fri, 21 Nov 2025 22:23:51 -0500
Received: by mail-yw1-x1135.google.com with SMTP id
00721157ae682-786635a8ce4so22493657b3.2
for <79852 <at> debbugs.gnu.org>; Fri, 21 Nov 2025 19:23:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1763781823; x=1764386623; darn=debbugs.gnu.org;
h=to:references:message-id:content-transfer-encoding:cc:date
:in-reply-to:from:subject:mime-version:from:to:cc:subject:date
:message-id:reply-to;
bh=eDX2Jt8DahlOUbcLA/E3Nw3dBkaEdW3iDC4BvUQLxYo=;
b=Jf+J98cYzGO92JXi2DOmaL+uAZqzWYsW8+qL6p/PnB9lh79twu4YbhsjqG0SyBmUoJ
r1O5OKI/y1zoutZO79mwJMNj0tJ3C0N9GBjFvNtoX8KrrybLgVZbyClMtqXT3Wg5vb6e
Ls9SE06qvcdVaz1GBwCylFyQMffmsdGWbj3/rdryWK0DyB4KbWBaLzrVFtiET99p+L0K
xmAOBMvcu2u0aKwfuvpA7LJfl1defzMX1uhhADnoxbGpR6JsD4DQn1gJ4mpqcX4t5XFB
xp+kpPpiWIgi1VBCTpdDzQFbV/34AmUOrHyrauAVEry56N8BYumg2S1VLu638hVOdS9X
yS4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1763781823; x=1764386623;
h=to:references:message-id:content-transfer-encoding:cc:date
:in-reply-to:from:subject:mime-version:x-gm-gg:x-gm-message-state
:from:to:cc:subject:date:message-id:reply-to;
bh=eDX2Jt8DahlOUbcLA/E3Nw3dBkaEdW3iDC4BvUQLxYo=;
b=jiwUOO82M9EiIqBd4btl6ZB/ky0+C7lXXxuma9tY9MazmJPN6NMFz6XC+KSa1d8UvD
XiuSAjvL+vCyM2xut6HQX7LNVx8kFC68M5rvfQg2t+RASuxGeMzRp9Xwq2Ti5fhxSJBU
o8lDeA0XV5mu7f+sLLhR4hBgNY3Dsftv3QzGnHAwgDfCCdd1vPCoBQLJGq57ruElbBZj
nujbMq0Rs9qnMFurKzEJPA3ubrtvSWDd5bEHK39Kz8twczObRHeDmb4owJGSg1tENWZ+
Ch+ZhEkFIrLDcevKnrPpVM8OIht95Iw+Tadgemt2Bukf7bUFFVIIJQOX0ANP2JHfyT9m
t2Cg==
X-Gm-Message-State: AOJu0Yz31TIWxYZFQjdaWPXFWwyFgDgI22QIKi1zQ4wn7IXRVRc7hGh5
fg6OONvIpBXGQ7cZYjOCyGVTfOIOHNER2xxNeBx/yG/CAkXLjfPHgDbfuV4jOADa
X-Gm-Gg: ASbGncu7sy8ympfwOKBzqcNlYXs+9KGoTLgmyE8QgrpJKjxysDJYdB8Udh1Xxn7Amsf
j7tm6RBK0vsL/iD3wKFr2g/EIHgp+3eHrlF/fItMYtuYt/SRnngXhVwtWNP+ltjvpkNme9sKnfL
sYCRnPVcCv7sF160Bt8RWlU/CyqADRgYyFSONCFhDUbVjYrjHmh0iHocBZAo2LV1YsnL4pCBCn2
ukqtr7H7J6OB2VcQ7U/jkyqdE7u1pzA5wq01LLOhR/qQAWXSTWQ8603PP/04QimwvKZtAA9d7KU
s1HvH2Ng3dcMnlz/TfGkciex8nLOnnUWp4uO1IAx34GjguIHJM7OxYNnR0owRk2nWygd2RJXDG3
x1VEBVA0fRTSLwr8GPG9y6jeQ25M4DcaeeIBbLintVD+IPqQuSOi26VEneMe5Oy9MKCvbAou0df
Jk1/FAnIlVtdgLRCBRfTs/WYMCYHhjHaa7v/KPa+SjJPbxhdIP92/faWyA0w==
X-Google-Smtp-Source: AGHT+IGkWBvWJq3a2t8bfE7NhVYVOi0WdizCNzMzwyRbL83KnA1MECwvaEsyiNRV5GcVZmwjtWhdug==
X-Received: by 2002:a05:690c:660e:b0:786:5fb0:3c08 with SMTP id
00721157ae682-78a8b566e2fmr40920227b3.63.1763781822590;
Fri, 21 Nov 2025 19:23:42 -0800 (PST)
Received: from smtpclient.apple (cm-24-53-187-185.buckeyecom.net.
[24.53.187.185]) by smtp.gmail.com with ESMTPSA id
00721157ae682-78a7993b2afsm21412407b3.38.2025.11.21.19.23.42
(version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
Fri, 21 Nov 2025 19:23:42 -0800 (PST)
Content-Type: text/plain;
charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.700.81\))
Subject: Re: bug#79852: Incomplete autoload: `ert-deftest` docstring
highlighted as a mere string
From: JD Smith <jdtsmith@HIDDEN>
In-Reply-To: <jwvzf8fh79j.fsf-monnier+emacs@HIDDEN>
Date: Fri, 21 Nov 2025 22:23:31 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <31982A94-C1BD-4D79-AA50-27E8F9E8A462@HIDDEN>
References: <jwvzf8ku7je.fsf-monnier+emacs@HIDDEN>
<m27bvok3t6.fsf@HIDDEN> <jwvldk4sebg.fsf-monnier+emacs@HIDDEN>
<m2346bj8yz.fsf@HIDDEN> <jwvbjkwi2nk.fsf-monnier+emacs@HIDDEN>
<m2ldk0ysa3.fsf@HIDDEN> <jwvzf8fh79j.fsf-monnier+emacs@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
X-Mailer: Apple Mail (2.3826.700.81)
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79852
Cc: 79852 <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 (-)
BTW, not sure why your message isn't showing up on debbugs.=20
> On Nov 21, 2025, at 8:09=E2=80=AFAM, Stefan Monnier =
<monnier@HIDDEN> wrote:
>=20
>> I'm not totally sure why we're singling out macro-defining macros.
>=20
> What makes you think we're singling out macro-defining macros?
> The only "macros that define macros" that appear in my patch are
> `(cl-)-defmacro(*)`, the rest are macros that define functions.
Oops was confused.
>> I guess the remaining members of the list are macros where we just =
want to
>> take the shortcut ("direct autoload") route?
>=20
> The rest are macros that we have not yet adapted to use the
> `autoload-macro` declaration.
Aha. Our comment does specify that /either/ a defining macro should be =
on this list /or/ use autoload-macro expand.
;; The following macros are known to define functions, and are treated
;; specially when encountered during autoload generation, translating
;; calls to them directly into appropriate (autoload function ...)
;; forms.
;;
;; An alternative to appearing on this list is for a macro to declare
;; (autoload-macro expand),
But note that several other macros break this guideline too:
loaddefs-generate: define-globalized-minor-mode has autoload-macro =
expand
loaddefs-generate: define-minor-mode has autoload-macro expand
loaddefs-generate: cl-defun has autoload-macro expand
loaddefs-generate: cl-defmacro has autoload-macro expand
loaddefs-generate: easy-mmode-define-global-mode has autoload-macro =
expand
loaddefs-generate: easy-mmode-define-minor-mode has autoload-macro =
expand
loaddefs-generate: define-global-minor-mode has autoload-macro expand
So maybe we should give them the same treatment (removal) in this round? =
Going slower is fine too.
>> The problem is, this is not a guarantee. If for some reason a macro =
on
>> the `defining-macros' list happens to be /defined already/ during
>> bootstrap, you do /not/ take the shortcut (assuming, that is, that it
>> requests autoload expansion).
>=20
> The thrust of my patch is to change the code so that we *always* try =
to
> make sure the macro is defined.
>=20
>> This is sort of opaquely magical behavior.
>=20
> The present bug is exactly an occurrence of that magic, and my patch
> aims to eliminate those occurrences.
Fully agreement. I am (in hindsight) objecting to the three possible =
paths a macro on this list can take:
1. macro has autoload-macro expand declared and is loaded in bootstrap: =
expand
2. macro has autoload-macro expand but is /not/ loaded in bootstrap: =
shortcut
3. macro does not have autoload-macro expand: shortcut
1 and 2 are clearly confusing, since there is no list anywhere of which =
macros will be pre-loaded during bootstrap, and this could change =
anyway. So moving to eliminate #2 as you suggest is definitely a good =
idea.
>> loaddefs--direct-autoload-macros: macros we for sure want to take the
>> shortcut on. We /never/ expand calls to these, even if they are
>> defined already. We just transmute them directly into (autoload =
...).
>=20
> AFAIC, this list should over time be reduced to the empty list.
Unless speed is somehow a concern, I agree. Let the macro tell you =
what it wants. And let it expand to include what it needs among its =
generated forms. Let it generate `function-put's and `defun's that turn =
into `defalias's and then straight into `autoload's. Nothing special =
required (except remembering to use `:autoload-end' to cut out the =
irrelevancies).=20
But note the "shortcut" branch still has plenty of special processing =
for building a rich autoload statement: arguments are munged and =
special-cased, the INTERACTIVE argument is set, DOC is amended with =
usage info, etc. Not sure what if anything to do about those "features" =
we'd be foregoing. Maybe they're not essential.
bug-gnu-emacs@HIDDEN:bug#79852; Package emacs.
Full text available.
Received: (at 79852) by debbugs.gnu.org; 21 Nov 2025 03:32:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Nov 20 22:32:49 2025
Received: from localhost ([127.0.0.1]:51957 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vMHt9-0002TY-VC
for submit <at> debbugs.gnu.org; Thu, 20 Nov 2025 22:32:49 -0500
Received: from mail-yw1-x112d.google.com ([2607:f8b0:4864:20::112d]:60448)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <jdtsmith@HIDDEN>)
id 1vMHt6-0002SU-7Z
for 79852 <at> debbugs.gnu.org; Thu, 20 Nov 2025 22:32:45 -0500
Received: by mail-yw1-x112d.google.com with SMTP id
00721157ae682-786943affbaso12249397b3.0
for <79852 <at> debbugs.gnu.org>; Thu, 20 Nov 2025 19:32:44 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1763695958; x=1764300758; 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=0NNqO/13G2CR6IbvtZyNYy4I9ZT/6ZqB/k20n5oEpgc=;
b=YFFUMPFJ1K/01KBkS0Wm5C4GUvTyIbm8awJbJwKYiD3G76JYlvzC39Ci6NKP+zpBb5
dThs6IJdHkDAly32lh9QWeNCnWC09aEZh4QsLvwPF945ERAJY+RlW3emf+qTlY+dZ06q
eBrFN3JQhohX5Vy/duCx7qgDrmIHT2hluUSu+va7vTCoiCqgoC39Dz+BLUXgSIxtY6X7
xcIXvsrKdiGUyUQ5t8pXU7oF/0zTJT9nzy7uqBbYp0kjQ194XZX1GGQYiGLb7kmf8GJE
uXOy7z/JBeVNw45EfJ/gExgMCedjVZKM/0K5by4KVdPp+dy0htlGQAh11Q1PWWEcdM6Q
hZgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1763695958; x=1764300758;
h=mime-version:user-agent:message-id:date:references:in-reply-to
:subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject
:date:message-id:reply-to;
bh=0NNqO/13G2CR6IbvtZyNYy4I9ZT/6ZqB/k20n5oEpgc=;
b=KOFTtbeMzkkgXOSNoVkwdPWSDhUUExAo6zXDtPXFWBZswFUxSVxjYO8cv3PSAYaTEz
XQ2SQUOq8svNsGBmg82grnz3+krQtNqce/JYsQcR3KtdFsyi2zi+7ghRbeeVGA+gnRgi
WCGTXaQCp7TGOdq0+GW/NFZBuJvERmT/Ya/bKO2mKsHmukLXqy14/RaxpvCVsS8SvTnO
4wU58IcCVRyAg7HHKFJT87dAItPXgNPIQH5mZH0/frlftmrNP2yN5RVMGwEiYM8a9o8L
L1TeIBvxzWylQpqgQrnE1LFgcekBfyuzVk88mW5ldUa4j2FiNrBHxSO3EvH1LKmpg8Fo
ZKSw==
X-Gm-Message-State: AOJu0YztET/Ira4cvFKQmQHb98j7CtKhCMPRpWTN0psC5eR/RhXw/pfr
2IwfgxSRFLEdGzuq44z0FCvApBMfgrLJFd3K3Vgzb5jnAAIgDJhtp6Vn/kNlzVao
X-Gm-Gg: ASbGncsaGVmMLkTv5G4MRwf9sX1p0P383aAI9iahSIdc4W9vsBNCsyDTOMCXEEYiqOU
tjaUjfleY56tdIfX0zWYpwCBj0IhtEfUSSATHEWfBnjRd3Wk4lufhLxpwtjMXQR7Kzju9y4ZpWt
ATBN5NzuEkH8TPBkIpszhrZSjiMKWIAhEPB40ywryYGaozg2k9UZwq6x3gVR++c3cag7ekghac+
M4ylrGyDKfp1MQjDsTxO/OOfvTVCHDWU/G5jr39J8v/qki72MEm/er4piDxXWduxJFP6vFGdJ5O
pOc+v6bhnhff3+juMRCN2icV7c2sbMq0YCkPz+y4Vvkwm6cbaYu7G9vk3jH+HPP5WGvI2qccGTZ
DVw2yxuVgY2RW0dZY41K6E7bBJpxf61+ZTRavRFWvq4uibB5QBkMpegSobMSRe+e1gYWbWOQyoI
+iAVP7Wqaid68QvLaQnE9jiCb35B30HV2YrfLCSFr8sCuClCiusd4Jpkg=
X-Google-Smtp-Source: AGHT+IFWkCD0eVruNYMLfYNmt1j7UcmvZNY+SGR6FRWiDnniGtqL5ok0UoeX/ZhmiO83nzr+e/bUJA==
X-Received: by 2002:a05:690c:fce:b0:787:ffc0:40c7 with SMTP id
00721157ae682-78a8b576c0cmr5401297b3.68.1763695958063;
Thu, 20 Nov 2025 19:32:38 -0800 (PST)
Received: from moss-8 (cm-24-53-187-185.buckeyecom.net. [24.53.187.185])
by smtp.gmail.com with ESMTPSA id
00721157ae682-78a799278a3sm12757827b3.27.2025.11.20.19.32.37
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Thu, 20 Nov 2025 19:32:37 -0800 (PST)
From: "J.D. Smith" <jdtsmith@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
Subject: Re: bug#79852: Incomplete autoload: `ert-deftest` docstring
highlighted as a mere string
In-Reply-To: <jwvbjkwi2nk.fsf-monnier+emacs@HIDDEN> (Stefan Monnier's message
of "Thu, 20 Nov 2025 21:07:38 -0500")
References: <jwvzf8ku7je.fsf-monnier+emacs@HIDDEN>
<m27bvok3t6.fsf@HIDDEN>
<jwvldk4sebg.fsf-monnier+emacs@HIDDEN>
<m2346bj8yz.fsf@HIDDEN>
<jwvbjkwi2nk.fsf-monnier+emacs@HIDDEN>
Date: Thu, 20 Nov 2025 22:32:36 -0500
Message-ID: <m2ldk0ysa3.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: 79852
Cc: 79852 <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 (-)
Stefan Monnier <monnier@HIDDEN> writes:
>> What happens for `ert-defmacro' is as follows (in
>> `loaddefs-generate--make-autoload'):
>>
>> 1. `cl-defmacro' is /not defined/ during bootstrap loaddefs generation.
>>
>> 2. `cl-defmacro' /is/ on the list `loaddefs--defining-macros', which
>> tells our new code from 78995 not to bother loading the `ert.el' file
>> to attempt to get `cl-defmacro' defined. This /would/ have worked.
>>
>> 3. Naturally, being undefined, it also has no `autoload-macro' property
>> value. So we fall through to the next stanza.
>>
>> 4. In the `cond' stanza below that, we handle the "known special macros"
>> (including `cl-defmacro') by direct conversion to an `autoload' form.
>> Since we are never expanding `defmacro', the `declare' forms don't
>> enter.
>
> The patch below seems to still work fine.
> It causes 3 more files to be loaded during the generation of
> `lisp/loaddefs.el`:
Looks reasonable.
I'm not totally sure why we're singling out macro-defining macros. I
guess the remaining members of the list are macros where we just want to
take the shortcut ("direct autoload") route?
The problem is, this is not a guarantee. If for some reason a macro on
the `defining-macros' list happens to be /defined already/ during
bootstrap, you do /not/ take the shortcut (assuming, that is, that it
requests autoload expansion).
This is sort of opaquely magical behavior. If for some reason in the
future bootstrap emacs has more macros loaded in by default (even
indirectly), the autoload output might then mysteriously change.
@@ -293,8 +289,7 @@ loaddefs-generate--make-autoload
;; List of modes or just t.
(or (if (nthcdr 2 (car body))
(list 'quote (nthcdr 2 (car body)))
- t))))
- ,(if macrop ''macro nil)))))
+ t))))))))
So do we never want the TYPE argument of autoload to be `macro' anymore?
I don't know what autoload actually does with that argument. I guess
your point is that none of these macro-definers will take the shortcut
path any longer; they will all be defined and properly expanded all the
way down into a regular autoload, plus any extra goodies they emit.
> Maybe a safer patch would replace the `loaddefs--defining-macros` list
> with an alist that maps each of those macros to the feature that defines
> it (and thus `require` that feature directly instead of loading the
> scraped file).
Thinking a bit more, maybe what is needed are /two/ lists:
loaddefs--direct-autoload-macros: macros we for sure want to take the
shortcut on. We /never/ expand calls to these, even if they are
defined already. We just transmute them directly into (autoload ...).
(optional:) loaddefs--defining-macros: alist of ( (MACRO . FEATURE) ...)
for macros we want to require if needed to check whether they want to
be expanded.
The latter is just a convenience to avoid loading some large package
just to process their autoloads. But it feels repetitive with the
declare autoload-macro forms. If you don't want expansion, but prefer
the shortcut, you shouldn't be on this list. So basically it's just
another list to maintain of which macros we know want expansion (and how
to load them). So perhaps could we can get away with just a list of
macros we /know/ we want the shortcut for. Things like `defun`. Then
let the others get "naturally loaded".
bug-gnu-emacs@HIDDEN:bug#79852; Package emacs.
Full text available.
Received: (at 79852) by debbugs.gnu.org; 21 Nov 2025 02:07:55 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Nov 20 21:07:55 2025
Received: from localhost ([127.0.0.1]:51575 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vMGZ1-0005Hi-7k
for submit <at> debbugs.gnu.org; Thu, 20 Nov 2025 21:07:55 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:19835)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
id 1vMGYx-0005HL-VM
for 79852 <at> debbugs.gnu.org; Thu, 20 Nov 2025 21:07:52 -0500
Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1])
by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 0BB311000BC;
Thu, 20 Nov 2025 21:07:45 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
s=mail; t=1763690863;
bh=glicqe0azrpmC4oQ6bo5EqemT22sNUiEG8Xx1HuHkWg=;
h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
b=D08RltNnHWW05CiVLrTq7vuIP+S+qqz7DE2fnt7drEuFvXeISDd/Jxn0QdWkJqgmw
wHUo1pOGTrnQApNW9FqcLdUXydn1H5KFMwZDUxk9uwE8rpBFP7Ml8ITs/zUFl9soBB
wLFb+aTfcE0kDvkOfIjCl1kSkBrHvOlT+IIfjwjo3fuAVNLQQc/KOauZs3Kzc0bj0V
427YIIJflIaHwy7nkI1FMA8704rzIUCuIisx+3GWJS1xTJ0XEUwDVsz3VEYCJXn5Y6
JWUu7px4QFsobxMVS2kAB0is1cVGOShTWSFFt2MJ5/SW93ZrUGF8y7nXqH3/Ptz85S
wMSkv9z8eoXHQ==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id B809D100029;
Thu, 20 Nov 2025 21:07:43 -0500 (EST)
Received: from asado (unknown [181.28.45.30])
by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 8BDC61208C9;
Thu, 20 Nov 2025 21:07:42 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: "J.D. Smith" <jdtsmith@HIDDEN>
Subject: Re: bug#79852: Incomplete autoload: `ert-deftest` docstring
highlighted as a mere string
In-Reply-To: <m2346bj8yz.fsf@HIDDEN>
Message-ID: <jwvbjkwi2nk.fsf-monnier+emacs@HIDDEN>
References: <jwvzf8ku7je.fsf-monnier+emacs@HIDDEN>
<m27bvok3t6.fsf@HIDDEN>
<jwvldk4sebg.fsf-monnier+emacs@HIDDEN>
<m2346bj8yz.fsf@HIDDEN>
Date: Thu, 20 Nov 2025 21:07:38 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results: 0
ALL_TRUSTED -1 Passed through trusted hosts only via SMTP
AWL -0.339 Adjusted score from AWL reputation of From: address
BAYES_00 -1.9 Bayes spam probability is 0 to 1%
DKIM_SIGNED 0.1 Message has a DKIM or DK signature,
not necessarily valid
DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
domain
DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
domain POISEN_SPAM_PILL 0.1 Meta: its spam
POISEN_SPAM_PILL_1 0.1 random spam to be learned in bayes
POISEN_SPAM_PILL_3 0.1 random spam to be learned in bayes
X-SPAM-LEVEL:
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79852
Cc: 79852 <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 (---)
> What happens for `ert-defmacro' is as follows (in
> `loaddefs-generate--make-autoload'):
>
> 1. `cl-defmacro' is /not defined/ during bootstrap loaddefs generation.
>
> 2. `cl-defmacro' /is/ on the list `loaddefs--defining-macros', which
> tells our new code from 78995 not to bother loading the `ert.el' file
> to attempt to get `cl-defmacro' defined. This /would/ have worked.
>
> 3. Naturally, being undefined, it also has no `autoload-macro' property
> value. So we fall through to the next stanza.
>
> 4. In the `cond' stanza below that, we handle the "known special macros"
> (including `cl-defmacro') by direct conversion to an `autoload' form.
> Since we are never expanding `defmacro', the `declare' forms don't
> enter.
The patch below seems to still work fine.
It causes 3 more files to be loaded during the generation of
`lisp/loaddefs.el`:
[...]
loaddefs-gen: loading file frameset (for cl-defun)
Loading frameset...
INFO Scraping 1547 files for loaddefs...10%
INFO Scraping 1547 files for loaddefs...20%
loaddefs-gen: loading file semantic/analyze (for define-overloadable-function)
Loading semantic/analyze...
INFO Scraping 1547 files for loaddefs...30%
INFO Scraping 1547 files for loaddefs...40%
INFO Scraping 1547 files for loaddefs...50%
INFO Scraping 1547 files for loaddefs...60%
INFO Scraping 1547 files for loaddefs...70%
loaddefs-gen: loading file tramp-adb (for tramp--with-startup)
Loading tramp-adb...
INFO Scraping 1547 files for loaddefs...80%
loaddefs-gen: loading file grep (for define-compilation-mode)
Loading grep...
[...]
Maybe a safer patch would replace the `loaddefs--defining-macros` list
with an alist that maps each of those macros to the feature that defines
it (and thus `require` that feature directly instead of loading the
scraped file).
Stefan
diff --git a/lisp/emacs-lisp/loaddefs-gen.el b/lisp/emacs-lisp/loaddefs-gen.el
index a6430cc8f55..b6d3e771036 100644
--- a/lisp/emacs-lisp/loaddefs-gen.el
+++ b/lisp/emacs-lisp/loaddefs-gen.el
@@ -156,7 +156,7 @@ loaddefs-generate--shorten-autoload
(defconst loaddefs--defining-macros
'( define-skeleton define-derived-mode define-compilation-mode
define-generic-mode define-globalized-minor-mode define-minor-mode
- cl-defun defun* cl-defmacro defmacro* define-overloadable-function
+ define-overloadable-function
transient-define-prefix transient-define-suffix transient-define-infix
transient-define-argument transient-define-group
;; Obsolete; keep until the alias is removed.
@@ -229,7 +229,6 @@ loaddefs-generate--make-autoload
;; give packages a chance to define their macros.
(unless (or (not (symbolp car)) (fboundp car)
;; Special cases handled below
- (memq car loaddefs--defining-macros)
(memq car '(defclass defcustom deftheme defgroup nil))
(assoc file load-history)
(member file loaddefs--load-error-files))
@@ -251,12 +250,9 @@ loaddefs-generate--make-autoload
;; For known special macros which define functions, use `autoload'
;; directly.
((memq car loaddefs--defining-macros)
- (let* ((macrop (memq car '(defmacro cl-defmacro defmacro*)))
- (name (nth 1 form))
+ (let* ((name (nth 1 form))
(args (pcase car
- ((or 'defun 'defmacro
- 'defun* 'defmacro* 'cl-defun 'cl-defmacro
- 'define-overloadable-function
+ ((or 'define-overloadable-function
'transient-define-prefix 'transient-define-suffix
'transient-define-infix 'transient-define-argument
'transient-define-group)
@@ -293,8 +289,7 @@ loaddefs-generate--make-autoload
;; List of modes or just t.
(or (if (nthcdr 2 (car body))
(list 'quote (nthcdr 2 (car body)))
- t))))
- ,(if macrop ''macro nil)))))
+ t))))))))
;; For defclass forms, use `eieio-defclass-autoload'.
((eq car 'defclass)
bug-gnu-emacs@HIDDEN:bug#79852; Package emacs.
Full text available.
Received: (at 79852) by debbugs.gnu.org; 18 Nov 2025 22:02:08 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 18 17:02:08 2025
Received: from localhost ([127.0.0.1]:59991 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vLTm3-00069Y-Hx
for submit <at> debbugs.gnu.org; Tue, 18 Nov 2025 17:02:08 -0500
Received: from mail-yx1-xb12f.google.com ([2607:f8b0:4864:20::b12f]:59396)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <jdtsmith@HIDDEN>)
id 1vLTm0-00068o-LA
for 79852 <at> debbugs.gnu.org; Tue, 18 Nov 2025 17:02:05 -0500
Received: by mail-yx1-xb12f.google.com with SMTP id
956f58d0204a3-641e9422473so4243474d50.2
for <79852 <at> debbugs.gnu.org>; Tue, 18 Nov 2025 14:02:04 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1763503318; x=1764108118; 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=5DBG1/v6XqjFG6G/bRSNK8xsE5P4FH45Wmf5wGehUXU=;
b=kvnP4XFzWsDyxtcHWVfw2GR7zAQfXgQJSTm8BKChMjNVEEcgcTZn403vPr13nJ+npr
smPOpeQepmw19WbYkTOt0qUyalyYK7L8YZLaqCq+ZyEr6Gz2edaF3yFJgmd+UIreZZal
WGmVX8WSh7AvXXxtAn8y+qR1a5GPHT6u1Aeh1fwVLF3jNtGT6K5iSLYn/fowjlwFxZPZ
m9gEAHvRLn+7CzFR7wNk7KBLCxhoSKJI1IyPYpfFEeDeoF1ZilPiaXruvwjSX/OOAUnw
sE1bawfEMzPZkb2tPJT7NoAGL4PEDc9EcO6vIwfD+eq0h6YIYli0N8R42i4IQ1acJB2T
BpCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1763503318; x=1764108118;
h=mime-version:user-agent:message-id:date:references:in-reply-to
:subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject
:date:message-id:reply-to;
bh=5DBG1/v6XqjFG6G/bRSNK8xsE5P4FH45Wmf5wGehUXU=;
b=oHZyOFI8s91wlkAYuvm1HnklhZSjrbi/ikV1LfLg5BpJw6MXYgSSVzkkcqQHmsgZcq
5IQosbd4IwZkx5lL6+RZ7PDcSuk7N9Vj6Ia74L1RuHES1IL60ATWR7SzgSVagCVyGPi5
IDHjPnK4OmEJUH7GsetUmVdyfAFG0t6clVA9a+4O/SVtQtTNU6kgFp0kwcxJ9xZ5Q1QL
ySWg87gbvd8y/OCheRLPm5EIukDLdwZx1PnbUUe+Y2vYG0piVDM4s99OVik3y32nrO0j
7K45YTJXu+xbGnfUbp3qFc10CcKmimGHJhsznXEUEJb3PK+ZmI54jVAm3oJmq5nuzZBT
ES9w==
X-Gm-Message-State: AOJu0YxMk6vEe9Scqd5M/NcoezyoMCLNyGEhFK2099UQhIHVbDzdfg3s
LwvinVUj5QISsA4CrKHOTSC8L9VP7QF8f7ou0NYvVl0TRQRKspaDWqq2AmVn8g==
X-Gm-Gg: ASbGncs+KuniMQEeAyvAbsWc90Lo0CrfXlIv9vPQEllSZ7+w8+8+A+q7gGWgSih+rSS
U8xed+KKcUUT08yHjPSgpNb+NUcSSSpaWRT3hfYqfV+oiKsNrh1UBD37UW41RAWkOqRxrDFtMqV
Bk5HeaQx69414vDvItK86I6KEWKete2U1dpz5bxgVjzylw2plgYXDEeMSTbj+5W4sAcp04S6OxQ
I8BTmGqX3QoePCuJwrZePAy3AJHrznTCiGmnH/P9zqwe0pxyu/Qy5NPbDjk2VKfy97QybLeYJwY
ThAVT0heI7gVhWKbPAghBLnnb07gYchOYnBLmlgXxtdgcYovCHJ0IBRVRftGYV1pdzqwnHvnrQ/
LSG63AVYuXIlvw2NnYpfGayaFFWKrHBndc1amxMyc/oDJDXjlDGy/p4sPMcypXBynefyM7Kyv4c
s7ZIYkoJ3rwlw7JnT7hg15uvc=
X-Google-Smtp-Source: AGHT+IEkgve7FyOvednvR6npoQxWFBR7CPTnc4IuBUtmBpsyHFdX2e07ii/dvRSwCwo62X2P0XxtJA==
X-Received: by 2002:a05:690c:930c:10b0:784:88df:d9d with SMTP id
00721157ae682-78929dff3a8mr274136997b3.2.1763503318208;
Tue, 18 Nov 2025 14:01:58 -0800 (PST)
Received: from moss-8 ([131.183.131.33]) by smtp.gmail.com with ESMTPSA id
00721157ae682-788221240acsm56791087b3.33.2025.11.18.14.01.56
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Tue, 18 Nov 2025 14:01:57 -0800 (PST)
From: "J.D. Smith" <jdtsmith@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
Subject: Re: bug#79852: Incomplete autoload: `ert-deftest` docstring
highlighted as a mere string
In-Reply-To: <jwvldk4sebg.fsf-monnier+emacs@HIDDEN> (Stefan Monnier's message
of "Mon, 17 Nov 2025 13:31:39 -0500")
References: <jwvzf8ku7je.fsf-monnier+emacs@HIDDEN>
<m27bvok3t6.fsf@HIDDEN>
<jwvldk4sebg.fsf-monnier+emacs@HIDDEN>
Date: Tue, 18 Nov 2025 17:01:56 -0500
Message-ID: <m2346bj8yz.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79852
Cc: 79852 <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 (-)
--=-=-=
Content-Type: text/plain
Stefan Monnier <monnier@HIDDEN> writes:
>> Does your build not have the following in lisp/loaddefs.el?
>>
>> (function-put 'ert-deftest 'doc-string-elt 3)
>> (function-put 'ert-deftest 'lisp-indent-function 2)
>
> Nope:
>
> % rm **/*loaddefs.el src/bootstrap-emacs src/emacs
> % make -j4
> [...]
> % grep ert-deftest lisp/loaddefs.el
> (autoload 'ert-deftest "ert" "\
> the same arguments and keywords as `ert-deftest' and is intended to be
> same arguments and keywords as `ert-deftest' and is intended to be used
> %
>
> Do you?
FYI, I run the autoload-expand patch via v30. Just gave it another try
and indeed, no sign of the `function-put's.
>> We added:
>>
>> (autoload-macro expand)) ; expand to defmacro on autoload gen
>>
>> to cl-defmacro. Do you have (function-get 'cl-defmacro 'autoload-macro)?
>
> Before loading `cl-lib` it's nil and after loading it, it's `expand`,
> as expected.
OK, that's the problem. It would appear in path #78995 we never closed
the loop on what to do about `cl-macs' macros not yet being available
during bootstrap (because `cl-loaddefs.el' does not yet exist). There I
said:
> 3. Some macros' autoload treatment depend on whether they are defined at
> autoload-generation time.
>
> Such macros are both on the short-cut list /and/ request expansion. So
> they are expanded, but only if they are defined at the time autoload
> generation occurs. Most are, but some, e.g. cl-macs, are not. So they
> go through the "short-cut" instead.
and you said:
> So, the general problem is: your patch will sometimes `eval-buffer` for
> a buffer which doesn't expect to be evaluated before its package's
> `FOO-loaddefs.el` has been created. I suspect that in most cases this
> can be fixed by replacing
>
> (require 'foo-loaddefs)
> by
> (require 'foo-loaddefs nil t)
>
> It's not ideal, but I think it's acceptable. Maybe it won't always be
> sufficient either. E.g. in `cl-lib` we solved this problem (for
> a different reason) with:
>
> (unless (load "cl-loaddefs" 'noerror 'quiet)
> ;; When bootstrapping, cl-loaddefs hasn't been built yet!
> (require 'cl-macs)
> (require 'cl-seq)
It appears there's a subtle version of this very issue which
`ert-defmacro' is dealing with. There are two paths by which a macro
call (like `(cl-defmacro ert-deftest ...') can get turned into an
`autoload' statement:
1. By being expanded, because the macro requests it, all the way to a
form which will be mapped to `autoload' (e.g. `defalias').
2. By taking the "shortcut" and getting transmuted directly into an
`autoload'.
What happens for `ert-defmacro' is as follows (in
`loaddefs-generate--make-autoload'):
1. `cl-defmacro' is /not defined/ during bootstrap loaddefs generation.
2. `cl-defmacro' /is/ on the list `loaddefs--defining-macros', which
tells our new code from 78995 not to bother loading the `ert.el' file
to attempt to get `cl-defmacro' defined. This /would/ have worked.
3. Naturally, being undefined, it also has no `autoload-macro' property
value. So we fall through to the next stanza.
4. In the `cond' stanza below that, we handle the "known special macros"
(including `cl-defmacro') by direct conversion to an `autoload' form.
Since we are never expanding `defmacro', the `declare' forms don't
enter.
We /could/ simply load `cl-macs' (as in the attached). But I guess
instead we should ask ourselves which of `loaddefs--defining-macros'
are:
a) not likely to be defined during bootstrap, and
b) would benefit from real macro expansion (vs. shortcut transmutation).
Then we can take these off the list, so they can be loaded "on demand"?
Current list:
(defconst loaddefs--defining-macros
'(define-skeleton define-derived-mode
define-compilation-mode define-generic-mode
easy-mmode-define-global-mode define-global-minor-mode
define-globalized-minor-mode
easy-mmode-define-minor-mode define-minor-mode
cl-defun defun* cl-defmacro defmacro*
define-overloadable-function
transient-define-prefix transient-define-suffix
transient-define-infix transient-define-argument))
Thoughts?
--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment;
filename=0001-lisp-emacs-lisp-loaddefs-gen.el-loaddefs-generate-em.patch
Content-Description: loaddefs-gen patch
From 14ba02cb6c9d9cda44ef6463cf66101da4da1910 Mon Sep 17 00:00:00 2001
From: JD Smith <93749+jdtsmith@HIDDEN>
Date: Tue, 18 Nov 2025 16:06:47 -0500
Subject: [PATCH] * lisp/emacs-lisp/loaddefs-gen.el
(loaddefs-generate--emacs-batch):
Require cl-macs for bootstrapping loaddefs.el.
---
lisp/emacs-lisp/loaddefs-gen.el | 3 +++
1 file changed, 3 insertions(+)
diff --git a/lisp/emacs-lisp/loaddefs-gen.el b/lisp/emacs-lisp/loaddefs-gen.el
index af5d98dd188..d6259cd9c6a 100644
--- a/lisp/emacs-lisp/loaddefs-gen.el
+++ b/lisp/emacs-lisp/loaddefs-gen.el
@@ -805,6 +805,9 @@ loaddefs-generate--emacs-batch
(let ((args command-line-args-left)
(output-file (expand-file-name "loaddefs.el" lisp-directory)))
(setq command-line-args-left nil)
+ ;; When bootstrapping, cl-loaddefs hasn't been built yet!
+ (require 'cl-macs)
+
(loaddefs-generate
args output-file
(loaddefs-generate--excluded-files)
--
2.48.1
--=-=-=--
bug-gnu-emacs@HIDDEN:bug#79852; Package emacs.
Full text available.
Received: (at 79852) by debbugs.gnu.org; 17 Nov 2025 18:31:55 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Nov 17 13:31:55 2025
Received: from localhost ([127.0.0.1]:53781 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vL414-0000hy-PD
for submit <at> debbugs.gnu.org; Mon, 17 Nov 2025 13:31:55 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:20169)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
id 1vL411-0000hX-ES
for 79852 <at> debbugs.gnu.org; Mon, 17 Nov 2025 13:31:52 -0500
Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1])
by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 87566441EA2;
Mon, 17 Nov 2025 13:31:45 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
s=mail; t=1763404304;
bh=h5QxL0PlDDturlxay+bYXKCCkSMXiePVdWiERkRiqLM=;
h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
b=a7iNH//zJDtKaBZtX/K78id3oumtiiu/PYecL2N02TLxPXfm80kt12sxKOm0KXjtp
iZV/mOWRMgVvgaFRy6eB+7ggvqnVBxCXz2culMJg6dFmYgWzh4cp8/v2tj8qg1H51A
p/OoT5+hqa6x01CnumkxCVwbeRoahn4MmeEouHt8smI+NvSxR/BPcdK9Oci+9jglvB
CDeXNBDkvKjpBAfzmFv0T6kf27UYKJOptwQvuRP8ZLrJLWHcdIBtbNK93nVA6acYcX
H7Ginm8YtgTQs+4Za5KuPCJ0XOxOyiTJmH8l89xMMXu+iQRRCaR40Xm7x2NPOxTk6h
NnYO9KLisPWGg==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 6020B441E8F;
Mon, 17 Nov 2025 13:31:44 -0500 (EST)
Received: from asado (unknown [200.123.191.29])
by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 36EFB1205FB;
Mon, 17 Nov 2025 13:31:42 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: "J.D. Smith" <jdtsmith@HIDDEN>
Subject: Re: bug#79852: Incomplete autoload: `ert-deftest` docstring
highlighted as a mere string
In-Reply-To: <m27bvok3t6.fsf@HIDDEN>
Message-ID: <jwvldk4sebg.fsf-monnier+emacs@HIDDEN>
References: <jwvzf8ku7je.fsf-monnier+emacs@HIDDEN>
<m27bvok3t6.fsf@HIDDEN>
Date: Mon, 17 Nov 2025 13:31:39 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results: 0
ALL_TRUSTED -1 Passed through trusted hosts only via SMTP
AWL 0.192 Adjusted score from AWL reputation of From: address
BAYES_00 -1.9 Bayes spam probability is 0 to 1%
DKIM_SIGNED 0.1 Message has a DKIM or DK signature,
not necessarily valid
DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
domain
DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
domain
X-SPAM-LEVEL:
X-Spam-Score: 1.3 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
has NOT identified this incoming email as spam. The original
message has been attached to this so you can view it or label
similar future email. If you have any questions, see
the administrator of that system for details.
Content preview: > Does your build not have the following in lisp/loaddefs.el?
> > (function-put 'ert-deftest 'doc-string-elt 3) > (function-put 'ert-deftest
'lisp-indent-function 2) Nope: % rm **/*loaddefs.el src/bootstrap-emacs
src/emacs
% make -j4 [...] % grep ert-deftest lisp/loaddefs.el (autoload 'ert-deftest
"ert" "\ the same arguments and keywords as `ert-deftest' and is intende
[...] Content analysis details: (1.3 points, 10.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS
[200.123.191.29 listed in zen.spamhaus.org]
0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The
query to Validity was blocked. See
https://knowledge.validity.com/hc/en-us/articles/20961730681243
for more information.
[132.204.25.50 listed in bl.score.senderscore.com]
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
-2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/,
medium trust [132.204.25.50 listed in list.dnswl.org]
-0.0 SPF_PASS SPF: sender matches SPF record
0.0 RCVD_IN_VALIDITY_SAFE_BLOCKED RBL: ADMINISTRATOR NOTICE: The
query to Validity was blocked. See
https://knowledge.validity.com/hc/en-us/articles/20961730681243
for more information.
[132.204.25.50 listed in sa-accredit.habeas.com]
X-Debbugs-Envelope-To: 79852
Cc: 79852 <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: 0.3 (/)
> Does your build not have the following in lisp/loaddefs.el?
>
> (function-put 'ert-deftest 'doc-string-elt 3)
> (function-put 'ert-deftest 'lisp-indent-function 2)
Nope:
% rm **/*loaddefs.el src/bootstrap-emacs src/emacs
% make -j4
[...]
% grep ert-deftest lisp/loaddefs.el
(autoload 'ert-deftest "ert" "\
the same arguments and keywords as `ert-deftest' and is intended to be
same arguments and keywords as `ert-deftest' and is intended to be used
%
Do you?
> We added:
>
> (autoload-macro expand)) ; expand to defmacro on autoload gen
>
> to cl-defmacro. Do you have (function-get 'cl-defmacro 'autoload-macro)?
Before loading `cl-lib` it's nil and after loading it, it's `expand`,
as expected.
Stefan
bug-gnu-emacs@HIDDEN:bug#79852; Package emacs.
Full text available.Received: (at 79852) by debbugs.gnu.org; 17 Nov 2025 16:43:44 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Nov 17 11:43:44 2025 Received: from localhost ([127.0.0.1]:53486 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vL2KN-0003R0-U3 for submit <at> debbugs.gnu.org; Mon, 17 Nov 2025 11:43:44 -0500 Received: from mail-yx1-xb132.google.com ([2607:f8b0:4864:20::b132]:55497) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <jdtsmith@HIDDEN>) id 1vL2KK-0003Qh-WE for 79852 <at> debbugs.gnu.org; Mon, 17 Nov 2025 11:43:41 -0500 Received: by mail-yx1-xb132.google.com with SMTP id 956f58d0204a3-63fca769163so4124983d50.2 for <79852 <at> debbugs.gnu.org>; Mon, 17 Nov 2025 08:43:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763397815; x=1764002615; 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=F9cN1LXf+jvOWEU1wvaA6ts29Yv9R2Bsxc/EMRp+/NY=; b=IeuYzOoguhPN3PMCmgY21NZzHkA02waM08Q7qGE7FGBy/12KUhX3dmvfqlZ+S2eN10 jDxoE5uI1jmIR6KLbeAkBNMpg5ohMBWjysjEIN7vaOM95y7eYJsQivZswf/J3fzrWHD3 sLXU9SoFP5kNulgFjEoUhFaXHbnw8PeTQQX+NYrnQOdVCnRSlN8xrOcosVjidyVMVD2s AKPj4y4NPAhTt/RbF65IWO2DANJuwi4F6MxBDPwUm+yrI7pUtCS48jqQQRMsxvBPbtR+ aB419nXPiK/sAiUSy4K6VAVr4xAzt9snU9/goaPGLkHaPJgUXOSrBShedGBVfVk6I5Ef fAMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763397815; x=1764002615; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=F9cN1LXf+jvOWEU1wvaA6ts29Yv9R2Bsxc/EMRp+/NY=; b=w4RLpc8oADlNZhpHkbvJeZWSeCVRcCsh++P9L0dlyBVnudrq9rsGds/Ul+w857VH2N sgyiKfPGHwvvHJZcF7tYtgya3iA+jtDvRPVvZLPXIH/C61W/WBGstWoEz744Z3TEdyQM SK0oGdiFTNRZOr3dukK+YgS7D3iuUQjmKQ8mkijmCXE2svyk1UUG6NZgSdBShNStOoRN bqVb/V8HWwKiKUESpR6xTFDEeEWXD8hple6sGuRQyPoKkNpFLf3qsNgvMoRqvSJPFC9n rICpDBM6cX4S6hk9lcaAFRvKiOlzPt5rG4GdeGVMZ9f8WXUGrZ5XRdRn5+SJBurukJw+ qEWA== X-Gm-Message-State: AOJu0YzPv3BcSK1Peyb+IPCALie9gpIbVJ2APUT81n0uKnhIO1Y+V++b /KYjGCg60pk4JtcMvkCuFBW5oqpZSSL7xrVSf0t5gQezhr6/k0rAasa7dVYoRw== X-Gm-Gg: ASbGncthTI9PDsw4JDDeqEFCQM0vOucDkaLStIOln5EjH3IaPMtBn1ci1PTxXqVcl3H q2woL1LldI1y5AZBSeU1nM1o2jWWChugoCMHnqEotB9SqupEdk1w08m8oElY7w6WFuR+bqG5z0G 21BbLXoeKfvjtXC/AAELDJnNX4YX13kQX1yWvh1tt2slKTnNPRyIvhCyYRyYGHBrkZyGEo23MTD Q5aW6I39r2RNlPdxeFT9fjqBTdS5TnJLyBFYlaiSVAzszGcGzxRkOZwzdTAH7GLPN/VQGgMD8eJ yWUqQeKQBp5SFq9K50by/UpxSsc1KRAimAokGI60VfDTQ6+punT8xjoBLqlTl+neKmOyBX8Jzj/ cPQ98upQ2ajb06vWDfzEgkScZbiMWcGX1xSwuvoCTMJYapkeM0l8KGMO4lmEse5UhSnmlkZmsQ+ Hn92n7+PVo/SFa9D5djjIGgzautw+awtzeWA== X-Google-Smtp-Source: AGHT+IEdVY+ceXA1EyWjIJPpIoxD748VfknxoqsH5mCeV6pASIgzcCxzphUbS/OWA/nfWpSUGPMUDQ== X-Received: by 2002:a53:acc2:0:20b0:63f:948b:fef6 with SMTP id 956f58d0204a3-641e75e68f5mr9064346d50.43.1763397814673; Mon, 17 Nov 2025 08:43:34 -0800 (PST) Received: from moss-8 (cm-24-53-187-185.buckeyecom.net. [24.53.187.185]) by smtp.gmail.com with ESMTPSA id 956f58d0204a3-6410ead4394sm4803618d50.21.2025.11.17.08.43.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Nov 2025 08:43:34 -0800 (PST) From: "J.D. Smith" <jdtsmith@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> Subject: Re: bug#79852: Incomplete autoload: `ert-deftest` docstring highlighted as a mere string In-Reply-To: <jwvzf8ku7je.fsf-monnier+emacs@HIDDEN> (Stefan Monnier's message of "Mon, 17 Nov 2025 08:20:35 -0500") References: <jwvzf8ku7je.fsf-monnier+emacs@HIDDEN> Date: Mon, 17 Nov 2025 11:43:33 -0500 Message-ID: <m27bvok3t6.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: 79852 Cc: 79852 <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 (-) Stefan Monnier <monnier@HIDDEN> writes: > Package: Emacs > Version: 31.0.50 > > > Upon Emacs startup `ert-deftest` does not have any `doc-string-elt` nor > `lisp-indent-function` properties any more, so indentation gets it wrong > and the docstring is highlighted as a mere string. > After loading `ert` the problem disappears. > > This is a regression compared to Emacs-30. I'm not sure why this > affects `ert-deftest` and not say `define-inline` or `pcase`. > Maybe it's because it's defined with `cl-defmacro`? > > Here is what I see right after Emacs startup for those three autoloaded macros: > > ELISP> (symbol-plist 'ert-deftest) > nil > > ELISP> (symbol-plist 'define-inline) > (lisp-indent-function defun doc-string-elt 3 autoload-macro expand) > > ELISP> (symbol-plist 'pcase) > (lisp-indent-function 1 function-documentation (pcase--make-docstring)) > Does your build not have the following in lisp/loaddefs.el? (function-put 'ert-deftest 'doc-string-elt 3) (function-put 'ert-deftest 'lisp-indent-function 2) We added: (autoload-macro expand)) ; expand to defmacro on autoload gen to cl-defmacro. Do you have (function-get 'cl-defmacro 'autoload-macro)?
bug-gnu-emacs@HIDDEN:bug#79852; Package emacs.
Full text available.
Received: (at submit) by debbugs.gnu.org; 17 Nov 2025 13:21:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Nov 17 08:21:06 2025
Received: from localhost ([127.0.0.1]:51258 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vKzAG-0008UQ-5f
for submit <at> debbugs.gnu.org; Mon, 17 Nov 2025 08:21:06 -0500
Received: from lists.gnu.org ([2001:470:142::17]:37894)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
id 1vKzAC-0008TV-2V
for submit <at> debbugs.gnu.org; Mon, 17 Nov 2025 08:21:02 -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 <monnier@HIDDEN>)
id 1vKzA6-00087G-0N
for bug-gnu-emacs@HIDDEN; Mon, 17 Nov 2025 08:20:54 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50])
by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from <monnier@HIDDEN>)
id 1vKz9z-00089l-O8
for bug-gnu-emacs@HIDDEN; Mon, 17 Nov 2025 08:20:51 -0500
Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1])
by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 94277100383
for <bug-gnu-emacs@HIDDEN>; Mon, 17 Nov 2025 08:20:45 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
s=mail; t=1763385640;
bh=qp4pcZa0RSr8vYF88bqY2kqlJCDud5ZXmVMa8LQYva8=;
h=From:To:Subject:Date:From;
b=B2oFeQRUtpOzz8HVa1GUlFhT8UILmhF5Z9xzt+ok/GNXLZdRpLAKykerqujRQs/L7
G5LA3Smuo1H7dDnAmAvpmBr/CAv/sExr6qCNZy1el641TZyLiyxrUHrpRJ/MfgChxD
4L3mlWDxPl2813sBreunHHqCLfy3UOxg74y1Ox366T+apoPuaEjtiHu0AMC25CNIvH
xJh80aoouald34rpI346Dfd2iuclFqmP+0kLf3vOQuJEYZ32Hnjdpjfb6/zxLRnyVL
6miTAZcDxl5ojsPDdcRT+nE8sz+ilRfhzhkj3KqwUWYBxEttraF/MT9bMi6/dGPM2Q
tvKEfZHACadwA==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 55953100146
for <bug-gnu-emacs@HIDDEN>; Mon, 17 Nov 2025 08:20:40 -0500 (EST)
Received: from asado (unknown [181.28.45.30])
by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 0CFC8120384
for <bug-gnu-emacs@HIDDEN>; Mon, 17 Nov 2025 08:20:38 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: Incomplete autoload: `ert-deftest` docstring highlighted as a mere
string
Message-ID: <jwvzf8ku7je.fsf-monnier+emacs@HIDDEN>
X-Debbugs-Cc: monnier@HIDDEN, JD Smith <jdtsmith@HIDDEN>
Date: Mon, 17 Nov 2025 08:20:35 -0500
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results: 0
ALL_TRUSTED -1 Passed through trusted hosts only via SMTP
AWL -0.141 Adjusted score from AWL reputation of From: address
BAYES_00 -1.9 Bayes spam probability is 0 to 1%
DKIM_SIGNED 0.1 Message has a DKIM or DK signature,
not necessarily valid
DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
domain
DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
domain
X-SPAM-LEVEL:
Received-SPF: pass client-ip=132.204.25.50;
envelope-from=monnier@HIDDEN; helo=mailscanner.iro.umontreal.ca
X-Spam_score_int: -42
X-Spam_score: -4.3
X-Spam_bar: ----
X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3,
RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,
SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 0.0 (/)
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: -1.0 (-)
Package: Emacs
Version: 31.0.50
Upon Emacs startup `ert-deftest` does not have any `doc-string-elt` nor
`lisp-indent-function` properties any more, so indentation gets it wrong
and the docstring is highlighted as a mere string.
After loading `ert` the problem disappears.
This is a regression compared to Emacs-30. I'm not sure why this
affects `ert-deftest` and not say `define-inline` or `pcase`.
Maybe it's because it's defined with `cl-defmacro`?
Here is what I see right after Emacs startup for those three autoloaded macros:
ELISP> (symbol-plist 'ert-deftest)
nil
ELISP> (symbol-plist 'define-inline)
(lisp-indent-function defun doc-string-elt 3 autoload-macro expand)
ELISP> (symbol-plist 'pcase)
(lisp-indent-function 1 function-documentation (pcase--make-docstring))
ELISP>
- Stefan
In GNU Emacs 31.0.50 (build 2, i686-pc-linux-gnu, GTK+ Version 3.24.51,
cairo version 1.18.4) of 2025-10-25 built on asado
Repository revision: de156dfd83760bab65119164b924d77b327d1bb7
Repository branch: work
Windowing system distributor 'The X.Org Foundation', version 11.0.12101016
System Description: Debian GNU/Linux forky/sid
Configured using:
'configure -C --enable-checking --enable-check-lisp-object-type --with-modules --with-cairo --with-tiff=ifavailable
'CFLAGS=-Wall -g3 -Og -Wno-pointer-sign'
PKG_CONFIG_PATH=/home/monnier/lib/pkgconfig'
Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG LCMS2
LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY
PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TOOLKIT_SCROLL_BARS
TREE_SITTER WEBP X11 XDBE XIM XINERAMA XINPUT2 XPM XRANDR GTK3 ZLIB
Important settings:
value of $LANG: fr_CH.UTF-8
locale-coding-system: utf-8-unix
Major mode: Summary
Minor modes in effect:
c-electric-flag: t
gnus-mailing-list-mode: t
server-mode: t
electric-pair-mode: t
url-handler-mode: t
global-reveal-mode: t
reveal-mode: t
auto-insert-mode: t
savehist-mode: t
minibuffer-electric-default-mode: t
global-compact-docstrings-mode: t
global-corfu-mode: t
global-eldoc-mode: t
eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
global-prettify-symbols-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
minibuffer-nonselected-mode: t
minibuffer-regexp-mode: t
global-sanity-check-change-functions-mode: t
buffer-read-only: t
line-number-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
Load-path shadows:
/home/monnier/src/emacs/nongnu/packages/flx-ido/flx hides /home/monnier/src/emacs/nongnu/packages/flx/flx
/home/monnier/src/emacs/nongnu/packages/flx-ido/flx-ido hides /home/monnier/src/emacs/nongnu/packages/flx/flx-ido
/home/monnier/src/emacs/nongnu/packages/helm/helm-sys hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-sys
/home/monnier/src/emacs/nongnu/packages/helm/helm-files hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-files
/home/monnier/src/emacs/nongnu/packages/helm/helm-x-files hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-x-files
/home/monnier/src/emacs/nongnu/packages/helm/helm-external hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-external
/home/monnier/src/emacs/nongnu/packages/helm/helm-regexp hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-regexp
/home/monnier/src/emacs/nongnu/packages/helm/helm-net hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-net
/home/monnier/src/emacs/nongnu/packages/helm/helm-buffers hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-buffers
/home/monnier/src/emacs/nongnu/packages/helm/helm-help hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-help
/home/monnier/src/emacs/nongnu/packages/helm/helm hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm
/home/monnier/src/emacs/nongnu/packages/helm/helm-lib hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-lib
/home/monnier/src/emacs/nongnu/packages/helm/helm-elisp hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-elisp
/home/monnier/src/emacs/nongnu/packages/helm/helm-global-bindings hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-global-bindings
/home/monnier/src/emacs/nongnu/packages/helm/helm-types hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-types
/home/monnier/src/emacs/nongnu/packages/helm/helm-locate hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-locate
/home/monnier/src/emacs/nongnu/packages/helm/helm-for-files hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-for-files
/home/monnier/src/emacs/nongnu/packages/helm/helm-x-icons hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-x-icons
/home/monnier/src/emacs/nongnu/packages/helm/helm-font hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-font
/home/monnier/src/emacs/nongnu/packages/helm/helm-adaptive hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-adaptive
/home/monnier/src/emacs/nongnu/packages/helm/helm-dabbrev hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-dabbrev
/home/monnier/src/emacs/nongnu/packages/helm/helm-semantic hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-semantic
/home/monnier/src/emacs/nongnu/packages/helm/helm-easymenu hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-easymenu
/home/monnier/src/emacs/nongnu/packages/helm/helm-tags hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-tags
/home/monnier/src/emacs/nongnu/packages/helm/helm-epa hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-epa
/home/monnier/src/emacs/nongnu/packages/helm/helm-mode hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-mode
/home/monnier/src/emacs/nongnu/packages/helm/helm-command hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-command
/home/monnier/src/emacs/nongnu/packages/helm/helm-info hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-info
/home/monnier/src/emacs/nongnu/packages/helm/helm-misc hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-misc
/home/monnier/src/emacs/nongnu/packages/helm/helm-packages hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-packages
/home/monnier/src/emacs/nongnu/packages/helm/helm-bookmark hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-bookmark
/home/monnier/src/emacs/nongnu/packages/helm/helm-grep hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-grep
/home/monnier/src/emacs/nongnu/packages/helm/helm-imenu hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-imenu
/home/monnier/src/emacs/nongnu/packages/helm/helm-eval hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-eval
/home/monnier/src/emacs/nongnu/packages/helm/helm-color hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-color
/home/monnier/src/emacs/nongnu/packages/helm/helm-find hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-find
/home/monnier/src/emacs/nongnu/packages/helm/helm-id-utils hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-id-utils
/home/monnier/src/emacs/nongnu/packages/helm/helm-man hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-man
/home/monnier/src/emacs/nongnu/packages/helm/helm-fd hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-fd
/home/monnier/src/emacs/nongnu/packages/helm/helm-eshell hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-eshell
/home/monnier/src/emacs/nongnu/packages/helm/helm-ring hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-ring
/home/monnier/src/emacs/nongnu/packages/helm/helm-core hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-core
/home/monnier/src/emacs/nongnu/packages/helm/helm-utils hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-utils
/home/monnier/src/emacs/nongnu/packages/helm/helm-occur hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-occur
/home/monnier/src/emacs/nongnu/packages/helm/helm-source hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-source
/home/monnier/src/emacs/nongnu/packages/helm/helm-multi-match hides /home/monnier/src/emacs/nongnu/packages/helm-core/helm-multi-match
/home/monnier/src/emacs/nongnu/packages/jade-mode/stylus-mode hides /home/monnier/src/emacs/nongnu/packages/stylus-mode/stylus-mode
/home/monnier/src/emacs/nongnu/packages/jade-mode/jade-mode hides /home/monnier/src/emacs/nongnu/packages/stylus-mode/jade-mode
/home/monnier/src/emacs/nongnu/packages/jade-mode/sws-mode hides /home/monnier/src/emacs/nongnu/packages/stylus-mode/sws-mode
/home/monnier/src/emacs/nongnu/packages/totp-auth/totp-auth hides /home/monnier/src/emacs/nongnu/packages/base32/totp-auth
/home/monnier/src/emacs/nongnu/packages/totp-auth/base32 hides /home/monnier/src/emacs/nongnu/packages/base32/base32
/home/monnier/src/emacs/nongnu/packages/totp-auth/totp-auth-hmac hides /home/monnier/src/emacs/nongnu/packages/base32/totp-auth-hmac
/home/monnier/src/emacs/nongnu/packages/totp-auth/totp-auth-interop hides /home/monnier/src/emacs/nongnu/packages/base32/totp-auth-interop
/home/monnier/src/emacs/elpa/packages/denote-sequence/denote-sequence hides /home/monnier/src/emacs/elpa/packages/denote/denote-sequence
/home/monnier/src/emacs/nongnu/packages/paredit/test hides /home/monnier/src/emacs/elpa/packages/easy-kill/test
/home/monnier/src/emacs/nongnu/packages/sweeprolog/theme-loaddefs hides /home/monnier/src/emacs/elpa/packages/ef-themes/theme-loaddefs
/home/monnier/src/emacs/elpa/packages/embark-consult/embark hides /home/monnier/src/emacs/elpa/packages/embark/embark
/home/monnier/src/emacs/elpa/packages/embark-consult/embark-consult hides /home/monnier/src/emacs/elpa/packages/embark/embark-consult
/home/monnier/src/emacs/elpa/packages/embark-consult/embark-org hides /home/monnier/src/emacs/elpa/packages/embark/embark-org
/home/monnier/src/emacs/elpa/packages/embark-consult/avy-embark-collect hides /home/monnier/src/emacs/elpa/packages/embark/avy-embark-collect
/home/monnier/src/emacs/elpa/packages/ada-mode/prj hides /home/monnier/src/emacs/elpa/packages/gpr-query/prj
/home/monnier/src/emacs/nongnu/packages/forth-mode/build hides /home/monnier/src/emacs/elpa/packages/lentic/build
/home/monnier/src/emacs/nongnu/packages/paredit/test hides /home/monnier/src/emacs/elpa/packages/num3-mode/test
/home/monnier/src/emacs/elpa/packages/llm/plz-event-source hides /home/monnier/src/emacs/elpa/packages/plz-event-source/plz-event-source
/home/monnier/src/emacs/elpa/packages/llm/plz-media-type hides /home/monnier/src/emacs/elpa/packages/plz-media-type/plz-media-type
/home/monnier/src/emacs/elpa/packages/realgud-lldb/cask-install hides /home/monnier/src/emacs/elpa/packages/realgud-trepan-ni/cask-install
/home/monnier/src/emacs/elpa/packages/realgud-lldb/cask-install hides /home/monnier/src/emacs/elpa/packages/realgud/cask-install
/home/monnier/src/emacs/elpa/packages/realgud-lldb/cask-install hides /home/monnier/src/emacs/elpa/packages/loc-changes/cask-install
/home/monnier/src/emacs/nongnu/packages/sweeprolog/theme-loaddefs hides /home/monnier/src/emacs/elpa/packages/standard-themes/theme-loaddefs
/home/monnier/src/emacs/nongnu/packages/sweeprolog/theme-loaddefs hides /home/monnier/src/emacs/elpa/packages/modus-themes/theme-loaddefs
/home/monnier/src/emacs/nongnu/packages/vm/lisp/vcard hides /home/monnier/src/emacs/elpa/packages/vcard/vcard
/home/monnier/src/emacs/elpa/packages/hydra/hydra-examples hides /home/monnier/src/emacs/elpa/packages/lv/hydra-examples
/home/monnier/src/emacs/elpa/packages/hydra/lv hides /home/monnier/src/emacs/elpa/packages/lv/lv
/home/monnier/src/emacs/elpa/packages/hydra/hydra hides /home/monnier/src/emacs/elpa/packages/lv/hydra
/home/monnier/src/emacs/elpa/packages/hydra/hydra-ox hides /home/monnier/src/emacs/elpa/packages/lv/hydra-ox
/home/monnier/src/emacs/elpa/packages/hydra/hydra-test hides /home/monnier/src/emacs/elpa/packages/lv/hydra-test
/home/monnier/src/emacs/elpa/packages/transient/lisp/transient hides /home/monnier/src/emacs/work/lisp/transient
/home/monnier/src/emacs/nongnu/packages/sweeprolog/theme-loaddefs hides /home/monnier/src/emacs/work/lisp/theme-loaddefs
/home/monnier/src/emacs/elpa/packages/csharp-mode/csharp-mode hides /home/monnier/src/emacs/work/lisp/progmodes/csharp-mode
/home/monnier/src/emacs/nongnu/packages/lua-mode/lua-mode hides /home/monnier/src/emacs/work/lisp/progmodes/lua-mode
/home/monnier/src/emacs/nongnu/packages/teco/teco hides /home/monnier/src/emacs/work/lisp/emulation/teco
/home/monnier/src/emacs/work/lisp/keymap hides /home/monnier/src/emacs/work/lisp/emacs-lisp/keymap
/home/monnier/src/emacs/elpa/packages/crisp/crisp hides /home/monnier/src/emacs/work/lisp/obsolete/crisp
/home/monnier/src/emacs/elpa/packages/idlwave/idlw-complete-structtag hides /home/monnier/src/emacs/work/lisp/obsolete/idlw-complete-structtag
/home/monnier/src/emacs/elpa/packages/package-x/package-x hides /home/monnier/src/emacs/work/lisp/obsolete/package-x
/home/monnier/src/emacs/elpa/packages/landmark/landmark hides /home/monnier/src/emacs/work/lisp/obsolete/landmark
/home/monnier/src/emacs/elpa/packages/idlwave/idlw-shell hides /home/monnier/src/emacs/work/lisp/obsolete/idlw-shell
/home/monnier/src/emacs/elpa/packages/idlwave/idlwave hides /home/monnier/src/emacs/work/lisp/obsolete/idlwave
/home/monnier/src/emacs/elpa/packages/idlwave/idlw-toolbar hides /home/monnier/src/emacs/work/lisp/obsolete/idlw-toolbar
/home/monnier/src/emacs/elpa/packages/idlwave/idlw-help hides /home/monnier/src/emacs/work/lisp/obsolete/idlw-help
Features:
(shadow emacsbug tabify markdown-mode edit-indirect package vc-annotate
vc-dir ewoc vc-filewise helm-bookmark helm-x-icons helm-net
helm-adaptive helm-info helm-utils helm-types helm-help helm
helm-global-bindings helm-easymenu helm-core helm-source
helm-multi-match helm-lib async bookmark pg-custom proof-config
proof-faces proof-useropts pg-vars pg-pamacs proof-compat completion
completion-table pcmpl-unix shell etags fileloop wisi-run-indent-test
wisi-process-parse wisi-prj wisi xref wisi-fringe wisi-parse-common
semantic/lex semantic/fw mode-local find-file descr-text quail oc-basic
org-element org-persist org-id org-refile org-element-ast inline
avl-tree generator ol-eww eww vtable url-queue mm-url ol-rmail ol-mhe
ol-irc ol-info ol-gnus nnselect ol-docview ol-bibtex bibtex ol-bbdb
ol-w3m ol-doi org-link-doi cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-langs cc-vars cc-defs sm-c-mode
prefixed-core shortdoc comp-common eev-intro rect view cal-china lunar
solar cal-dst cal-bahai cal-islam cal-hebrew holidays holiday-loaddefs
cal-french org-journal org-crypt ob-octave org ob ob-tangle ob-ref
ob-lob ob-table ob-exp org-macro org-src sh-script smie treesit
make-mode ob-comint org-pcomplete pcomplete org-list org-footnote
org-faces org-entities org-version ob-emacs-lisp ob-core ob-eval
org-cycle org-table ol rx org-fold org-fold-core org-keys oc
org-loaddefs org-compat org-macs cal-iso diary-lib diary-loaddefs
cal-move cal-menu calendar cal-loaddefs bbdb-com gnus-fun debbugs-gnu
debbugs soap-client rng-xsd rng-dt rng-util xsd-regexp debbugs-compat
nndoc url-http-oauth url-http-ntlm ntlm hmac-md5 hex-util md4 url-http
url-gw url-cache crm bug-reference autorevert doc-view filenotify
image-mode exif epa-file misearch multi-isearch help-fns radix-tree
cl-print debug backtrace find-func emoji-labels emoji multisession
sqlite transient edmacro kmacro cond-let utf-7 flow-fill nnfolder
jka-compr cursor-sensor smerge-mode mailalias smtpmail dabbrev vc-git
diff-mode track-changes files-x filecache bbdb bbdb-site timezone
ecomplete shr-color color mule-util sort smiley gnus-cite matlab
matlab-scan matlab-syntax matlab-sections matlab-org
matlab-is-matlab-file matlab-compat matlab--shared raku-detect
mm-archive mail-extr textsec uni-scripts idna-mapping ucs-normalize
uni-confusable textsec-check gnus-async gnus-bcklg qp gnus-ml nndraft
nnmh network-stream nsm executable vc-backup log-view log-edit add-log
pcvs-util vc vc-dispatcher diff copyright nnnil gnus-agent gnus-srvr
gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view
mml-smime smime cl-seq gnutls dig nntp gnus-cache gnus-sum shr
pixel-fill kinsoku url-file svg dom gnus-group gnus-undo server
gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail browse-url xdg
url url-proxy url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mail-source utf7 nnoo parse-time
iso8601 gnus-spec gnus-int gnus-range message sendmail mailcap
yank-media puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg
rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus
nnheader gnus-util mail-utils range mm-util mail-prsvr time-date flymake
project compile text-property-search comint ansi-osc ansi-color ring
warnings noutline outline flyspell ispell checkdoc lisp-mnt thingatpt
elec-pair url-handlers reveal autoinsert engine-mode format-spec
savehist minibuf-eldef disp-table compact-docstrings easy-mmode corfu
compat info adoc-mode-autoloads afternoon-theme-autoloads
aidermacs-autoloads alect-themes-autoloads ample-theme-autoloads
annotate-autoloads anti-zenburn-theme-autoloads apache-mode-autoloads
apropospriate-theme-autoloads arduino-mode-autoloads ede/auto eieio-base
auto-dim-other-buffers-autoloads bash-completion-autoloads
beancount-autoloads better-jumper-autoloads bison-mode-autoloads
blow-autoloads blueprint-ts-mode-autoloads boxquote-autoloads
buttercup-autoloads camera-autoloads cdlatex-autoloads cider-autoloads
clojure-ts-mode-autoloads coffee-mode-autoloads
consult-flycheck-autoloads corfu-terminal-autoloads crux-autoloads
csv2ledger-autoloads cyberpunk-theme-autoloads cycle-at-point-autoloads
d-mode-autoloads dart-mode-autoloads denote-refs-autoloads
devhelp-autoloads devil-autoloads diff-ansi-autoloads dirvish-autoloads
doc-show-inline-autoloads dockerfile-mode-autoloads
dracula-theme-autoloads dslide-autoloads eat-autoloads
edit-indirect-autoloads eglot-inactive-regions-autoloads
eldoc-diffstat-autoloads elixir-mode-autoloads elpher-autoloads
engine-mode-autoloads evil-anzu-autoloads anzu-autoloads
evil-args-autoloads evil-escape-autoloads evil-exchange-autoloads
evil-goggles-autoloads evil-iedit-state-autoloads
evil-indent-plus-autoloads evil-lisp-state-autoloads bind-map-autoloads
evil-matchit-autoloads evil-nerd-commenter-autoloads
evil-numbers-autoloads evil-surround-autoloads
evil-visual-mark-mode-autoloads evil-visualstar-autoloads evil-autoloads
exec-path-from-shell-autoloads flx-ido-autoloads flx-autoloads
flycheck-autoloads flymake-collection-autoloads flymake-guile-autoloads
flymake-kondor-autoloads flymake-popon-autoloads
flymake-pyrefly-autoloads focus-autoloads forth-mode-autoloads
free-keys-autoloads gc-buffers-autoloads geiser-chez-autoloads
geiser-chibi-autoloads geiser-chicken-autoloads geiser-gambit-autoloads
geiser-gauche-autoloads geiser-guile-autoloads geiser-kawa-autoloads
geiser-mit-autoloads geiser-racket-autoloads geiser-stklos-autoloads
geiser-autoloads git-modes-autoloads gnosis-autoloads
gnu-apl-mode-autoloads gnu-indent-autoloads gnuplot-autoloads
go-mode-autoloads golden-ratio-autoloads gotham-theme-autoloads
goto-chg-autoloads gptel-autoloads graphql-mode-autoloads
gruber-darker-theme-autoloads gruvbox-theme-autoloads
autothemer-autoloads guru-mode-autoloads haskell-mode-autoloads
haskell-tng-mode-autoloads haskell-ts-mode-autoloads helm-autoloads
helm-core-autoloads hideshowvis-autoloads
highlight-parentheses-autoloads hl-block-mode-autoloads
hl-column-autoloads htmlize-autoloads
hyperdrive-org-transclusion-autoloads hyperdrive-autoloads
idle-highlight-mode-autoloads idris-mode-autoloads iedit-autoloads
inf-clojure-autoloads clojure-mode-autoloads inf-ruby-autoloads
inkpot-theme-autoloads iwindow-autoloads j-mode-autoloads
jade-mode-autoloads jinja2-mode-autoloads julia-mode-autoloads
keycast-autoloads kotlin-mode-autoloads logview-autoloads
datetime-autoloads extmap-autoloads loopy-dash-autoloads loopy-autoloads
lorem-ipsum-autoloads lua-mode-autoloads markdown-mode-autoloads
mastodon-autoloads material-theme-autoloads mentor-autoloads
meow-autoloads minibar-autoloads moc-autoloads moe-theme-autoloads
monokai-theme-autoloads mpv-autoloads multiple-cursors-autoloads
nasm-mode-autoloads nginx-mode-autoloads nix-mode-autoloads
oblivion-theme-autoloads opam-switch-mode-autoloads
org-auto-tangle-autoloads org-contrib-autoloads org-drill-autoloads
org-journal-autoloads org-mime-autoloads org-present-autoloads
org-superstar-autoloads org-transclusion-http-autoloads
org-tree-slide-autoloads orgit-autoloads magit-autoloads
p4-16-mode-autoloads package-lint-autoloads pacmacs-autoloads
page-break-lines-autoloads paredit-autoloads parseedn-autoloads
parseclj-autoloads pcmpl-args-autoloads pcre2el-autoloads
pdf-tools-autoloads php-mode-autoloads popon-autoloads popup-autoloads
projectile-autoloads proof-general-autoloads proof-site proof-autoloads
prop-menu-autoloads racket-mode-autoloads radio-autoloads
rainbow-delimiters-autoloads raku-mode-autoloads recomplete-autoloads
rfc-mode-autoloads rpm-spec-mode-autoloads rubocop-autoloads
rust-mode-autoloads sass-mode-autoloads haml-mode-autoloads
scad-mode-autoloads scala-mode-autoloads scroll-on-drag-autoloads
scroll-on-jump-autoloads sesman-autoloads shellcop-autoloads
slime-autoloads macrostep-autoloads sly-autoloads smartparens-autoloads
solarized-theme-autoloads spacemacs-theme-autoloads spell-fu-autoloads
sqlite3-autoloads standard-keys-mode-autoloads stylus-mode-autoloads
subatomic-theme-autoloads subed-autoloads sweeprolog-autoloads
swift-mode-autoloads symbol-overlay-autoloads systemd-autoloads
tablist-autoloads tangotango-theme-autoloads teco-autoloads
telephone-line-autoloads testcover-mark-line-autoloads
textile-mode-autoloads toc-org-autoloads totp-auth-autoloads
base32-autoloads tp-autoloads treesit-fold-autoloads tuareg-autoloads
caml-autoloads typescript-mode-autoloads typst-ts-mode-autoloads
ujelly-theme-autoloads undo-fu-autoloads undo-fu-session-autoloads
vc-fossil-autoloads vcomplete-autoloads visual-fill-column-autoloads
vm-autoloads web-mode-autoloads webpaste-autoloads wfnames-autoloads
wgrep-autoloads why-this-autoloads with-editor-autoloads
with-simulated-input-autoloads workroom-autoloads
writegood-mode-autoloads ws-butler-autoloads xah-fly-keys-autoloads
xkcd-autoloads xml-rpc-autoloads yaml-mode-autoloads
yasnippet-snippets-autoloads zenburn-theme-autoloads zig-mode-autoloads
reformatter-autoloads a68-mode-autoloads ace-window-autoloads
ack-autoloads activities-autoloads ada-mode-autoloads
ada-ref-man-autoloads adaptive-wrap-autoloads adjust-parens-autoloads
advice-patch-autoloads aggressive-completion-autoloads
aggressive-indent-autoloads agitate-autoloads ahungry-theme-autoloads
aircon-theme-autoloads all-autoloads altcaps-autoloads ampc-autoloads
arbitools-autoloads assess-autoloads auctex-cont-latexmk-autoloads
auctex-label-numbers-autoloads aumix-mode-autoloads
auth-source-xoauth2-plugin-autoloads auto-correct-autoloads
auto-header-autoloads auto-overlays-autoloads autocrypt-autoloads
autorevert-tail-truncate-autoloads bbdb-autoloads beacon-autoloads
beardbolt-autoloads beframe-autoloads bicep-ts-mode-autoloads
blist-autoloads bluetooth-autoloads bnf-mode-autoloads
boxy-headings-autoloads breadcrumb-autoloads brief-autoloads
buffer-env-autoloads buffer-expose-autoloads bufferlo-autoloads
buframe-autoloads bug-hunter-autoloads buildbot-autoloads
calibre-autoloads cape-autoloads capf-autosuggest-autoloads
caps-lock-autoloads captain-autoloads chess-autoloads
clipboard-collector-autoloads cobol-mode-autoloads code-cells-autoloads
colorful-mode-autoloads compact-docstrings-autoloads
company-ebdb-autoloads company-math-autoloads
company-statistics-autoloads company-autoloads constants-autoloads
consult-denote-autoloads consult-hoogle-autoloads
consult-recoll-autoloads context-coloring-autoloads corfu-autoloads
coterm-autoloads counsel-autoloads cpio-mode-autoloads
cpupower-autoloads crdt-autoloads crisp-autoloads csharp-mode-autoloads
csv-mode-autoloads cursor-undo-autoloads cursory-autoloads
cus-abbrev-autoloads cycle-quotes-autoloads dape-autoloads
darkroom-autoloads dbus-codegen-autoloads debbugs-autoloads
delight-autoloads denote-journal-autoloads denote-markdown-autoloads
denote-menu-autoloads denote-org-autoloads denote-search-autoloads
denote-sequence-autoloads denote-silo-autoloads denote-autoloads
detached-autoloads devdocs-autoloads devicetree-ts-mode-autoloads
dicom-autoloads dict-tree-autoloads diff-hl-autoloads diffview-autoloads
diminish-autoloads dired-du-autoloads dired-duplicates-autoloads
dired-git-info-autoloads dired-preview-autoloads disk-usage-autoloads
dismal-autoloads djvu-autoloads do-at-point-autoloads doc-toc-autoloads
doc-view-follow-autoloads docbook-autoloads doric-themes-autoloads
drepl-autoloads comint-mime-autoloads dts-mode-autoloads
easy-escape-autoloads easy-kill-autoloads ebdb-gnorb-autoloads
ebdb-i18n-chn-autoloads ebdb-autoloads cl-extra help-mode
ediprolog-autoloads eev-autoloads ef-themes-autoloads el-job-autoloads
el-search-autoloads electric-spacing-autoloads elisa-autoloads
elisp-benchmarks-autoloads ellama-autoloads emacs-gc-stats-autoloads
embark-consult-autoloads consult-autoloads embark-autoloads
ement-autoloads emms-autoloads engrave-faces-autoloads enwc-autoloads
epoch-view-autoloads ergoemacs-mode-autoloads ess-autoloads
excorporate-autoloads expand-region-autoloads expreg-autoloads
exwm-autoloads f90-interface-browser-autoloads face-shift-autoloads
filechooser-autoloads filladapt-autoloads
firefox-javascript-repl-autoloads flylisp-autoloads
flymake-clippy-autoloads flymake-codespell-autoloads
flymake-proselint-autoloads fontaine-autoloads frame-tabs-autoloads
frog-menu-autoloads fsm-autoloads ftable-autoloads gcmh-autoloads
ggtags-autoloads gited-autoloads gle-mode-autoloads
gnome-c-style-autoloads gnome-dark-style-autoloads gnorb-autoloads
gnu-elpa-autoloads gnu-elpa-features gnu-elpa-keyring-update-autoloads
gnugo-autoloads ascii-art-to-unicode-autoloads gnus-mock-autoloads
gpastel-autoloads gpr-mode-autoloads gpr-query-autoloads
gnat-compiler-autoloads graphql-autoloads greader-autoloads
greenbar-autoloads gtags-mode-autoloads guess-language-autoloads
hcel-autoloads hiddenquote-autoloads
highlight-escape-sequences-autoloads hook-helpers-autoloads
html5-schema-autoloads hugoista-autoloads idlwave-autoloads
ilist-autoloads indent-bars-autoloads inspector-autoloads
ioccur-autoloads isearch-mb-autoloads iso-date-autoloads
iterators-autoloads ivy-avy-autoloads avy-autoloads
ivy-explorer-autoloads ivy-hydra-autoloads ivy-posframe-autoloads
jarchive-autoloads javaimp-autoloads jgraph-mode-autoloads
jinx-autoloads jit-spell-autoloads js2-mode-autoloads
json-mode-autoloads jumpc-autoloads kind-icon-autoloads kiwix-autoloads
request-autoloads kmb-autoloads kubed-autoloads landmark-autoloads
latex-table-wizard-autoloads leaf-autoloads lentic-server-autoloads
lentic-autoloads lex-autoloads lin-autoloads listen-autoloads
literate-scratch-autoloads llm-autoloads lmc-autoloads
load-dir-autoloads loccur-autoloads logos-autoloads luwak-autoloads
m-buffer-autoloads marginalia-autoloads markchars-autoloads
math-symbol-lists-autoloads mathjax-autoloads mathsheet-autoloads
matlab-mode-autoloads mct-autoloads memory-usage-autoloads
metar-autoloads midi-kbd-autoloads mines-autoloads
minibuffer-header-autoloads minibuffer-line-autoloads minimail-autoloads
minimap-autoloads minuet-autoloads mode-line-maker-autoloads
mpdired-autoloads multi-mode-autoloads multishell-autoloads
muse-autoloads myers-autoloads nameless-autoloads names-autoloads
nano-agenda-autoloads nano-modeline-autoloads nano-theme-autoloads
nftables-mode-autoloads nhexl-mode-autoloads nlinum-autoloads
notes-mode-autoloads notmuch-indicator-autoloads num3-mode-autoloads
oauth2-autoloads ob-asymptote-autoloads ob-haxe-autoloads
objed-autoloads omn-mode-autoloads on-screen-autoloads openpgp-autoloads
orderless-autoloads org-contacts-autoloads org-edna-autoloads
org-gnosis-autoloads emacsql-autoloads org-jami-bot-autoloads
jami-bot-autoloads org-modern-autoloads org-notify-autoloads
org-real-autoloads boxy-autoloads org-remark-autoloads
org-transclusion-autoloads org-translate-autoloads orgalist-autoloads
osc-autoloads osm-autoloads other-frame-window-autoloads
pabbrev-autoloads paced-autoloads package-x-autoloads parsec-autoloads
parser-generator-autoloads path-iterator-autoloads perl-doc-autoloads
persist-autoloads phpinspect-autoloads phps-mode-autoloads
pinentry-autoloads plz-event-source-autoloads plz-media-type-autoloads
plz-see-autoloads poke-autoloads poke-mode-autoloads poker-autoloads
polymode-autoloads popper-autoloads pq-autoloads prefixed-core-autoloads
preview-auto-autoloads preview-tailor-autoloads auctex-autoloads
psgml-autoloads pspp-mode-autoloads pulsar-autoloads
pyim-basedict-autoloads pyim-autoloads async-autoloads
quarter-plane-autoloads rainbow-mode-autoloads rbit-autoloads
rcirc-color-autoloads rcirc-mentions-autoloads rcirc-menu-autoloads
rcirc-sqlite-autoloads realgud-ipdb-autoloads realgud-jdb-autoloads
realgud-lldb-autoloads realgud-node-debug-autoloads
realgud-node-inspect-autoloads realgud-pdbpp-autoloads
realgud-trepan-ni-autoloads realgud-trepan-xpy-autoloads
realgud-autoloads loc-changes-autoloads load-relative-autoloads
rec-mode-autoloads register-list-autoloads relint-autoloads
repology-autoloads rich-minority-autoloads rnc-mode-autoloads
rt-liberation-autoloads ruby-end-autoloads rudel-autoloads
satchel-autoloads scanner-autoloads scroll-restore-autoloads
sed-mode-autoloads setup-autoloads shelisp-autoloads
shell-command+-autoloads shell-quasiquote-autoloads shen-mode-autoloads
show-font-autoloads sisu-mode-autoloads site-lisp-autoloads
sketch-mode-autoloads slime-volleyball-autoloads sm-c-mode-autoloads
smalltalk-mode-autoloads smart-yank-autoloads sml-mode-autoloads
sokoban-autoloads sotlisp-autoloads spacious-padding-autoloads
speedrect-autoloads spinner-autoloads sql-beeline-autoloads
sql-cassandra-autoloads sql-indent-autoloads sql-smie-autoloads
srht-autoloads ssh-deploy-autoloads standard-themes-autoloads
modus-themes-autoloads stream-autoloads substitute-autoloads
svg-clock-autoloads svg-tag-mode-autoloads svg-lib-autoloads
swiper-autoloads ivy-autoloads switchy-window-autoloads
sxhkdrc-mode-autoloads system-packages-autoloads tam-autoloads
taxy-magit-section-autoloads taxy-autoloads magit-section-autoloads
llama-autoloads dash-autoloads temp-buffer-browse-autoloads
tempel-autoloads termint-autoloads test-simple-autoloads
tex-item-autoloads tex-parens-autoloads theme-buffet-autoloads
timerfunctions-autoloads tiny-autoloads tmr-autoloads tomelr-autoloads
topspace-autoloads tramp-nspawn-autoloads tramp-theme-autoloads
transcribe-autoloads transient-autoloads cond-let-autoloads
transient-cycles-autoloads tree-inspector-autoloads treeview-autoloads
trie-autoloads heap-autoloads tNFA-autoloads trinary-autoloads
triples-autoloads typo-autoloads ulisp-repl-autoloads
undo-tree-autoloads uni-confusables-autoloads uniquify-files-autoloads
urgrep-autoloads url-http-ntlm-autoloads url-http-oauth-autoloads
url-auth url-parse auth-source eieio eieio-core cl-macs pcase
password-cache json subr-x map byte-opt bytecomp byte-compile url-vars
url-scgi-autoloads validate-autoloads valign-autoloads
vc-backup-autoloads vc-got-autoloads vc-hgcmd-autoloads vc-jj-autoloads
vcard-autoloads vcl-mode-autoloads vdiff-autoloads hydra-autoloads
lv-autoloads vecdb-autoloads pg-autoloads plz-autoloads
vertico-posframe-autoloads vertico-autoloads posframe-autoloads
vigenere-autoloads visual-filename-abbrev-autoloads
visual-fill-autoloads vlf-autoloads vundo-autoloads
wcheck-mode-autoloads wconf-autoloads web-server-autoloads
webfeeder-autoloads websocket-autoloads window-commander-autoloads
windower-autoloads windresize-autoloads wisitoken-grammar-mode-autoloads
mmm-mode-autoloads wisi-autoloads wpuzzle-autoloads
wrap-search-autoloads xclip-autoloads xeft-autoloads xelb-autoloads
xpm-autoloads queue-autoloads xr-autoloads xref-union-autoloads
yaml-autoloads yasnippet-classic-snippets-autoloads yasnippet-autoloads
zones-autoloads ztree-autoloads zuul-autoloads cus-edit pp cus-start
cus-load icons wid-edit cl-loaddefs cl-lib gv rmc iso-transl tooltip
cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen
tool-bar dnd fontset image fringe tabulated-list replace newcomment
text-mode lisp-mode prog-mode register page tab-bar menu-bar regexp-opt
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 button loaddefs
theme-loaddefs oclosure cl-preloaded 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 lcms2 dynamic-setting system-font-setting
font-render-setting cairo gtk x-toolkit xinput2 x multi-tty move-toolbar
make-network-process tty-child-frames emacs)
Memory information:
((conses 16 9636413 1970867) (symbols 48 69915 569)
(strings 32 292675 62058) (string-bytes 1 9954045) (vectors 16 140296)
(vector-slots 8 2671658 1238590) (floats 8 1235 13393)
(intervals 56 15111 3976) (buffers 1064 80))
Stefan Monnier <monnier@HIDDEN>:monnier@HIDDEN, jdtsmith@HIDDEN, bug-gnu-emacs@HIDDEN.
Full text available.monnier@HIDDEN, jdtsmith@HIDDEN, bug-gnu-emacs@HIDDEN:bug#79852; Package emacs.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.