GNU bug report logs - #53877
29.0.50; [PATCH] async Gnus/nnml

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

Package: emacs; Severity: wishlist; Reported by: Manuel Giraud <manuel@HIDDEN>; dated Tue, 8 Feb 2022 14:23:01 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.
Removed tag(s) patch. Request was from Lars Ingebrigtsen <larsi@HIDDEN> to control <at> debbugs.gnu.org. Full text available.
Severity set to 'wishlist' from 'normal' Request was from Stefan Kangas <stefan@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

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


Received: (at 53877) by debbugs.gnu.org; 11 Feb 2022 17:53:23 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 11 12:53:22 2022
Received: from localhost ([127.0.0.1]:60919 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nIa6k-0004I8-KB
	for submit <at> debbugs.gnu.org; Fri, 11 Feb 2022 12:53:22 -0500
Received: from mail.ericabrahamsen.net ([52.70.2.18]:46790)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1nIa6j-0004Hv-8G
 for 53877 <at> debbugs.gnu.org; Fri, 11 Feb 2022 12:53:21 -0500
Received: from localhost (97-126-64-167.tukw.qwest.net [97.126.64.167])
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 81244FFD93;
 Fri, 11 Feb 2022 17:53:14 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericabrahamsen.net;
 s=mail; t=1644601994;
 bh=rNPgJ6C8fxhghxNUc/uIL/UtXlzKCNN28f8FjxYST3I=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=yv5DqbBLhvWSVx/RuMc6uzSmZ1NEyT3h1P8dnTo5NQjxw/+iOCvct1fVZGaYYh7Qc
 /2cCOWok0gk5SLAF4A106S5DyWgjcsMQLKmXKyrhgD1UmUaE1c1XEdTLoI0eDVIQQF
 vZ74RUmwe4Pp4agEboYgbuRvUn0jsspYja/Uh0t8=
From: Eric Abrahamsen <eric@HIDDEN>
To: Manuel Giraud <manuel@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN> <87bkzgpi9u.fsf@HIDDEN>
 <87tud8cr5q.fsf@HIDDEN> <878rukmkpf.fsf@HIDDEN>
 <87k0e4cojb.fsf@HIDDEN> <87v8xol3tr.fsf@HIDDEN>
 <877da4cjdg.fsf@HIDDEN> <87o83gq9q5.fsf@HIDDEN>
 <87o83faybg.fsf@HIDDEN> <87iltma8wj.fsf@HIDDEN>
 <87sfspacwi.fsf@HIDDEN>
Date: Fri, 11 Feb 2022 09:53:12 -0800
In-Reply-To: <87sfspacwi.fsf@HIDDEN> (Manuel Giraud's message of "Fri,
 11 Feb 2022 11:57:49 +0100")
Message-ID: <87bkzd8f3r.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>
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 (---)

Manuel Giraud <manuel@HIDDEN> writes:

> Eric Abrahamsen <eric@HIDDEN> writes:
>
> [...]
>
>> Are you sure the original approach won't work? If you set
>> `nnmail-article-buffer' locally within the thread function, it seems to
>> work okay. Is this not workable:
>
> Hi Eric,
>
> I was trying just something different. The process/sentinel seems like a
> good (established) way to do this in emacs without having to rely on
> handling threads yielding (when?). Maybe it won't be fruitful though =F0=
=9F=98=85

Without having actually gone and written the code myself... my guess is
these two approaches will end up being pretty equivalent in design, only
the details will vary. You're going to launch several "things" in a loop
(the things being either threads, or processes+sentinels), then block
the rest of Emacs while you wait for all of the "things" to be done,
then carry on with main function execution.

Gnus is not set up for these "things" to return at random intervals, ie
we cannot "fire and forget". Not to mention that the "things" will block
Emacs while running elisp, but relinquish control while receiving
process output, which I think would lead to a kind of "stuttering"
responsiveness that would be more annoying than simply blocking Emacs
altogether. No matter which approach you take it will probably have to
wait for all the things to return before it continues, so the only
advantage is in being able to "layer" multiple process io and save a
little time there.

The Trio python library has a neat concept called nurseries, which
guarantees that multiple child threads all have to return before main
code execution continues, that might be interesting to look at:

https://trio.readthedocs.io/en/latest/reference-core.html#nurseries-and-spa=
wning




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

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


Received: (at 53877) by debbugs.gnu.org; 11 Feb 2022 10:58:02 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 11 05:58:02 2022
Received: from localhost ([127.0.0.1]:58421 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nITco-0005LC-6Q
	for submit <at> debbugs.gnu.org; Fri, 11 Feb 2022 05:58:02 -0500
Received: from ledu-giraud.fr ([51.159.28.247]:38126)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <manuel@HIDDEN>) id 1nITcm-0005Kk-3G
 for 53877 <at> debbugs.gnu.org; Fri, 11 Feb 2022 05:58:01 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=dgsJAI4eglGjJyGV
 74k/4paR1GvKsm4Gb8NZFtKP5ds=;
 h=in-reply-to:date:references:subject:
 cc:to:from; d=ledu-giraud.fr; b=hWI0SaB9ImfzMDR5bcJ1jHWmuppouL7L8knOX8
 zTV0GcOnTrk66Gc5hiMtsjug5NoPZmUj7aVsRCWwEu9nsZwVNj1DZOyHIvUlhAnI45rJig
 r7MiyeXAOC7gHJFqBk25kGSnlq0R9ii9Fwbk+RHIuSc1qAAodOXbr3bABARxEmG3jAqrvc
 IMo4CvbykTCNpewA8/T7gUt4FWPm5dW4q2niszOAL+JN1fgfKfT9+6cPa34E3mn1Ez4dsl
 e2FOtRwlwyuGKUvgnpgMuvDE6vwQsOE6HNflJNd+30i7cJffhAFEq+dCm8I0ulu4iJQhjm
 A1OG3Ze7+ZzO6LjoxSsFay8w==
Received: from elite.giraud (<unknown> [10.1.1.1])
 by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 7537e8e1
 (TLSv1.3:AEAD-AES256-GCM-SHA384:256:NO); 
 Fri, 11 Feb 2022 11:57:56 +0100 (CET)
From: Manuel Giraud <manuel@HIDDEN>
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN> <87bkzgpi9u.fsf@HIDDEN>
 <87tud8cr5q.fsf@HIDDEN> <878rukmkpf.fsf@HIDDEN>
 <87k0e4cojb.fsf@HIDDEN> <87v8xol3tr.fsf@HIDDEN>
 <877da4cjdg.fsf@HIDDEN> <87o83gq9q5.fsf@HIDDEN>
 <87o83faybg.fsf@HIDDEN> <87iltma8wj.fsf@HIDDEN>
Date: Fri, 11 Feb 2022 11:57:49 +0100
In-Reply-To: <87iltma8wj.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Thu, 10 Feb 2022 10:11:56 -0800")
Message-ID: <87sfspacwi.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (berkeley-unix)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>
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 (-)

Eric Abrahamsen <eric@HIDDEN> writes:

[...]

> Are you sure the original approach won't work? If you set
> `nnmail-article-buffer' locally within the thread function, it seems to
> work okay. Is this not workable:

Hi Eric,

I was trying just something different. The process/sentinel seems like a
good (established) way to do this in emacs without having to rely on
handling threads yielding (when?). Maybe it won't be fruitful though =F0=9F=
=98=85
--=20
Manuel Giraud




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

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


Received: (at 53877) by debbugs.gnu.org; 10 Feb 2022 20:37:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 10 15:37:49 2022
Received: from localhost ([127.0.0.1]:57290 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nIGCL-00033G-3K
	for submit <at> debbugs.gnu.org; Thu, 10 Feb 2022 15:37:49 -0500
Received: from mail.ericabrahamsen.net ([52.70.2.18]:51608)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1nIGCK-000332-1H
 for 53877 <at> debbugs.gnu.org; Thu, 10 Feb 2022 15:37:48 -0500
Received: from localhost (c-71-197-232-41.hsd1.wa.comcast.net [71.197.232.41])
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 094FCFA08F;
 Thu, 10 Feb 2022 20:37:41 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericabrahamsen.net;
 s=mail; t=1644525462;
 bh=uNJOS14U3Sz3f7izxx69cIkJHp3uw3j+oEYuHDqSBlc=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=PwjtUXYTz+YxGvNppP/cawux+e+AkfP8u87saxl+mInT88odnYNV7T7CWJAFOiOgM
 3rZ/vg5jpz8rzfOXXtY2eZdjSf/gdIRQVol5yWZp+GT8l3Sv4pvlwEX52QVbNQlWBB
 eJx+kU8IxC4b+oj9zxEdpDHfDRK5DmS3dP0+HQvo=
From: Eric Abrahamsen <eric@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN> <87bkzgpi9u.fsf@HIDDEN>
 <87tud8cr5q.fsf@HIDDEN> <878rukmkpf.fsf@HIDDEN>
 <87k0e4cojb.fsf@HIDDEN> <87v8xol3tr.fsf@HIDDEN>
 <877da4cjdg.fsf@HIDDEN> <87o83gq9q5.fsf@HIDDEN>
 <87o83faybg.fsf@HIDDEN> <87iltma8wj.fsf@HIDDEN>
 <837da2tqof.fsf@HIDDEN>
Date: Thu, 10 Feb 2022 12:37:40 -0800
In-Reply-To: <837da2tqof.fsf@HIDDEN> (Eli Zaretskii's message of "Thu, 10 Feb
 2022 22:25:20 +0200")
Message-ID: <87sfsq8nl7.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <at> debbugs.gnu.org, larsi@HIDDEN, manuel@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Eli Zaretskii <eliz@HIDDEN> writes:

>> From: Eric Abrahamsen <eric@HIDDEN>
>> Date: Thu, 10 Feb 2022 10:11:56 -0800
>> Cc: 53877 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>
>> 
>> 
>> (defun test-threads-outer ()
>>   (dolist (label (list "one" "two" "three"))
>>     (make-thread (lambda () (test-threads-inner label)) label)))
>> 
>> (defun test-threads-inner (label)
>>   (let ((nnmail-article-buffer (format "nnmail-incoming-%s" label)))
>>     (with-current-buffer (get-buffer-create nnmail-article-buffer)
>>       (insert label))))
>> 
>> That creates three separate buffers, named correctly, and holding the
>> correct text.
>
> But only if you don't do anything in the main thread, just let it sit
> idling.  Right?  Otherwise those other threads won't get an
> opportunity to run.

Sure, in real life we'd be yielding to these threads and joining
afterwards before going on with the rest of the code. This example was
just to show that having different locally-bound values for
`nnmail-article-buffer' in each thread was a viable approach.




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

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


Received: (at 53877) by debbugs.gnu.org; 10 Feb 2022 20:25:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 10 15:25:49 2022
Received: from localhost ([127.0.0.1]:57239 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nIG0i-0002fL-PC
	for submit <at> debbugs.gnu.org; Thu, 10 Feb 2022 15:25:49 -0500
Received: from eggs.gnu.org ([209.51.188.92]:49574)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1nIG0g-0002f5-Lp
 for 53877 <at> debbugs.gnu.org; Thu, 10 Feb 2022 15:25:47 -0500
Received: from [2001:470:142:3::e] (port=35476 helo=fencepost.gnu.org)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1nIG0M-0003mw-Sl; Thu, 10 Feb 2022 15:25:39 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=A8NU4qh3yPKR6gAAt93l9BjexpDX2ZecaqaJuh+HGOM=; b=aXW1afI2hKF4
 v9KV1xbI/18UJj79CQAILScHekSSQazzujCX4YH8rAqthwVOu7N8XDNLCsd1u8Qtm1RaadKAc1rlC
 IQRC94lKlTC5Mg56XoKpqKBMLzIZTXalqZgNEUnL1MZHDRbgHeeo4cHA/54aQh5hk/ld56gzfK8MB
 ALVoYOB/fuHq4yHsDhZphBMzih+CPn251FuT9XUOMnh6BOE57GoAW2k1gLx9Hd8c14LVa5a2d8MFF
 OvmyaeXesLzjV/2+OzkzA1Of/yTQe1eG/dAgTWqgOrvKXUU63FisY6UX8sNwiy1iZkHHdoYAuftv7
 af5rr+MXXDRGI0RdmBPOrw==;
Received: from [87.69.77.57] (port=3391 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1nIG0J-00044h-VQ; Thu, 10 Feb 2022 15:25:25 -0500
Date: Thu, 10 Feb 2022 22:25:20 +0200
Message-Id: <837da2tqof.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Eric Abrahamsen <eric@HIDDEN>
In-Reply-To: <87iltma8wj.fsf@HIDDEN> (message from Eric Abrahamsen
 on Thu, 10 Feb 2022 10:11:56 -0800)
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN> <87bkzgpi9u.fsf@HIDDEN>
 <87tud8cr5q.fsf@HIDDEN> <878rukmkpf.fsf@HIDDEN>
 <87k0e4cojb.fsf@HIDDEN> <87v8xol3tr.fsf@HIDDEN>
 <877da4cjdg.fsf@HIDDEN> <87o83gq9q5.fsf@HIDDEN>
 <87o83faybg.fsf@HIDDEN> <87iltma8wj.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <at> debbugs.gnu.org, larsi@HIDDEN, manuel@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Eric Abrahamsen <eric@HIDDEN>
> Date: Thu, 10 Feb 2022 10:11:56 -0800
> Cc: 53877 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>
> 
> 
> (defun test-threads-outer ()
>   (dolist (label (list "one" "two" "three"))
>     (make-thread (lambda () (test-threads-inner label)) label)))
> 
> (defun test-threads-inner (label)
>   (let ((nnmail-article-buffer (format "nnmail-incoming-%s" label)))
>     (with-current-buffer (get-buffer-create nnmail-article-buffer)
>       (insert label))))
> 
> That creates three separate buffers, named correctly, and holding the
> correct text.

But only if you don't do anything in the main thread, just let it sit
idling.  Right?  Otherwise those other threads won't get an
opportunity to run.




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

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


Received: (at 53877) by debbugs.gnu.org; 10 Feb 2022 18:26:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 10 13:26:04 2022
Received: from localhost ([127.0.0.1]:57109 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nIE8q-0005NX-5q
	for submit <at> debbugs.gnu.org; Thu, 10 Feb 2022 13:26:04 -0500
Received: from mail.ericabrahamsen.net ([52.70.2.18]:46232)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1nIE8n-0005Mw-8T
 for 53877 <at> debbugs.gnu.org; Thu, 10 Feb 2022 13:26:02 -0500
Received: from localhost (c-71-197-232-41.hsd1.wa.comcast.net [71.197.232.41])
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 76C24FA08F;
 Thu, 10 Feb 2022 18:25:54 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericabrahamsen.net;
 s=mail; t=1644517554;
 bh=2I163G3qHCeleaMC0t4zGz4+wX1uespfTv+3UWvlgLQ=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=yGoDjcvYMR9UQ3UDyZALXY/tnZegt7yT78yOErS2hKNV2Heio7wI9JMFR8AtX4w09
 vexzRYxiummgltcjkLHIEFckCBNqyig4aEso3pEvSXtWWTtKdmlwqX7oJoS7xGl/Du
 w5gO2XBJRaJOxSBqASj15rQfpGQsgjF0uOmSWsQg=
From: Eric Abrahamsen <eric@HIDDEN>
To: Manuel Giraud <manuel@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN> <87bkzgpi9u.fsf@HIDDEN>
 <87tud8cr5q.fsf@HIDDEN> <878rukmkpf.fsf@HIDDEN>
 <87k0e4cojb.fsf@HIDDEN> <87v8xol3tr.fsf@HIDDEN>
 <877da4cjdg.fsf@HIDDEN> <87o83gq9q5.fsf@HIDDEN>
 <87o83faybg.fsf@HIDDEN> <87iltma8wj.fsf@HIDDEN>
Date: Thu, 10 Feb 2022 10:25:52 -0800
In-Reply-To: <87iltma8wj.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Thu, 10 Feb 2022 10:11:56 -0800")
Message-ID: <87a6eya89b.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>
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 (---)


On 02/10/22 10:11 AM, Eric Abrahamsen wrote:
> On 02/10/22 10:02 AM, Manuel Giraud wrote:
>> Eric Abrahamsen <eric@HIDDEN> writes:
>>
>>> Manuel Giraud <manuel@HIDDEN> writes:
>>>
>>>> Lars Ingebrigtsen <larsi@HIDDEN> writes:
>>>>
>>>>> Why can't you bind `nnmail-article-buffer' before calling the splitting
>>>>> function?
>>>>
>>>> I spoke too quickly. The idea was that with a temporay buffer I could
>>>> run multiple splitting in "parallel". But rebinding just *one* global
>>>> variable won't help much here.
>>>
>>> Are you sure? AFAIK this was Dick Chiang's approach to threading
>>> server updates: let-binding the value of `nntp-server-buffer' within
>>> the thread function. As far as I know it worked okay. The splitting
>>> function and code run within it will have a separate value of
>>> `nnmail-article-buffer'.
>>
>> I'm trying another approach: seek to the processes in the backend, don't
>> wait for them to end but instead attach sentinels for what's left to
>> do. Maybe it is not the best approach because Gnus seems to be heavily
>> stateful/serial.
>>
>> I'm not sure about binding in sentinels: do you think it would work as
>> binding in threads?
>
> Are you sure the original approach won't work? If you set
> `nnmail-article-buffer' locally within the thread function, it seems to
> work okay. Is this not workable:
>
> (defun test-threads-outer ()
>   (dolist (label (list "one" "two" "three"))
>     (make-thread (lambda () (test-threads-inner label)) label)))
>
> (defun test-threads-inner (label)
>   (let ((nnmail-article-buffer (format "nnmail-incoming-%s" label)))
>     (with-current-buffer (get-buffer-create nnmail-article-buffer)
>       (insert label))))
>
> That creates three separate buffers, named correctly, and holding the
> correct text.

Though in this simple example, the copies of the inner function are
actually still being executed consecutively, so maybe this doesn't prove
anything? I don't have much faith in my reasoning about threads.




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

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


Received: (at 53877) by debbugs.gnu.org; 10 Feb 2022 18:12:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 10 13:12:06 2022
Received: from localhost ([127.0.0.1]:57072 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nIDvJ-0004xL-V9
	for submit <at> debbugs.gnu.org; Thu, 10 Feb 2022 13:12:06 -0500
Received: from mail.ericabrahamsen.net ([52.70.2.18]:45614)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1nIDvH-0004wp-Uc
 for 53877 <at> debbugs.gnu.org; Thu, 10 Feb 2022 13:12:04 -0500
Received: from localhost (c-71-197-232-41.hsd1.wa.comcast.net [71.197.232.41])
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id C0B87FA08F;
 Thu, 10 Feb 2022 18:11:57 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericabrahamsen.net;
 s=mail; t=1644516718;
 bh=xIGQPG4J24jTsw71NlLdU3ri3blVNDj4Rtg4evA/Kys=;
 h=From:To:Cc:Subject:References:Date:From;
 b=A2qrFEduVS32wNnKtacTUp4wmt/45LsQR8X30exV4t/wNeBhNanVtstmfxANPyDA/
 h0rWKcZizFjGOMJREVOS9mF4/hLN/4g+0bRfT2gPXCparDwipk3PLQiJoQyOp702V1
 4MQd3TXy60dfYo7OElW/HgWcOCScOsiyu7trYQ08=
From: Eric Abrahamsen <eric@HIDDEN>
To: Manuel Giraud <manuel@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN> <87bkzgpi9u.fsf@HIDDEN>
 <87tud8cr5q.fsf@HIDDEN> <878rukmkpf.fsf@HIDDEN>
 <87k0e4cojb.fsf@HIDDEN> <87v8xol3tr.fsf@HIDDEN>
 <877da4cjdg.fsf@HIDDEN> <87o83gq9q5.fsf@HIDDEN>
 <87o83faybg.fsf@HIDDEN>
Date: Thu, 10 Feb 2022 10:11:56 -0800
Message-ID: <87iltma8wj.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>
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 (---)


On 02/10/22 10:02 AM, Manuel Giraud wrote:
> Eric Abrahamsen <eric@HIDDEN> writes:
>
>> Manuel Giraud <manuel@HIDDEN> writes:
>>
>>> Lars Ingebrigtsen <larsi@HIDDEN> writes:
>>>
>>>> Why can't you bind `nnmail-article-buffer' before calling the splitting
>>>> function?
>>>
>>> I spoke too quickly. The idea was that with a temporay buffer I could
>>> run multiple splitting in "parallel". But rebinding just *one* global
>>> variable won't help much here.
>>
>> Are you sure? AFAIK this was Dick Chiang's approach to threading
>> server updates: let-binding the value of `nntp-server-buffer' within
>> the thread function. As far as I know it worked okay. The splitting
>> function and code run within it will have a separate value of
>> `nnmail-article-buffer'.
>
> I'm trying another approach: seek to the processes in the backend, don't
> wait for them to end but instead attach sentinels for what's left to
> do. Maybe it is not the best approach because Gnus seems to be heavily
> stateful/serial.
>
> I'm not sure about binding in sentinels: do you think it would work as
> binding in threads?

Are you sure the original approach won't work? If you set
`nnmail-article-buffer' locally within the thread function, it seems to
work okay. Is this not workable:

(defun test-threads-outer ()
  (dolist (label (list "one" "two" "three"))
    (make-thread (lambda () (test-threads-inner label)) label)))

(defun test-threads-inner (label)
  (let ((nnmail-article-buffer (format "nnmail-incoming-%s" label)))
    (with-current-buffer (get-buffer-create nnmail-article-buffer)
      (insert label))))

That creates three separate buffers, named correctly, and holding the
correct text.




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

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


Received: (at 53877) by debbugs.gnu.org; 10 Feb 2022 09:03:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 10 04:03:04 2022
Received: from localhost ([127.0.0.1]:53922 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nI5M0-0001ee-3e
	for submit <at> debbugs.gnu.org; Thu, 10 Feb 2022 04:03:04 -0500
Received: from ledu-giraud.fr ([51.159.28.247]:3959)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <manuel@HIDDEN>) id 1nI5Ly-0001eD-84
 for 53877 <at> debbugs.gnu.org; Thu, 10 Feb 2022 04:03:03 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=kngUuoj3KVgTzESc
 SGs0cd9vRDO5TlVqiDBSWvlh0+M=;
 h=in-reply-to:date:references:subject:
 cc:to:from; d=ledu-giraud.fr; b=JOZ6/LS/cnJzi7LTGIb1BhIWNIBAa7BmmLqn5N
 MpyQCF8+8qtSYVAqqcUqM+YXMHa+0rM0W2mf/LCvdt3EbMkNoC33LNqOL3lxT7MWPKpXWy
 zSZKOz/darW6jLqQuq4e4ohKZfEHldohNIafNE6ijKCQrSdl24YUutr8UN3yROvsGcEbhv
 2xKleb/F2dli3GKFdjIi4q4ft7KlwGLbLw3HwsLhTxUjK2Oj9s97W31Mz4+EV/a/2C0NpX
 FIPiGBTfdXt4TjTNo8gnA4vGMmHxKCM0w2dPl8Sy41yjjrLWT5Gt8gH7Tp/tpUlj/PyAix
 WGCJsy2AMaoViP9joz+ZpHiw==
Received: from elite.giraud (<unknown> [10.1.1.1])
 by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 6b652dd8
 (TLSv1.3:AEAD-AES256-GCM-SHA384:256:NO); 
 Thu, 10 Feb 2022 10:03:00 +0100 (CET)
From: Manuel Giraud <manuel@HIDDEN>
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN> <87bkzgpi9u.fsf@HIDDEN>
 <87tud8cr5q.fsf@HIDDEN> <878rukmkpf.fsf@HIDDEN>
 <87k0e4cojb.fsf@HIDDEN> <87v8xol3tr.fsf@HIDDEN>
 <877da4cjdg.fsf@HIDDEN> <87o83gq9q5.fsf@HIDDEN>
Date: Thu, 10 Feb 2022 10:02:59 +0100
In-Reply-To: <87o83gq9q5.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Wed, 09 Feb 2022 08:35:14 -0800")
Message-ID: <87o83faybg.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (berkeley-unix)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>
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 (-)

Eric Abrahamsen <eric@HIDDEN> writes:

> Manuel Giraud <manuel@HIDDEN> writes:
>
>> Lars Ingebrigtsen <larsi@HIDDEN> writes:
>>
>>> Why can't you bind `nnmail-article-buffer' before calling the splitting
>>> function?
>>
>> I spoke too quickly. The idea was that with a temporay buffer I could
>> run multiple splitting in "parallel". But rebinding just *one* global
>> variable won't help much here.
>
> Are you sure? AFAIK this was Dick Chiang's approach to threading
> server updates: let-binding the value of `nntp-server-buffer' within
> the thread function. As far as I know it worked okay. The splitting
> function and code run within it will have a separate value of
> `nnmail-article-buffer'.

I'm trying another approach: seek to the processes in the backend, don't
wait for them to end but instead attach sentinels for what's left to
do. Maybe it is not the best approach because Gnus seems to be heavily
stateful/serial.

I'm not sure about binding in sentinels: do you think it would work as
binding in threads?
-- 
Manuel Giraud




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

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


Received: (at 53877) by debbugs.gnu.org; 9 Feb 2022 20:26:21 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 09 15:26:20 2022
Received: from localhost ([127.0.0.1]:52871 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nHtXg-0001Fz-On
	for submit <at> debbugs.gnu.org; Wed, 09 Feb 2022 15:26:20 -0500
Received: from quimby.gnus.org ([95.216.78.240]:39652)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1nHtXe-0001Fl-SD
 for 53877 <at> debbugs.gnu.org; Wed, 09 Feb 2022 15:26:19 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID
 :In-Reply-To:Date:References:Subject:Cc:To:From:Sender:Reply-To:Content-ID:
 Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
 :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
 List-Post:List-Owner:List-Archive;
 bh=CqwLexddNhS6BtJWjoHZxXkmru/PhbNNvBIhgqSvE7M=; b=TSt/he3M+xkTMpJS5K+nrNjJUO
 gyHGQwWB4TQYsfHV1jJRWDjLBCoMuTWphNq+q+7RayBErMQ60FNgk7zgSDCaNs5Dq6vRtWsLFULqI
 V0LcLtM0fFYeu6Y3yuG8rXUsU/4ENG89lnvKDADRVXDNHaWdv25EyvwjvvLvRXzYoimE=;
Received: from [84.212.220.105] (helo=giant)
 by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1nHtXW-0006oB-6V; Wed, 09 Feb 2022 21:26:13 +0100
From: Lars Ingebrigtsen <larsi@HIDDEN>
To: Manuel Giraud <manuel@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN> <877da4pi2h.fsf@HIDDEN>
 <87pmnwcqoo.fsf@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj
 SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAGFBMVEVPKhRiUDWKbks0
 FgUjGhDZuXDUtm3///+pBA8CAAAAAWJLR0QHFmGI6wAAAAd0SU1FB+YCCRQMDLUtRl4AAAF7SURB
 VDjLjZPBioMwEIYnjdtzItKzltZzwH2AKLN7LgU911J9/0fYmUkEbSPsIKj/5/yTcRIAyM+pgKaB
 dDSNblIB8QaOLq01uDfglDAKvQFKpARwmhXtQOut1W5x18Si+g2wP/k4B/AGDC/JKAcKtgD4yfGK
 9f+KJ8H3Hug2vzsrENtSwFe/jqJC/L0J+Fnr8ytHPD0S4NYRGD/BcG8RrwnQz8UO6F974L4HhhSY
 pJPEqobr0PcXPATQ1v39GMDYTQyOoUGv6kcn+tNkJ8koI7AXAVMJgFcCPF+2Alu09dQPkwHEenoh
 mPjbn1k3c1DTaOcLqgjqGdunDMNm6M+41GhpOj7ovFPMB7AGveUy2JXLaMmgIlkRwzWgaZIC1pIX
 g3axKunFk0xGGQNvaO9xH4tOCVnMYCCPohvF3yh7Ht0CVDAKFWw+ukYACICg02teCfBQ4KoApRwW
 kEUQdPRLhkUMJRZgKynuyYH8fTSSPuTIYfIU7B2cXeD+AMqs3g245F3CAAAAJXRFWHRkYXRlOmNy
 ZWF0ZQAyMDIyLTAyLTA5VDIwOjEyOjEyKzAwOjAw9CN9ugAAACV0RVh0ZGF0ZTptb2RpZnkAMjAy
 Mi0wMi0wOVQyMDoxMjoxMiswMDowMIV+xQYAAAAASUVORK5CYII=
X-Now-Playing: Karen Dalton's _In My Own Time_: "Are You Leaving For The
 Country"
Date: Wed, 09 Feb 2022 21:26:09 +0100
In-Reply-To: <87pmnwcqoo.fsf@HIDDEN> (Manuel Giraud's message of "Wed,
 09 Feb 2022 10:52:39 +0100")
Message-ID: <87h797g526.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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
 @@CONTACT_ADDRESS@@ for details.
 
 Content preview:  Manuel Giraud <manuel@HIDDEN> writes: > Yes that's
    the point. After those patches, I've started to work on > moving `mail-source-fetch'
    from «callback method» to «process+sentinel > method». So far, I have
    done most simple ones: "file [...] 
 
 Content analysis details:   (-2.9 points, 5.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
                             [score: 0.0000]
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <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 (---)

Manuel Giraud <manuel@HIDDEN> writes:

> Yes that's the point. After those patches, I've started to work on
> moving `mail-source-fetch' from =C2=ABcallback method=C2=BB to =C2=ABproc=
ess+sentinel
> method=C2=BB. So far, I have done most simple ones: "file" and "directory"
> sources.

Ah, right.  Yeah, I think that's probably a good place to start.

--=20
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




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

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


Received: (at 53877) by debbugs.gnu.org; 9 Feb 2022 16:35:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 09 11:35:25 2022
Received: from localhost ([127.0.0.1]:52436 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nHpwD-0000br-JO
	for submit <at> debbugs.gnu.org; Wed, 09 Feb 2022 11:35:25 -0500
Received: from mail.ericabrahamsen.net ([52.70.2.18]:41288)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1nHpwA-0000ba-F8
 for 53877 <at> debbugs.gnu.org; Wed, 09 Feb 2022 11:35:23 -0500
Received: from localhost (c-71-197-232-41.hsd1.wa.comcast.net [71.197.232.41])
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 1667BFA08F;
 Wed,  9 Feb 2022 16:35:15 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericabrahamsen.net;
 s=mail; t=1644424516;
 bh=oVgKU00uHtvYvDI8Y43bpTQsPMM/f4xTI7MKp2lGeTA=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=Jf2aV+LUG5RWVkkIh0h6DC/g5RP9Fc0CHqdVWv/sNNpI6hVlUZX0occFLRDj/s5Mj
 ioBVglJQUxJY0q3I5rvUiJGfC9oHHDygnVgWPbMGp2ergOI5DK+4z2PQsKsQfHgtCq
 wS5DI/bJFuluLNJXIvtHw9boQ65oqxg9Kz0SmxIk=
From: Eric Abrahamsen <eric@HIDDEN>
To: Manuel Giraud <manuel@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN> <87bkzgpi9u.fsf@HIDDEN>
 <87tud8cr5q.fsf@HIDDEN> <878rukmkpf.fsf@HIDDEN>
 <87k0e4cojb.fsf@HIDDEN> <87v8xol3tr.fsf@HIDDEN>
 <877da4cjdg.fsf@HIDDEN>
Date: Wed, 09 Feb 2022 08:35:14 -0800
In-Reply-To: <877da4cjdg.fsf@HIDDEN> (Manuel Giraud's message of "Wed,
 09 Feb 2022 13:30:35 +0100")
Message-ID: <87o83gq9q5.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>
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 (---)

Manuel Giraud <manuel@HIDDEN> writes:

> Lars Ingebrigtsen <larsi@HIDDEN> writes:
>
>> Why can't you bind `nnmail-article-buffer' before calling the splitting
>> function?
>
> I spoke too quickly. The idea was that with a temporay buffer I could
> run multiple splitting in "parallel". But rebinding just *one* global
> variable won't help much here.

Are you sure? AFAIK this was Dick Chiang's approach to threading server
updates: let-binding the value of `nntp-server-buffer' within the thread
function. As far as I know it worked okay. The splitting function and
code run within it will have a separate value of
`nnmail-article-buffer'.




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

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


Received: (at 53877) by debbugs.gnu.org; 9 Feb 2022 12:30:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 09 07:30:40 2022
Received: from localhost ([127.0.0.1]:50100 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nHm7M-00040d-37
	for submit <at> debbugs.gnu.org; Wed, 09 Feb 2022 07:30:40 -0500
Received: from ledu-giraud.fr ([51.159.28.247]:18429)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <manuel@HIDDEN>) id 1nHm7J-0003wa-Hh
 for 53877 <at> debbugs.gnu.org; Wed, 09 Feb 2022 07:30:38 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=4mJyaZq2UXRP0/Zz
 2IKxXKTZyK4dfk4H517XxNKwRIE=;
 h=in-reply-to:date:references:subject:
 cc:to:from; d=ledu-giraud.fr; b=Icvlxro75sY7bZB09iNW0eLlhs8IW0rEOQP1Vz
 o1sNfo1JxMWfK4Z8+Jjj1E8Is4DTs2oZ8f5mjqNv5nHzZwxJbM11ktvVT0lmO9VcfZSnpQ
 oqtDpF1KePP5XWp3IGLH0RYxiuzRsC+5yCnHivlnEMymXa5CC2tNCwfM9EdALYe375xpsA
 6SV9cBuG3eOhCimfka2mIOAwYZMTT/UWKlLcNAYk/CY5JZj/u7Jwq0lTvDcsjnwQo2jPmu
 jc2uTzAIKKSFl2aSatkbCSVIsYwjvKOajcIiK5UlLya2dyR0+2WCxIF7guiH77QTs5E/fO
 to1qAti9BRUf4fkhw2kNN5iw==
Received: from elite.giraud (<unknown> [10.1.1.1])
 by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 00a9de74
 (TLSv1.3:AEAD-AES256-GCM-SHA384:256:NO); 
 Wed, 9 Feb 2022 13:30:35 +0100 (CET)
From: Manuel Giraud <manuel@HIDDEN>
To: Lars Ingebrigtsen <larsi@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN> <87bkzgpi9u.fsf@HIDDEN>
 <87tud8cr5q.fsf@HIDDEN> <878rukmkpf.fsf@HIDDEN>
 <87k0e4cojb.fsf@HIDDEN> <87v8xol3tr.fsf@HIDDEN>
Date: Wed, 09 Feb 2022 13:30:35 +0100
In-Reply-To: <87v8xol3tr.fsf@HIDDEN> (Lars Ingebrigtsen's message of "Wed,
 09 Feb 2022 11:41:36 +0100")
Message-ID: <877da4cjdg.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (berkeley-unix)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <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 (-)

Lars Ingebrigtsen <larsi@HIDDEN> writes:

> Why can't you bind `nnmail-article-buffer' before calling the splitting
> function?

I spoke too quickly. The idea was that with a temporay buffer I could
run multiple splitting in "parallel". But rebinding just *one* global
variable won't help much here.
-- 
Manuel Giraud




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

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


Received: (at 53877) by debbugs.gnu.org; 9 Feb 2022 10:50:23 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 09 05:50:23 2022
Received: from localhost ([127.0.0.1]:50028 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nHkYJ-0000Si-9B
	for submit <at> debbugs.gnu.org; Wed, 09 Feb 2022 05:50:23 -0500
Received: from quimby.gnus.org ([95.216.78.240]:34748)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1nHkYH-0000SP-Fo
 for 53877 <at> debbugs.gnu.org; Wed, 09 Feb 2022 05:50:22 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID
 :In-Reply-To:Date:References:Subject:Cc:To:From:Sender:Reply-To:Content-ID:
 Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
 :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
 List-Post:List-Owner:List-Archive;
 bh=mDWJoVzGTMOZePYw3wmNA7ootsMfGDBZcHEM8lvE/lY=; b=NclBVBy4wUnz3ouWw8SM4ewCWG
 WJmtgBe5jbGAaxFrZnbKJq73SjCArG0RcHO3RGj8shRe5a/VlPNgjJSNtL2OI4BbrHTRawQJa8wne
 FxPO64FTCoWnurCVX0WPg1uVMIv7n5KZSLoYLiyu/2+4KE8t11u0qPmy69frFfUkpCj4=;
Received: from [84.212.220.105] (helo=giant)
 by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1nHkY8-00010x-Mj; Wed, 09 Feb 2022 11:50:15 +0100
From: Lars Ingebrigtsen <larsi@HIDDEN>
To: Manuel Giraud <manuel@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN> <87bkzgpi9u.fsf@HIDDEN>
 <87tud8cr5q.fsf@HIDDEN> <878rukmkpf.fsf@HIDDEN>
 <87k0e4cojb.fsf@HIDDEN> <87v8xol3tr.fsf@HIDDEN>
 <87czjwco5u.fsf@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj
 SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAALVBMVEX+/v7o6OiQkI/S
 0tGurq7f398QEBBZWVhKSkl1dXVnZ2cxMTF/f39eX2D////ZTk9FAAAAAWJLR0QOb70wTwAAAAd0
 SU1FB+YCCQoiIe1NnX0AAACzSURBVDjLY2DABRgVgASzAbMDkwCYzyIAlQhJCBZlEFIwbxBzZTBl
 ZGSIDDSASFTt7NzU1LRi9QLpGdOXd7upT59dDpGozGhKKIvcrV0gptE9oyQpm7t6FUTCxcDFQJg5
 0MWA2YXBhcHAkJnZlWEUjIJRQDEwdhAAkiJw/qxVy2eWT9eauXz7qlXLDStXrdJSXwqV8NTyOB5V
 tUpp1XIl552rbmmpTwRLMCIbx6ow0B6CAADcxi10rPrSbAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAy
 Mi0wMi0wOVQxMDozNDozMyswMDowMDlinS4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDItMDlU
 MTA6MzQ6MzMrMDA6MDBIPyWSAAAAAElFTkSuQmCC
X-Now-Playing: David Bowie's _Conversation Piece (1): Home Demos_: "Angel
 Angel Grubby Face (Version 2)"
Date: Wed, 09 Feb 2022 11:50:09 +0100
In-Reply-To: <87czjwco5u.fsf@HIDDEN> (Manuel Giraud's message of "Wed,
 09 Feb 2022 11:47:09 +0100")
Message-ID: <87r18cl3fi.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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
 @@CONTACT_ADDRESS@@ for details.
 
 Content preview:  Manuel Giraud <manuel@HIDDEN> writes: > Ah yes of
   course 😅. Should I resubmit modified patch on this bug report? Yes, please.
    
 
 Content analysis details:   (-2.9 points, 5.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
                             [score: 0.0000]
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <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 (---)

Manuel Giraud <manuel@HIDDEN> writes:

> Ah yes of course =F0=9F=98=85. Should I resubmit modified patch on this b=
ug report?

Yes, please.

--=20
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




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

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


Received: (at 53877) by debbugs.gnu.org; 9 Feb 2022 10:47:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 09 05:47:14 2022
Received: from localhost ([127.0.0.1]:50020 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nHkVG-0000Kn-Kc
	for submit <at> debbugs.gnu.org; Wed, 09 Feb 2022 05:47:14 -0500
Received: from ledu-giraud.fr ([51.159.28.247]:19903)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <manuel@HIDDEN>) id 1nHkVE-0000Kb-98
 for 53877 <at> debbugs.gnu.org; Wed, 09 Feb 2022 05:47:12 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=hDVWr3C/kdX8WojU
 xATiT8UBGQHnwz8zauEWGEqe5is=;
 h=in-reply-to:date:references:subject:
 cc:to:from; d=ledu-giraud.fr; b=bBv/heVbEMpj5mkxbE222xgtiO29KSeNYyCcxd
 /YZnbPt0zDDvrYxZLEu3olZSwkc7eQJWfCUeUUwu8HA9JTG9OJulGdvLyS+yh1+8xJDWo4
 fBnqAZbDJ/iQZCMCVpU92kEQmkZ0dAcqmwxEthWEt68buRVaVO4RPZ5KOgbT+DbHjkhJg5
 aUKQRwmKIPVYDmShc6fXJ91G3kUCYlH5V4ym4RKfYfoe5IXwno/xfSJWV1jXavZXXxSqCa
 jXrM2ZIG8QBGZgiBuRprEyzbeVjHBk0wHx4+4uZeSKovJOW9LITM61rljZJgN0e4nWxTJK
 AWmOf4Jzf/9qKNqgA/oxsq4w==
Received: from elite.giraud (<unknown> [10.1.1.1])
 by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 9b688f6e
 (TLSv1.3:AEAD-AES256-GCM-SHA384:256:NO); 
 Wed, 9 Feb 2022 11:47:10 +0100 (CET)
From: Manuel Giraud <manuel@HIDDEN>
To: Lars Ingebrigtsen <larsi@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN> <87bkzgpi9u.fsf@HIDDEN>
 <87tud8cr5q.fsf@HIDDEN> <878rukmkpf.fsf@HIDDEN>
 <87k0e4cojb.fsf@HIDDEN> <87v8xol3tr.fsf@HIDDEN>
Date: Wed, 09 Feb 2022 11:47:09 +0100
In-Reply-To: <87v8xol3tr.fsf@HIDDEN> (Lars Ingebrigtsen's message of "Wed,
 09 Feb 2022 11:41:36 +0100")
Message-ID: <87czjwco5u.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (berkeley-unix)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <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 (-)

Lars Ingebrigtsen <larsi@HIDDEN> writes:

> Manuel Giraud <manuel@HIDDEN> writes:
>
>> Ouch! Too bad because I don't think I could achieve multiple mail-source
>> fetchers in parallel without it.
>
> Why can't you bind `nnmail-article-buffer' before calling the splitting
> function?

Ah yes of course =F0=9F=98=85. Should I resubmit modified patch on this bug=
 report?
--=20
Manuel Giraud




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

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


Received: (at 53877) by debbugs.gnu.org; 9 Feb 2022 10:41:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 09 05:41:49 2022
Received: from localhost ([127.0.0.1]:50003 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nHkQ1-000077-7l
	for submit <at> debbugs.gnu.org; Wed, 09 Feb 2022 05:41:49 -0500
Received: from quimby.gnus.org ([95.216.78.240]:34706)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1nHkPy-00006q-JS
 for 53877 <at> debbugs.gnu.org; Wed, 09 Feb 2022 05:41:47 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:
 References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:
 Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:
 Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=MxIN12CnBdIylog0FpAvkgiJiG2rjrQ1zlEvqhqFqEU=; b=tvJ2A+DiiSciOeRsG/ynT6I+z0
 8p6lNrXNz2yCtVN6ETDspdwC6izhEtPUF5Jigfv+AcNmFu+pjHS4/EapmSqCJSJzG7SfzgCWgyo3L
 AbzM1HkWh8NQQCn/UfnQYK3H1QwAMKD6CM/sigmsaWX+dOeMh+9CyIYpjtKHy9H1ssGk=;
Received: from [84.212.220.105] (helo=giant)
 by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1nHkPp-0000wm-3c; Wed, 09 Feb 2022 11:41:39 +0100
From: Lars Ingebrigtsen <larsi@HIDDEN>
To: Manuel Giraud <manuel@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN> <87bkzgpi9u.fsf@HIDDEN>
 <87tud8cr5q.fsf@HIDDEN> <878rukmkpf.fsf@HIDDEN>
 <87k0e4cojb.fsf@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj
 SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAALVBMVEX+/v7o6OiQkI/S
 0tGurq7f398QEBBZWVhKSkl1dXVnZ2cxMTF/f39eX2D////ZTk9FAAAAAWJLR0QOb70wTwAAAAd0
 SU1FB+YCCQoiIe1NnX0AAACzSURBVDjLY2DABRgVgASzAbMDkwCYzyIAlQhJCBZlEFIwbxBzZTBl
 ZGSIDDSASFTt7NzU1LRi9QLpGdOXd7upT59dDpGozGhKKIvcrV0gptE9oyQpm7t6FUTCxcDFQJg5
 0MWA2YXBhcHAkJnZlWEUjIJRQDEwdhAAkiJw/qxVy2eWT9eauXz7qlXLDStXrdJSXwqV8NTyOB5V
 tUpp1XIl552rbmmpTwRLMCIbx6ow0B6CAADcxi10rPrSbAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAy
 Mi0wMi0wOVQxMDozNDozMyswMDowMDlinS4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDItMDlU
 MTA6MzQ6MzMrMDA6MDBIPyWSAAAAAElFTkSuQmCC
X-Now-Playing: David Bowie's _Conversation Piece (1): Home Demos_: "Love All
 Around"
Date: Wed, 09 Feb 2022 11:41:36 +0100
In-Reply-To: <87k0e4cojb.fsf@HIDDEN> (Manuel Giraud's message of "Wed,
 09 Feb 2022 11:39:04 +0100")
Message-ID: <87v8xol3tr.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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
 @@CONTACT_ADDRESS@@ for details.
 Content preview:  Manuel Giraud <manuel@HIDDEN> writes: > Ouch! Too
 bad because I don't think I could achieve multiple mail-source > fetchers
 in parallel without it. Why can't you bind `nnmail-article-buffer' before
 calling the splitting function? 
 Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <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 (---)

Manuel Giraud <manuel@HIDDEN> writes:

> Ouch! Too bad because I don't think I could achieve multiple mail-source
> fetchers in parallel without it.

Why can't you bind `nnmail-article-buffer' before calling the splitting
function?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




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

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


Received: (at 53877) by debbugs.gnu.org; 9 Feb 2022 10:39:10 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 09 05:39:10 2022
Received: from localhost ([127.0.0.1]:49998 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nHkNR-0008UI-RF
	for submit <at> debbugs.gnu.org; Wed, 09 Feb 2022 05:39:10 -0500
Received: from ledu-giraud.fr ([51.159.28.247]:25281)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <manuel@HIDDEN>) id 1nHkNP-0008U7-Q6
 for 53877 <at> debbugs.gnu.org; Wed, 09 Feb 2022 05:39:08 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=KpXQX4jaXvSkj5Uq
 P0B/zQbTRqjZvv4ECB8Arkw4TOQ=;
 h=in-reply-to:date:references:subject:
 cc:to:from; d=ledu-giraud.fr; b=hFRFs9UuHyx+Gbo6HfB5IXfiBV6m38qCB/JaQR
 TY5cfIFVt84aHMrdYf1dqAhGl+aB3d1ZQuLt5HhxLK9sMEt2D11Uo8fIr6Ry6LdsFqiobM
 z+UnPAvgNF8tlhyj08PAhyZg0zoiFzYa2ebMWuO6/7E7BETBgT7NEZIAYMj3gfexPPmrdK
 gwb/OsT4ol+iEamc3Wv9QN40kDHYXKjqPP7DVcosYmdUAspcmvTd1BndFZ3nKxEofnGxjF
 70cBS8sRQARs65F57B4ZbRmC9dZsYiDtVaD3hXYmHAm2B+fOd3ffl9I1LI2Pe7F8IdjncY
 5ODbdyuCkQ3P2FVCHSWpICfg==
Received: from elite.giraud (<unknown> [10.1.1.1])
 by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 18b1576c
 (TLSv1.3:AEAD-AES256-GCM-SHA384:256:NO); 
 Wed, 9 Feb 2022 11:39:05 +0100 (CET)
From: Manuel Giraud <manuel@HIDDEN>
To: Lars Ingebrigtsen <larsi@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN> <87bkzgpi9u.fsf@HIDDEN>
 <87tud8cr5q.fsf@HIDDEN> <878rukmkpf.fsf@HIDDEN>
Date: Wed, 09 Feb 2022 11:39:04 +0100
In-Reply-To: <878rukmkpf.fsf@HIDDEN> (Lars Ingebrigtsen's message of "Wed,
 09 Feb 2022 10:51:40 +0100")
Message-ID: <87k0e4cojb.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (berkeley-unix)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <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 (-)

Lars Ingebrigtsen <larsi@HIDDEN> writes:

> People have code like
>
> (defun split-on-body ()
>   (save-excursion
>     (set-buffer nnmail-article-buffer)
>     (goto-char (point-min))
>     (let ((case-fold-search t))
>       (cond
>        ((re-search-forward
> ...

Ouch! Too bad because I don't think I could achieve multiple mail-source
fetchers in parallel without it. OTOH, this is not the example in the
info file which is correct.
-- 
Manuel Giraud




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

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


Received: (at 53877) by debbugs.gnu.org; 9 Feb 2022 09:52:44 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 09 04:52:43 2022
Received: from localhost ([127.0.0.1]:49905 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nHjeV-0004ya-MV
	for submit <at> debbugs.gnu.org; Wed, 09 Feb 2022 04:52:43 -0500
Received: from ledu-giraud.fr ([51.159.28.247]:6801)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <manuel@HIDDEN>) id 1nHjeT-0004yR-K4
 for 53877 <at> debbugs.gnu.org; Wed, 09 Feb 2022 04:52:42 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=yHpV3NiD2NwAjcei
 TqOE31mFD7AdkFdi2DzQA0z0ZJc=;
 h=in-reply-to:date:references:subject:
 cc:to:from; d=ledu-giraud.fr; b=qIdsTCoUxpv7/e49bTXL6Zs+lFSO7Hk4WlolTl
 ob5RJDWMZTR6CwopkgDV1m48P+x+D13gzE3r4aunAC6eVLBs9szvCoNDe4VFgdfu5q9PxV
 YpCZ8DdR6e2fw7CCTlsK7HOLaputJPW3b98DSRGVCnDSlsRr7KSAkBClaW2+pJIfAY1H4O
 7P3wWStSpgG4/Yx5eVsDHoIF1Y2h1qR8AVeQeGVBlIglOerYifdlCzVL74bTm0XCB+YEpC
 4wh+16pviO0LFIvPyauaRhZzY+5O73/3EddG6jCMSsnjfmp7iBlJO3e+WCB4+uSR8qNNBC
 GkkMA/tMhwcLf3YKBqoTk88A==
Received: from elite.giraud (<unknown> [10.1.1.1])
 by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 11e6bf64
 (TLSv1.3:AEAD-AES256-GCM-SHA384:256:NO); 
 Wed, 9 Feb 2022 10:52:39 +0100 (CET)
From: Manuel Giraud <manuel@HIDDEN>
To: Lars Ingebrigtsen <larsi@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN> <877da4pi2h.fsf@HIDDEN>
Date: Wed, 09 Feb 2022 10:52:39 +0100
In-Reply-To: <877da4pi2h.fsf@HIDDEN> (Lars Ingebrigtsen's message of "Wed,
 09 Feb 2022 09:20:22 +0100")
Message-ID: <87pmnwcqoo.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (berkeley-unix)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <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 (-)

Lars Ingebrigtsen <larsi@HIDDEN> writes:

> Manuel Giraud <manuel@HIDDEN> writes:
>
>> -(defcustom mail-source-crash-box "~/.emacs-mail-crash-box"
>> -  "File where mail will be stored while processing it."
>> +(defcustom mail-source-crash-box-prefix "~/.emacs-mail-crash-box-"
>> +  "Prefix of files where mail will be stored while processing it."
>>    :type 'file)
>
> Is the point here that we want to have several mail-source-fetchers
> going in parallel?

Yes that's the point. After those patches, I've started to work on
moving `mail-source-fetch' from =C2=ABcallback method=C2=BB to =C2=ABproces=
s+sentinel
method=C2=BB. So far, I have done most simple ones: "file" and "directory"
sources.

>> +(defun mail-source-existing-crash-boxes ()
>> +  (let ((directory (file-name-directory mail-source-crash-box-prefix))
>> +        (partial (file-name-nondirectory mail-source-crash-box-prefix)))
>> +    (mapcar #'(lambda (name) (file-name-concat directory name))
>> +            (file-name-all-completions partial directory))))
>
> `directory-files' takes a MATCH parameter, and is the way to get
> matches -- not the completion machinery.

Thanks, I'll change that.
--=20
Manuel Giraud




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

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


Received: (at 53877) by debbugs.gnu.org; 9 Feb 2022 09:51:52 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 09 04:51:52 2022
Received: from localhost ([127.0.0.1]:49897 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nHjdg-0004wf-7B
	for submit <at> debbugs.gnu.org; Wed, 09 Feb 2022 04:51:52 -0500
Received: from quimby.gnus.org ([95.216.78.240]:34254)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1nHjde-0004wH-HH
 for 53877 <at> debbugs.gnu.org; Wed, 09 Feb 2022 04:51:51 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:
 References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:
 Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:
 Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=hhPCoW2dV9ewVTAhSaRObGtUIxX8AaAPbSwjYTl4N+0=; b=rHpDlJOr5jHW1lhmBx4I71RtOD
 VbrGzqXk3nDQTYmlV6uzXoHqg+cCnrdHOWcAMoT+tiB/ljKVSH9nmLduyVmMZAO+aHvQA+8gGHl4T
 CQW959Ezjk72QahmdJOAAyqHW8zmza4ywxPeliLuAyf3NkauH0aaz9VeUbumLnE1mTzw=;
Received: from [84.212.220.105] (helo=giant)
 by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1nHjdW-0000Zh-1T; Wed, 09 Feb 2022 10:51:44 +0100
From: Lars Ingebrigtsen <larsi@HIDDEN>
To: Manuel Giraud <manuel@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN> <87bkzgpi9u.fsf@HIDDEN>
 <87tud8cr5q.fsf@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAABGdBTUEAALGPC/xhBQAAACBj
 SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAM1BMVEX+/v7JyMgRERPX
 1tby8Ozo6OfBv77i39yxsK+SkpIeHyFubm8rKy09P0JOTlB8fX////8jyDhzAAAAAWJLR0QQlbIN
 LAAAAAd0SU1FB+YCCQkzFgRvpTsAAAFaSURBVEjH5ZVhk4QgCIZBoFCr/f//9kDb2qxp1p27/XLv
 NOUYDyoKAnQJQ5/9FwD6FYDJhpZBEPj0bzwDjGYJzCxIStL8lXDyrgwSzX1EX2PrTlLrHs03a0aJ
 kbxJdDSYmjUpoZBLWJFEVFBuAFuuzSXnHKO/czb/Ircj+LznEBaNUwhB15i9qBkBSyDVgEzTJHWW
 h+AuxxG0hkUeIU1zNRyOkWoA0nXGmpZnz3H3MlwTjHXPCJutawGLkkdebDEWVEJqT0c8nxc0r+bf
 EG3dF+Dc5wepAFe6BO6kMPYB2AsQ0B8Dcs6Re/EXgKEPgH5AuwH+j0BnQnwAdCbEu8C+Ut0SQmox
 BrEkQSse6zOIT3s321qidpPAaGVhAFRnvHZ7fQKrTnuB2lEGeCfE2pmjHwCdKXcTVr96pd54iKhV
 EXIs36JctSzLPM/Tq1JKoQq8XRRald6n+WbxA8l/CbfhPZ98AAAAJXRFWHRkYXRlOmNyZWF0ZQAy
 MDIyLTAyLTA5VDA5OjUxOjIyKzAwOjAwR7l8nQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMi0wMi0w
 OVQwOTo1MToyMiswMDowMDbkxCEAAAAASUVORK5CYII=
X-Now-Playing: =?utf-8?B?SsOpcsO0bWU=?= Lorichon's _Twenty Years of
 Prohibited Records: Curiosities_: "Thanks Mam"
Date: Wed, 09 Feb 2022 10:51:40 +0100
In-Reply-To: <87tud8cr5q.fsf@HIDDEN> (Manuel Giraud's message of "Wed,
 09 Feb 2022 10:42:25 +0100")
Message-ID: <878rukmkpf.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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
 @@CONTACT_ADDRESS@@ for details.
 Content preview:  Manuel Giraud <manuel@HIDDEN> writes: > I've just
 test this with my patch in place: People have code like 
 Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <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 (---)

Manuel Giraud <manuel@HIDDEN> writes:

> I've just test this with my patch in place:

People have code like

(defun split-on-body ()
  (save-excursion
    (set-buffer nnmail-article-buffer)
    (goto-char (point-min))
    (let ((case-fold-search t))
      (cond
       ((re-search-forward
...


-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




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

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


Received: (at 53877) by debbugs.gnu.org; 9 Feb 2022 09:42:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 09 04:42:31 2022
Received: from localhost ([127.0.0.1]:49860 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nHjUd-0002Nk-HI
	for submit <at> debbugs.gnu.org; Wed, 09 Feb 2022 04:42:31 -0500
Received: from ledu-giraud.fr ([51.159.28.247]:31404)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <manuel@HIDDEN>) id 1nHjUa-0002NZ-US
 for 53877 <at> debbugs.gnu.org; Wed, 09 Feb 2022 04:42:29 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=qOv+2vgSRDavB7GK
 18KqVcEENuAQhLQe00RUQUBDF+s=;
 h=in-reply-to:date:references:subject:
 cc:to:from; d=ledu-giraud.fr; b=PiCLqgJsyMWz/2MQhvaeqX6/M924aQmdYB+xcM
 82/na7Q+QKeIPmBPppFluF6in9ytofRce4uuhjsJcj2Vj6KHIhmujp1XiSUqhDaYpVFS6G
 M0HdPGjoVjjbeOlcdVMBOHGwtUVPqqAAHAzb5AZeEPXRNSJfIG6ppa1O6OT7VnhL8slGB6
 MFT8fEVQIaUTgPjHLb7s5YivDjJ+fslB9OFETJtGRCtL8AKtt67+Hf1fcz/NF6eumWFym+
 wSUcET2PSWAPfRBjX4jwpEWSSVwKShn/P0fyvMNVVIi3wp38efHwuoj/iGykpreDphKuCk
 G7JFJLI6aXFvpvsT8xQWRt+Q==
Received: from elite.giraud (<unknown> [10.1.1.1])
 by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id c3200d99
 (TLSv1.3:AEAD-AES256-GCM-SHA384:256:NO); 
 Wed, 9 Feb 2022 10:42:26 +0100 (CET)
From: Manuel Giraud <manuel@HIDDEN>
To: Lars Ingebrigtsen <larsi@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN> <87bkzgpi9u.fsf@HIDDEN>
Date: Wed, 09 Feb 2022 10:42:25 +0100
In-Reply-To: <87bkzgpi9u.fsf@HIDDEN> (Lars Ingebrigtsen's message of "Wed,
 09 Feb 2022 09:15:57 +0100")
Message-ID: <87tud8cr5q.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (berkeley-unix)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <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 (-)

Lars Ingebrigtsen <larsi@HIDDEN> writes:

> Manuel Giraud <manuel@HIDDEN> writes:
>
>> -(defvar nnmail-article-buffer " *nnmail incoming*"
>> -  "The buffer used for splitting incoming mails.")
>
> [...]
>
>> -    (with-current-buffer (gnus-get-buffer-create nnmail-article-buffer)
>> -      (erase-buffer)
>
> No, this would break lots of Gnus installations -- people have splitting
> rules that go
>
>      (: split-on-body)
>
> where that function looks into nnmail-article-buffer to do whatever they
> want.

I've just test this with my patch in place:

--8<---------------cut here---------------start------------->8---
(defun foo-split ()
  (save-excursion
    (save-restriction
      (widen)
      (goto-char (point-min))
      (when (re-search-forward "booga" nil t)
	"booga"))))

;; Mail splitting (XXX order is important)
(setq nnmail-split-methods 'nnmail-split-fancy
      nnmail-split-fancy
      `(| (: foo-split)
          "elsewhere"))
--8<---------------cut here---------------end--------------->8---

=E2=80=A6and it works as expected: splitting a mail containing "booga" to
"booga". `nnmail-split-it' does not seems to have a reference to
nnmail-buffer-article and just works on the current buffer:

--8<---------------cut here---------------start------------->8---
     ;; Builtin : operation.
     ((eq (car split) ':)
      (nnmail-log-split split)
      (nnmail-split-it (save-excursion (eval (cdr split) t))))
--8<---------------cut here---------------end--------------->8---
--=20
Manuel Giraud




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

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


Received: (at 53877) by debbugs.gnu.org; 9 Feb 2022 09:00:18 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 09 04:00:18 2022
Received: from localhost ([127.0.0.1]:49751 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nHipl-00037K-RZ
	for submit <at> debbugs.gnu.org; Wed, 09 Feb 2022 04:00:18 -0500
Received: from mail-wr1-f41.google.com ([209.85.221.41]:38558)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rpluim@HIDDEN>) id 1nHipj-0002yL-QC
 for 53877 <at> debbugs.gnu.org; Wed, 09 Feb 2022 04:00:17 -0500
Received: by mail-wr1-f41.google.com with SMTP id s10so2800143wra.5
 for <53877 <at> debbugs.gnu.org>; Wed, 09 Feb 2022 01:00:15 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=from:to:cc:subject:references:date:in-reply-to:message-id
 :mime-version:content-transfer-encoding;
 bh=wEoMcg2f9ppv/A+9Q2wzk3HGR0bSikW2chAQuRnaR74=;
 b=mQ2EMSeFmhKodO/ryaVHygBvzbRp4iY6EWkzJEOpT9DDgUIWyv8hapD9HVwVNJz33X
 vaNsqRk/EA75jBD4fJbzRN0EFQovoFbgQrhCjnlYdm00H9MtH+oMovHbCRGlajVxkL2c
 JmZEEUwqqCIUvRlGeN15gmh5MxFHw39h6NsWN2U9704IipAYYfqQDrOqvUnhDUaDdIFf
 s1ZecthzQeVEbZ4T4Q7XkX5jiXqR5rQ58jGmroWxUsZ3hcgW4cgUGPbfdb4PUIHH/Qdh
 8xEAfAo+2/xbmU40vYGBEDwdOmqOLBtnL4ZUBe9pHyhauSyXyiDklGLZE9jOQNVMFdv6
 BioQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to
 :message-id:mime-version:content-transfer-encoding;
 bh=wEoMcg2f9ppv/A+9Q2wzk3HGR0bSikW2chAQuRnaR74=;
 b=KSwmLUeSc9lOgcup23MNzCUVmOoz6VhGkXHVEsMkkfC/nx1ogTr83FFWZAU/RsDmHA
 bw4atp+8Zy/KOomLxfSYIYnExAzXbJZX5+drwdi7Sof9HxwVyFW7f/IBa6x3tGL4fp7v
 xcIww35R3+/LjHv9Kwul97EsrHOTd0P3uGgG7xLHgpkO1BUaRLBY1XrJqPnPD1VYuYkv
 IYuceX2xrfbOAyEXWxNQL55/DvluwEw37/flhI0xYzru/StmknTRiZ76jfVjRhssyqES
 vQWoCnE9OdckgNEYIpZ/9uYl/HySYSkjTUDhTR6YkTNX4OILNs/ubNPER0Aeg8Lp7X2f
 sfzw==
X-Gm-Message-State: AOAM532KP26DvHAy96XmP/vi50uGG3st9rr1Jl+tfLdSOB6/DUvPeSmp
 ONa41C+4OgZYeDEQ+nxaCDvU0k9svfrRpQ==
X-Google-Smtp-Source: ABdhPJxUdeFoErI1sjA9Pmqb2GrQSYupye7rs7RmajrXVOnftpPvaOh4DHfo98TMCUfqmKz21IEoaQ==
X-Received: by 2002:a5d:6b4a:: with SMTP id x10mr1235312wrw.715.1644397209575; 
 Wed, 09 Feb 2022 01:00:09 -0800 (PST)
Received: from rltb ([2a01:e0a:3f3:fb50:a7fc:d931:6725:24e8])
 by smtp.gmail.com with ESMTPSA id bg23sm5428859wmb.5.2022.02.09.01.00.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Feb 2022 01:00:09 -0800 (PST)
From: Robert Pluim <rpluim@HIDDEN>
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN> <877da514jx.fsf@HIDDEN>
Date: Wed, 09 Feb 2022 10:00:08 +0100
In-Reply-To: <877da514jx.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Tue, 08 Feb 2022 12:33:54 -0800")
Message-ID: <87bkzg4dpj.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <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 (-)

>>>>> On Tue, 08 Feb 2022 12:33:54 -0800, Eric Abrahamsen <eric@ericabraham=
sen.net> said:

    Eric> Manuel Giraud <manuel@HIDDEN> writes:
    >> Hi,
    >>=20
    >> I'm trying to have an asynchronous Gnus nnml backend. In the process=
, I
    >> found some things that I'd like to have first in nnmail.el and
    >> mail-sources.el (see patches).
    >>=20
    >> There is nothing asynchronous so far so Gnus behaviour shouldn't have
    >> changed that much.

    Eric> Hi Manuel,

    Eric> Thanks for working on this! Getting rid of `nnmail-article-buffer=
' looks
    Eric> fine to me.

My paranoid side says that I=CA=BCd rather have a predictable buffer name
when treating incoming email than a temporary buffer.

    Eric> In the crash box patch, I wonder if we really need to change the =
name of
    Eric> the option. It could be used as-is as a prefix, without really ne=
eding
    Eric> to involve the user. Maybe changing the docstring would be enough?

Right. Backwards compatibility is important.

Robert
--=20




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

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


Received: (at 53877) by debbugs.gnu.org; 9 Feb 2022 08:20:35 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 09 03:20:35 2022
Received: from localhost ([127.0.0.1]:49640 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nHiDL-0005fT-Dq
	for submit <at> debbugs.gnu.org; Wed, 09 Feb 2022 03:20:35 -0500
Received: from quimby.gnus.org ([95.216.78.240]:32942)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1nHiDJ-0005fF-5I
 for 53877 <at> debbugs.gnu.org; Wed, 09 Feb 2022 03:20:34 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:
 References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:
 Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:
 Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=4QHF7IcxUR9krqciLZXQtqzC5JmExhU2B1cePP/hvxk=; b=vF4iHS5fq3G8AcLhLcdxGKQvhh
 KE4I2NR/EIVTKCnD/CU3jje0P5cRgn+8FT7qLwbdcqOWqFkyoj2SMYfXLp/zeb3vDYqHdK9TxYu+T
 AGhJ9gE4KLFTJPqZ1N/uaFFkCJsQ2tAMdLzVOyyFaJ6vE3kcwMXzKiCRkTX8MRc/mOMw=;
Received: from [84.212.220.105] (helo=giant)
 by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1nHiDA-00082M-PG; Wed, 09 Feb 2022 09:20:27 +0100
From: Lars Ingebrigtsen <larsi@HIDDEN>
To: Manuel Giraud <manuel@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN>
X-Now-Playing: Simon & Garfunkel's _Live From New York City, 1967_: "You
 Don't Know Where Your Interest Lies"
Date: Wed, 09 Feb 2022 09:20:22 +0100
In-Reply-To: <87leyl1lr9.fsf@HIDDEN> (Manuel Giraud's message of "Tue,
 08 Feb 2022 15:22:18 +0100")
Message-ID: <877da4pi2h.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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
 @@CONTACT_ADDRESS@@ for details.
 Content preview: Manuel Giraud <manuel@HIDDEN> writes: > -(defcustom
 mail-source-crash-box "~/.emacs-mail-crash-box" > - "File where mail will
 be stored while processing it." > +(defcustom mail-source-crash-box-prefix
 "~/.emacs-mail-crash-box-" > + "Prefi [...] 
 Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <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 (---)

Manuel Giraud <manuel@HIDDEN> writes:

> -(defcustom mail-source-crash-box "~/.emacs-mail-crash-box"
> -  "File where mail will be stored while processing it."
> +(defcustom mail-source-crash-box-prefix "~/.emacs-mail-crash-box-"
> +  "Prefix of files where mail will be stored while processing it."
>    :type 'file)

Is the point here that we want to have several mail-source-fetchers
going in parallel?

> +(defun mail-source-existing-crash-boxes ()
> +  (let ((directory (file-name-directory mail-source-crash-box-prefix))
> +        (partial (file-name-nondirectory mail-source-crash-box-prefix)))
> +    (mapcar #'(lambda (name) (file-name-concat directory name))
> +            (file-name-all-completions partial directory))))

`directory-files' takes a MATCH parameter, and is the way to get
matches -- not the completion machinery.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




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

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


Received: (at 53877) by debbugs.gnu.org; 9 Feb 2022 08:16:10 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 09 03:16:10 2022
Received: from localhost ([127.0.0.1]:49628 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nHi94-0004Rz-0u
	for submit <at> debbugs.gnu.org; Wed, 09 Feb 2022 03:16:10 -0500
Received: from quimby.gnus.org ([95.216.78.240]:32890)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1nHi91-0004L1-Pl
 for 53877 <at> debbugs.gnu.org; Wed, 09 Feb 2022 03:16:08 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:
 References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:
 Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:
 Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=33KKfDV/jU4RbB2ZD8gTJl1gcBqc0KXSK62sTqG9odI=; b=L5m6RA65bPb5ZsEIYfFT8lqi3N
 YwaD9R4gZ/SEP9RMZcuxcl1xcKZRUcdwgK1u4gKV+OQFa2g2ooihCdCV6Z2tFECO3HuAv7mtlVSNf
 6UI6jFuw7crsUt0icHxTtzTcH/UnmRSq8wc6+Lbx+jvUGV2BN8tOpFv8SqJ3QeNhBeg0=;
Received: from [84.212.220.105] (helo=giant)
 by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1nHi8s-0007zC-Bo; Wed, 09 Feb 2022 09:16:01 +0100
From: Lars Ingebrigtsen <larsi@HIDDEN>
To: Manuel Giraud <manuel@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
References: <87leyl1lr9.fsf@HIDDEN>
X-Now-Playing: Simon & Garfunkel's _Live From New York City, 1967_:
 "Homeward Bound"
Date: Wed, 09 Feb 2022 09:15:57 +0100
In-Reply-To: <87leyl1lr9.fsf@HIDDEN> (Manuel Giraud's message of "Tue,
 08 Feb 2022 15:22:18 +0100")
Message-ID: <87bkzgpi9u.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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
 @@CONTACT_ADDRESS@@ for details.
 Content preview: Manuel Giraud <manuel@HIDDEN> writes: > -(defvar
 nnmail-article-buffer
 " *nnmail incoming*" > - "The buffer used for splitting incoming mails.")
 [...] Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 53877
Cc: 53877 <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 (---)

Manuel Giraud <manuel@HIDDEN> writes:

> -(defvar nnmail-article-buffer " *nnmail incoming*"
> -  "The buffer used for splitting incoming mails.")

[...]

> -    (with-current-buffer (gnus-get-buffer-create nnmail-article-buffer)
> -      (erase-buffer)

No, this would break lots of Gnus installations -- people have splitting
rules that go

     (: split-on-body)

where that function looks into nnmail-article-buffer to do whatever they
want.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




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

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


Received: (at submit) by debbugs.gnu.org; 8 Feb 2022 20:34:29 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Feb 08 15:34:29 2022
Received: from localhost ([127.0.0.1]:48874 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nHXBx-00036C-8i
	for submit <at> debbugs.gnu.org; Tue, 08 Feb 2022 15:34:29 -0500
Received: from lists.gnu.org ([209.51.188.17]:33590)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1nHXBi-00035n-0v
 for submit <at> debbugs.gnu.org; Tue, 08 Feb 2022 15:34:24 -0500
Received: from eggs.gnu.org ([209.51.188.92]:44994)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1nHXBh-0000Nz-Pp
 for bug-gnu-emacs@HIDDEN; Tue, 08 Feb 2022 15:34:09 -0500
Received: from ciao.gmane.io ([116.202.254.214]:59400)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1nHXBe-0001qk-Em
 for bug-gnu-emacs@HIDDEN; Tue, 08 Feb 2022 15:34:08 -0500
Received: from list by ciao.gmane.io with local (Exim 4.92)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1nHXBb-0002JO-BT
 for bug-gnu-emacs@HIDDEN; Tue, 08 Feb 2022 21:34:03 +0100
X-Injected-Via-Gmane: http://gmane.org/
To: bug-gnu-emacs@HIDDEN
From: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#53877: 29.0.50; [PATCH] async Gnus/nnml
Date: Tue, 08 Feb 2022 12:33:54 -0800
Message-ID: <877da514jx.fsf@HIDDEN>
References: <87leyl1lr9.fsf@HIDDEN>
Mime-Version: 1.0
Content-Type: text/plain
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
Cancel-Lock: sha1:Y03614GdXxl4UME82O2l1AJe3wU=
Received-SPF: pass client-ip=116.202.254.214;
 envelope-from=geb-bug-gnu-emacs@HIDDEN; helo=ciao.gmane.io
X-Spam_score_int: -16
X-Spam_score: -1.7
X-Spam_bar: -
X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9,
 HEADER_FROM_DIFFERENT_DOMAINS=0.248, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
 T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.2 (+)
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:  Manuel Giraud <manuel@HIDDEN> writes: > Hi, > > I'm
 trying to have an asynchronous Gnus nnml backend. In the process, I > found
 some things that I'd like to have first in nnmail.el and > mail-sources.el
 (see patches). > > There is nothing [...] 
 Content analysis details:   (1.2 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level
 mail domains are different
 0.0 T_SPF_HELO_TEMPERROR   SPF: test of HELO record failed (temperror)
 0.9 SPF_FAIL               SPF: sender does not match SPF record (fail)
 [SPF failed: Please see http://www.openspf.org/Why?s=mfrom;
 id=geb-bug-gnu-emacs%40m.gmane-mx.org; ip=209.51.188.17; r=debbugs.gnu.org]
 -0.0 T_SCC_BODY_TEXT_LINE   No description available.
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: -3.1 (---)

Manuel Giraud <manuel@HIDDEN> writes:

> Hi,
>
> I'm trying to have an asynchronous Gnus nnml backend. In the process, I
> found some things that I'd like to have first in nnmail.el and
> mail-sources.el (see patches).
>
> There is nothing asynchronous so far so Gnus behaviour shouldn't have
> changed that much.

Hi Manuel,

Thanks for working on this! Getting rid of `nnmail-article-buffer' looks
fine to me.

In the crash box patch, I wonder if we really need to change the name of
the option. It could be used as-is as a prefix, without really needing
to involve the user. Maybe changing the docstring would be enough?

In mail-source-fetch:

+            (dolist (box (mail-source-existing-crash-boxes))
+	      (message "Processing mail from %s..." box)
+	      (setq found (mail-source-callback callback box box))

You'll want to use cl-incf on `found' here (as in the other files).

In the nnmail cache mutex patch, I guess we're preparing for multiple
threads to potentially be writing to/reading from `nnmail-cache-buffer',
right? The mutex prevents concurrent access, but are we sure that
leftover text in the buffer won't confuse the regexp searches? Would it
be safer just to clear the buffer altogether after each transaction?

I'm not quite sure why you're refactoring out
`gnus-update-unread-group', is the idea that that will be used in other
places as well? Or is this the function that will get run in a thread
eventually?

Lastly, have you done your copyright assignment?

Thanks,
Eric





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

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


Received: (at submit) by debbugs.gnu.org; 8 Feb 2022 14:22:52 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Feb 08 09:22:52 2022
Received: from localhost ([127.0.0.1]:45964 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nHROM-0004ic-4E
	for submit <at> debbugs.gnu.org; Tue, 08 Feb 2022 09:22:52 -0500
Received: from lists.gnu.org ([209.51.188.17]:53482)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <manuel@HIDDEN>) id 1nHROI-0004iO-MT
 for submit <at> debbugs.gnu.org; Tue, 08 Feb 2022 09:22:49 -0500
Received: from eggs.gnu.org ([209.51.188.92]:51620)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <manuel@HIDDEN>)
 id 1nHRO8-0006X2-US
 for bug-gnu-emacs@HIDDEN; Tue, 08 Feb 2022 09:22:42 -0500
Received: from ledu-giraud.fr ([51.159.28.247]:30481)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <manuel@HIDDEN>)
 id 1nHRNz-00065L-Vy
 for bug-gnu-emacs@HIDDEN; Tue, 08 Feb 2022 09:22:36 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=MflCLgKLhS03eJRr
 foezj4gmZOHn5HowuWq1hJOQWso=; h=date:subject:to:from;
 d=ledu-giraud.fr; b=HuvqSTFk2gA8MYXXGPAnQQH6XN9jbbpFQa3ogfPGdf/afIPIWl
 9CW3yfU8D+/FgO5IsHMgH/WK5Zcn1HGAERj6Q2pfyWWaaX0kKHcjkfdE7j31NEKvBc7W0K
 aPKTaYF8gvwAcs9W0ursTqXljpdkJJUCgEoX73ZRumdaAsXb33eqlD61U1wSkol2dgU36+
 IpzCaP5UGsKkBZx7hYamIJKujcWBOz81aPGLAVV40w7PS+szk0DnX6+Zz3rHLWkm9Z7fCW
 nf4wIxa28lBgXENRM31OjUzK26cCLS7ki5OTxx5IL8TzAZGTVoKooNTrqmwek/uRWwyfvI
 Xnh2cQtksvnA==
Received: from elite.giraud (<unknown> [10.1.1.1])
 by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id f2382942
 (TLSv1.3:AEAD-AES256-GCM-SHA384:256:NO) for <bug-gnu-emacs@HIDDEN>;
 Tue, 8 Feb 2022 15:22:19 +0100 (CET)
From: Manuel Giraud <manuel@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 29.0.50; [PATCH] async Gnus/nnml
Date: Tue, 08 Feb 2022 15:22:18 +0100
Message-ID: <87leyl1lr9.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (berkeley-unix)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
Received-SPF: pass client-ip=51.159.28.247; envelope-from=manuel@HIDDEN;
 helo=ledu-giraud.fr
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001,
 SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.4 (-)
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: -2.4 (--)

--=-=-=
Content-Type: text/plain


Hi,

I'm trying to have an asynchronous Gnus nnml backend. In the process, I
found some things that I'd like to have first in nnmail.el and
mail-sources.el (see patches).

There is nothing asynchronous so far so Gnus behaviour shouldn't have
changed that much.

Best regards,


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment;
 filename=0001-just-use-temp-buffer-for-nnmail-article-buffer.patch

From 21a6dfc1648cf5ec3a773d7624806a24c9b358a4 Mon Sep 17 00:00:00 2001
From: Manuel Giraud <manuel@HIDDEN>
Date: Tue, 8 Feb 2022 13:19:44 +0100
Subject: [PATCH 1/4] just use temp-buffer for `nnmail-article-buffer'.

It is used in one and only place as a temporary buffer.
---
 lisp/gnus/nnmail.el | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el
index c71627f83a..af9c439280 100644
--- a/lisp/gnus/nnmail.el
+++ b/lisp/gnus/nnmail.el
@@ -571,9 +571,6 @@ nnmail-debug-splitting
 
 ;;; Internal variables.
 
-(defvar nnmail-article-buffer " *nnmail incoming*"
-  "The buffer used for splitting incoming mails.")
-
 (defvar nnmail-split-history nil
   "List of group/article elements that say where the previous split put messages.")
 
@@ -1043,8 +1040,7 @@ nnmail-split-incoming
 				  (list (list group ""))
 				nnmail-split-methods)))
     ;; Insert the incoming file.
-    (with-current-buffer (gnus-get-buffer-create nnmail-article-buffer)
-      (erase-buffer)
+    (with-temp-buffer
       (if (bufferp incoming)
 	  (insert-buffer-substring incoming)
 	;; The following coding system is set to
@@ -1072,8 +1068,7 @@ nnmail-split-incoming
 		  (t
 		   (nnmail-process-unix-mail-format func artnum-func))))
 	(when exit-func
-	  (funcall exit-func))
-	(kill-buffer (current-buffer))))))
+	  (funcall exit-func))))))
 
 (defun nnmail-article-group (func &optional trace junk-func)
   "Look at the headers and return an alist of groups that match.
-- 
2.35.1


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment;
 filename=0002-uniquify-mail-source-crash-box-on-each-different-mai.patch

From 798555baaa3f4afca663a6ac29bc42bf313144bc Mon Sep 17 00:00:00 2001
From: Manuel Giraud <manuel@HIDDEN>
Date: Wed, 2 Feb 2022 10:50:57 +0100
Subject: [PATCH 2/4] uniquify mail-source-crash-box on each different
 mail-source fetcher.

---
 lisp/gnus/mail-source.el | 386 ++++++++++++++++++++-------------------
 1 file changed, 202 insertions(+), 184 deletions(-)

diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el
index 5d0c0e2654..4498ea13f6 100644
--- a/lisp/gnus/mail-source.el
+++ b/lisp/gnus/mail-source.el
@@ -238,10 +238,12 @@ mail-source-flash
   "If non-nil, flash periodically when mail is available."
   :type 'boolean)
 
-(defcustom mail-source-crash-box "~/.emacs-mail-crash-box"
-  "File where mail will be stored while processing it."
+(defcustom mail-source-crash-box-prefix "~/.emacs-mail-crash-box-"
+  "Prefix of files where mail will be stored while processing it."
   :type 'file)
 
+(make-obsolete-variable 'mail-source-crash-box 'mail-source-crash-box-prefix "29.1")
+
 (defcustom mail-source-directory message-directory
   "Directory where incoming mail source files (if any) will be stored."
   :type 'directory)
@@ -518,6 +520,18 @@ mail-source-value
 
 (autoload 'nnheader-message "nnheader")
 
+(defun mail-source-fetcher (source)
+  (cadr (assq (car source) mail-source-fetcher-alist)))
+
+(defun mail-source-crash-box ()
+  (make-temp-name mail-source-crash-box-prefix))
+
+(defun mail-source-existing-crash-boxes ()
+  (let ((directory (file-name-directory mail-source-crash-box-prefix))
+        (partial (file-name-nondirectory mail-source-crash-box-prefix)))
+    (mapcar #'(lambda (name) (file-name-concat directory name))
+            (file-name-all-completions partial directory))))
+
 (defun mail-source-fetch (source callback &optional method)
   "Fetch mail from SOURCE and call CALLBACK zero or more times.
 CALLBACK will be called with the name of the file where (some of)
@@ -536,21 +550,20 @@ mail-source-fetch
 				  (format "%s: " method)
 				"")
 			      (car source)))
-	  (let ((function (cadr (assq (car source) mail-source-fetcher-alist)))
+	  (let ((fetcher (mail-source-fetcher source))
 		(found 0))
-	    (unless function
+	    (unless fetcher
 	      (error "%S is an invalid mail source specification" source))
-	    ;; If there's anything in the crash box, we do it first.
-	    (when (file-exists-p mail-source-crash-box)
-	      (message "Processing mail from %s..." mail-source-crash-box)
-	      (setq found (mail-source-callback
-			   callback mail-source-crash-box))
-	      (mail-source-delete-crash-box))
+	    ;; If there's anything in some crash boxes, we do it first.
+            (dolist (box (mail-source-existing-crash-boxes))
+	      (message "Processing mail from %s..." box)
+	      (setq found (mail-source-callback callback box box))
+	      (mail-source-delete-crash-box box))
 	    (+ found
 	       (if (or debug-on-quit debug-on-error)
-		   (funcall function source callback)
+		   (funcall fetcher source callback)
 		 (condition-case err
-		     (funcall function source callback)
+		     (funcall fetcher source callback)
 		   (error
                     (gnus-error
                      5
@@ -596,24 +609,24 @@ mail-source-delete-old-incoming
 		     t))
 	  (delete-file ffile))))))
 
-(defun mail-source-callback (callback info)
+(defun mail-source-callback (callback info crash-box)
   "Call CALLBACK on the mail file.  Pass INFO on to CALLBACK."
-  (if (or (not (file-exists-p mail-source-crash-box))
+  (if (or (not (file-exists-p crash-box))
 	  (zerop (file-attribute-size
-		  (file-attributes mail-source-crash-box))))
+		  (file-attributes crash-box))))
       (progn
-	(when (file-exists-p mail-source-crash-box)
-	  (delete-file mail-source-crash-box))
+	(when (file-exists-p crash-box)
+	  (delete-file crash-box))
 	0)
-    (funcall callback mail-source-crash-box info)))
+    (funcall callback crash-box info)))
 
 (defvar mail-source-incoming-last-checked-time nil)
 
-(defun mail-source-delete-crash-box ()
-  (when (file-exists-p mail-source-crash-box)
+(defun mail-source-delete-crash-box (crash-box)
+  (when (file-exists-p crash-box)
     ;; Delete or move the incoming mail out of the way.
     (if (eq mail-source-delete-incoming t)
-	(delete-file mail-source-crash-box)
+	(delete-file crash-box)
       (let ((incoming
 	     (make-temp-file
 	      (expand-file-name
@@ -621,7 +634,7 @@ mail-source-delete-crash-box
 	       mail-source-directory))))
 	(unless (file-exists-p (file-name-directory incoming))
 	  (make-directory (file-name-directory incoming) t))
-	(rename-file mail-source-crash-box incoming t)
+	(rename-file crash-box incoming t)
 	;; remove old incoming files?
 	(when (natnump mail-source-delete-incoming)
 	  ;; Don't check for old incoming files more than once per day to
@@ -750,17 +763,18 @@ mail-source-call-script
 (defun mail-source-fetch-file (source callback)
   "Fetcher for single-file sources."
   (mail-source-bind (file source)
-    (mail-source-run-script
-     prescript `((?t . ,mail-source-crash-box))
-     prescript-delay)
-    (let ((mail-source-string (format "file:%s" path)))
-      (if (mail-source-movemail path mail-source-crash-box)
-	  (prog1
-	      (mail-source-callback callback path)
-	    (mail-source-run-script
-             postscript `((?t . ,mail-source-crash-box)))
-	    (mail-source-delete-crash-box))
-	0))))
+    (let ((crash-box (mail-source-crash-box)))
+      (mail-source-run-script
+       prescript `((?t . ,crash-box))
+       prescript-delay)
+      (let ((mail-source-string (format "file:%s" path)))
+        (if (mail-source-movemail path crash-box)
+	    (prog1
+	        (mail-source-callback callback path crash-box)
+	      (mail-source-run-script
+               postscript `((?t . ,crash-box)))
+	      (mail-source-delete-crash-box crash-box))
+	  0)))))
 
 (defun mail-source-fetch-directory (source callback)
   "Fetcher for directory sources."
@@ -768,92 +782,94 @@ mail-source-fetch-directory
     (mail-source-run-script
      prescript `((?t . ,path)) prescript-delay)
     (let ((found 0)
-	  (mail-source-string (format "directory:%s" path)))
+	  (mail-source-string (format "directory:%s" path))
+          (crash-box (mail-source-crash-box)))
       (dolist (file (directory-files
 		     path t (concat (regexp-quote suffix) "$")))
 	(when (and (file-regular-p file)
 		   (funcall predicate file)
-		   (mail-source-movemail file mail-source-crash-box))
-	  (cl-incf found (mail-source-callback callback file))
+		   (mail-source-movemail file crash-box))
+	  (cl-incf found (mail-source-callback callback file crash-box))
           (mail-source-run-script postscript `((?t . ,path)))
-	  (mail-source-delete-crash-box)))
+	  (mail-source-delete-crash-box crash-box)))
       found)))
 
 (defun mail-source-fetch-pop (source callback)
   "Fetcher for single-file sources."
   (mail-source-bind (pop source)
-    ;; fixme: deal with stream type in format specs
-    (mail-source-run-script
-     prescript
-     `((?p . ,password) (?t . ,mail-source-crash-box)
-       (?s . ,server) (?P . ,port) (?u . ,user))
-     prescript-delay)
-    (let ((from (format "%s:%s:%s" server user port))
-	  (mail-source-string (format "pop:%s@%s" user server))
-	  (process-environment (if server
-				   (cons (concat "MAILHOST=" server)
-					 process-environment)
-				 process-environment))
-	  result)
-      (when (eq authentication 'password)
-	(setq password
-	      (or password
-		  (cdr (assoc from mail-source-password-cache))
-		  (read-passwd
-		   (format "Password for %s at %s: " user server)))))
-      (setq result
-	    (cond
-	     (program
-	      (mail-source-fetch-with-program
-	       (format-spec
-		program
-                `((?p . ,password) (?t . ,mail-source-crash-box)
-                  (?s . ,server) (?P . ,port) (?u . ,user)))))
-	     (function
-	      (funcall function mail-source-crash-box))
-	     ;; The default is to use pop3.el.
-	     (t
-	      (require 'pop3)
-	      (dlet ((pop3-password password)
-		     (pop3-maildrop user)
-		     (pop3-mailhost server)
-		     (pop3-port port)
-		     (pop3-authentication-scheme
-		      (if (eq authentication 'apop) 'apop 'pass))
-		     (pop3-stream-type stream)
-		     (pop3-leave-mail-on-server leave))
-		(if (or debug-on-quit debug-on-error)
-		    (save-excursion (pop3-movemail mail-source-crash-box))
-		  (condition-case err
-		      (save-excursion (pop3-movemail mail-source-crash-box))
-		    (error
-		     ;; We nix out the password in case the error
-		     ;; was because of a wrong password being given.
-		     (setq mail-source-password-cache
-			   (delq (assoc from mail-source-password-cache)
-				 mail-source-password-cache))
-		     (signal (car err) (cdr err)))))))))
-      (if result
-	  (progn
-	    (when (eq authentication 'password)
-	      (unless (assoc from mail-source-password-cache)
-		(push (cons from password) mail-source-password-cache)))
-	    (prog1
-		(mail-source-callback callback server)
-	      ;; Update display-time's mail flag, if relevant.
-	      (if (equal source mail-source-primary-source)
-		  (setq mail-source-new-mail-available nil))
-	      (mail-source-run-script
-	       postscript
-               `((?p . ,password) (?t . ,mail-source-crash-box)
-                 (?s . ,server) (?P . ,port) (?u . ,user)))
-	      (mail-source-delete-crash-box)))
-	;; We nix out the password in case the error
-	;; was because of a wrong password being given.
-	(setq mail-source-password-cache
-	      (delq (assoc from mail-source-password-cache)
-		    mail-source-password-cache))
-	0))))
+    (let ((crash-box (mail-source-crash-box)))
+      ;; fixme: deal with stream type in format specs
+      (mail-source-run-script
+       prescript
+       `((?p . ,password) (?t . ,crash-box)
+         (?s . ,server) (?P . ,port) (?u . ,user))
+       prescript-delay)
+      (let ((from (format "%s:%s:%s" server user port))
+	    (mail-source-string (format "pop:%s@%s" user server))
+	    (process-environment (if server
+				     (cons (concat "MAILHOST=" server)
+					   process-environment)
+				   process-environment))
+	    result)
+        (when (eq authentication 'password)
+	  (setq password
+	        (or password
+		    (cdr (assoc from mail-source-password-cache))
+		    (read-passwd
+		     (format "Password for %s at %s: " user server)))))
+        (setq result
+	      (cond
+	       (program
+	        (mail-source-fetch-with-program
+	         (format-spec
+		  program
+                  `((?p . ,password) (?t . ,crash-box)
+                    (?s . ,server) (?P . ,port) (?u . ,user)))))
+	       (function
+	        (funcall function crash-box))
+	       ;; The default is to use pop3.el.
+	       (t
+	        (require 'pop3)
+	        (dlet ((pop3-password password)
+		       (pop3-maildrop user)
+		       (pop3-mailhost server)
+		       (pop3-port port)
+		       (pop3-authentication-scheme
+		        (if (eq authentication 'apop) 'apop 'pass))
+		       (pop3-stream-type stream)
+		       (pop3-leave-mail-on-server leave))
+		  (if (or debug-on-quit debug-on-error)
+		      (save-excursion (pop3-movemail crash-box))
+		    (condition-case err
+		        (save-excursion (pop3-movemail crash-box))
+		      (error
+		       ;; We nix out the password in case the error
+		       ;; was because of a wrong password being given.
+		       (setq mail-source-password-cache
+			     (delq (assoc from mail-source-password-cache)
+				   mail-source-password-cache))
+		       (signal (car err) (cdr err)))))))))
+        (if result
+	    (progn
+	      (when (eq authentication 'password)
+	        (unless (assoc from mail-source-password-cache)
+		  (push (cons from password) mail-source-password-cache)))
+	      (prog1
+		  (mail-source-callback callback server crash-box)
+	        ;; Update display-time's mail flag, if relevant.
+	        (if (equal source mail-source-primary-source)
+		    (setq mail-source-new-mail-available nil))
+	        (mail-source-run-script
+	         postscript
+                 `((?p . ,password) (?t . ,crash-box)
+                   (?s . ,server) (?P . ,port) (?u . ,user)))
+	        (mail-source-delete-crash-box crash-box)))
+	  ;; We nix out the password in case the error
+	  ;; was because of a wrong password being given.
+	  (setq mail-source-password-cache
+	        (delq (assoc from mail-source-password-cache)
+		      mail-source-password-cache))
+	  0)))))
 
 (defun mail-source-check-pop (source)
   "Check whether there is new mail."
@@ -1001,6 +1017,7 @@ mail-source-fetch-maildir
   "Fetcher for maildir sources."
   (mail-source-bind (maildir source)
     (let ((found 0)
+          (crash-box (mail-source-crash-box))
 	  mail-source-string)
       (unless (string-match "/$" path)
 	(setq path (concat path "/")))
@@ -1011,12 +1028,12 @@ mail-source-fetch-maildir
 	    (when (and (not (file-directory-p file))
 		       (not (if function
 				;; `function' should return nil if successful.
-				(funcall function file mail-source-crash-box)
+				(funcall function file crash-box)
 			      (let ((coding-system-for-write
 				     mm-text-coding-system)
 				    (coding-system-for-read
 				     mm-text-coding-system))
-				(with-temp-file mail-source-crash-box
+				(with-temp-file crash-box
 				  (insert-file-contents file)
 				  (goto-char (point-min))
 ;;;				  ;; Unix mail format
@@ -1031,8 +1048,8 @@ mail-source-fetch-maildir
 				  (insert "\001\001\001\001\n"))
 				(delete-file file)
 				nil))))
-	      (cl-incf found (mail-source-callback callback file))
-	      (mail-source-delete-crash-box)))))
+	      (cl-incf found (mail-source-callback callback file crash-box))
+	      (mail-source-delete-crash-box crash-box)))))
       found)))
 
 (autoload 'imap-open "imap")
@@ -1058,78 +1075,79 @@ mail-source-imap-file-coding-system
 (defun mail-source-fetch-imap (source callback)
   "Fetcher for imap sources."
   (mail-source-bind (imap source)
-    (mail-source-run-script
-     prescript
-     `((?p . ,password) (?t . ,mail-source-crash-box)
-       (?s . ,server) (?P . ,port) (?u . ,user))
-     prescript-delay)
-    (let ((from (format "%s:%s:%s" server user port))
-	  (found 0)
-	  (buf (generate-new-buffer " *imap source*"))
-	  (mail-source-string (format "imap:%s:%s" server mailbox))
-	  (imap-shell-program (or (list program) imap-shell-program))
-	  remove)
-      (if (and (imap-open server port stream authentication buf)
-	       (imap-authenticate
-		user (or (cdr (assoc from mail-source-password-cache))
-                         password)
-                buf))
-          (let ((mailbox-list (if (listp mailbox) mailbox (list mailbox))))
-            (dolist (mailbox mailbox-list)
-              (when (imap-mailbox-select mailbox nil buf)
-	  (let ((coding-system-for-write mail-source-imap-file-coding-system)
-		str)
-            (message "Fetching from %s..." mailbox)
-	    (with-temp-file mail-source-crash-box
-	      ;; Avoid converting 8-bit chars from inserted strings to
-	      ;; multibyte.
-	      (mm-disable-multibyte)
-	      ;; remember password
-	      (with-current-buffer buf
-		(when (and imap-password
-			   (not (member (cons from imap-password)
-                                        mail-source-password-cache)))
-		  (push (cons from imap-password) mail-source-password-cache)))
-	      ;; if predicate is nil, use all uids
-	      (dolist (uid (imap-search (or predicate "1:*") buf))
-		(when (setq str
-			    (if (imap-capability 'IMAP4rev1 buf)
-				(caddar (imap-fetch uid "BODY.PEEK[]"
-						    'BODYDETAIL nil buf))
-			      (imap-fetch uid "RFC822.PEEK" 'RFC822 nil buf)))
-		  (push uid remove)
-		  (insert "From imap " (current-time-string) "\n")
-		  (save-excursion
-		    (insert str "\n\n"))
-		  (while (let ((case-fold-search nil))
-			   (re-search-forward "^From " nil t))
-		    (replace-match ">From "))
-		  (goto-char (point-max))))
-	      (nnheader-ms-strip-cr))
-	    (cl-incf found (mail-source-callback callback server))
-	    (mail-source-delete-crash-box)
-	    (when (and remove fetchflag)
-	      (setq remove (nreverse remove))
-	      (imap-message-flags-add
-	       (imap-range-to-message-set (gnus-compress-sequence remove))
-	       fetchflag nil buf))
-	    (if dontexpunge
-		(imap-mailbox-unselect buf)
-              (imap-mailbox-close nil buf)))))
-            (imap-close buf))
-	(imap-close buf)
-	;; We nix out the password in case the error
-	;; was because of a wrong password being given.
-	(setq mail-source-password-cache
-	      (delq (assoc from mail-source-password-cache)
-		    mail-source-password-cache))
-	(error "IMAP error: %s" (imap-error-text buf)))
-      (kill-buffer buf)
+    (let ((crash-box (mail-source-crash-box)))
       (mail-source-run-script
-       postscript
-       `((?p . ,password) (?t . ,mail-source-crash-box)
-         (?s . ,server) (?P . ,port) (?u . ,user)))
-      found)))
+       prescript
+       `((?p . ,password) (?t . ,crash-box)
+         (?s . ,server) (?P . ,port) (?u . ,user))
+       prescript-delay)
+      (let ((from (format "%s:%s:%s" server user port))
+	    (found 0)
+	    (buf (generate-new-buffer " *imap source*"))
+	    (mail-source-string (format "imap:%s:%s" server mailbox))
+	    (imap-shell-program (or (list program) imap-shell-program))
+	    remove)
+        (if (and (imap-open server port stream authentication buf)
+	         (imap-authenticate
+		  user (or (cdr (assoc from mail-source-password-cache))
+                           password)
+                  buf))
+            (let ((mailbox-list (if (listp mailbox) mailbox (list mailbox))))
+              (dolist (mailbox mailbox-list)
+                (when (imap-mailbox-select mailbox nil buf)
+	          (let ((coding-system-for-write mail-source-imap-file-coding-system)
+		        str)
+                    (message "Fetching from %s..." mailbox)
+	            (with-temp-file crash-box
+	              ;; Avoid converting 8-bit chars from inserted strings to
+	              ;; multibyte.
+	              (mm-disable-multibyte)
+	              ;; remember password
+	              (with-current-buffer buf
+		        (when (and imap-password
+			           (not (member (cons from imap-password)
+                                                mail-source-password-cache)))
+		          (push (cons from imap-password) mail-source-password-cache)))
+	              ;; if predicate is nil, use all uids
+	              (dolist (uid (imap-search (or predicate "1:*") buf))
+		        (when (setq str
+			            (if (imap-capability 'IMAP4rev1 buf)
+				        (caddar (imap-fetch uid "BODY.PEEK[]"
+						            'BODYDETAIL nil buf))
+			              (imap-fetch uid "RFC822.PEEK" 'RFC822 nil buf)))
+		          (push uid remove)
+		          (insert "From imap " (current-time-string) "\n")
+		          (save-excursion
+		            (insert str "\n\n"))
+		          (while (let ((case-fold-search nil))
+			           (re-search-forward "^From " nil t))
+		            (replace-match ">From "))
+		          (goto-char (point-max))))
+	              (nnheader-ms-strip-cr))
+	            (cl-incf found (mail-source-callback callback server crash-box))
+	            (mail-source-delete-crash-box crash-box)
+	            (when (and remove fetchflag)
+	              (setq remove (nreverse remove))
+	              (imap-message-flags-add
+	               (imap-range-to-message-set (gnus-compress-sequence remove))
+	               fetchflag nil buf))
+	            (if dontexpunge
+		        (imap-mailbox-unselect buf)
+                      (imap-mailbox-close nil buf)))))
+              (imap-close buf))
+	  (imap-close buf)
+	  ;; We nix out the password in case the error
+	  ;; was because of a wrong password being given.
+	  (setq mail-source-password-cache
+	        (delq (assoc from mail-source-password-cache)
+		      mail-source-password-cache))
+	  (error "IMAP error: %s" (imap-error-text buf)))
+        (kill-buffer buf)
+        (mail-source-run-script
+         postscript
+         `((?p . ,password) (?t . ,crash-box)
+           (?s . ,server) (?P . ,port) (?u . ,user)))
+        found))))
 
 (provide 'mail-source)
 
-- 
2.35.1


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment; filename=0003-mutex-on-nnmail-cache.patch

From a1dc119bfb777f813f7967256fc0835c34d2c0be Mon Sep 17 00:00:00 2001
From: Manuel Giraud <manuel@HIDDEN>
Date: Thu, 3 Feb 2022 13:52:41 +0100
Subject: [PATCH 3/4] mutex on nnmail cache.

---
 lisp/gnus/nnmail.el | 83 ++++++++++++++++++++++++---------------------
 1 file changed, 44 insertions(+), 39 deletions(-)

diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el
index af9c439280..642ca16e28 100644
--- a/lisp/gnus/nnmail.el
+++ b/lisp/gnus/nnmail.el
@@ -1556,6 +1556,7 @@ nnmail-message-id
 ;;;
 
 (defvar nnmail-cache-buffer nil)
+(defvar nnmail-cache-buffer-mutex (make-mutex))
 
 (defun nnmail-cache-open ()
   (if (or (not nnmail-treat-duplicates)
@@ -1574,22 +1575,23 @@ nnmail-cache-close
   (when (and nnmail-treat-duplicates
              (buffer-live-p nnmail-cache-buffer)
 	     (buffer-modified-p nnmail-cache-buffer))
-    (with-current-buffer nnmail-cache-buffer
-      ;; Weed out the excess number of Message-IDs.
-      (goto-char (point-max))
-      (when (search-backward "\n" nil t nnmail-message-id-cache-length)
-	(progn
-	  (beginning-of-line)
-	  (delete-region (point-min) (point))))
-      ;; Save the buffer.
-      (or (file-exists-p (file-name-directory nnmail-message-id-cache-file))
-	  (make-directory (file-name-directory nnmail-message-id-cache-file)
-			  t))
-      (nnmail-write-region (point-min) (point-max)
-			   nnmail-message-id-cache-file nil 'silent)
-      (set-buffer-modified-p nil)
-      (setq nnmail-cache-buffer nil)
-      (gnus-kill-buffer (current-buffer)))))
+    (with-mutex nnmail-cache-buffer-mutex
+      (with-current-buffer nnmail-cache-buffer
+        ;; Weed out the excess number of Message-IDs.
+        (goto-char (point-max))
+        (when (search-backward "\n" nil t nnmail-message-id-cache-length)
+	  (progn
+	    (beginning-of-line)
+	    (delete-region (point-min) (point))))
+        ;; Save the buffer.
+        (or (file-exists-p (file-name-directory nnmail-message-id-cache-file))
+	    (make-directory (file-name-directory nnmail-message-id-cache-file)
+			    t))
+        (nnmail-write-region (point-min) (point-max)
+			     nnmail-message-id-cache-file nil 'silent)
+        (set-buffer-modified-p nil)
+        (setq nnmail-cache-buffer nil)
+        (gnus-kill-buffer (current-buffer))))))
 
 (defun nnmail-cache-insert (id grp &optional subject sender)
   (when (stringp id)
@@ -1605,18 +1607,19 @@ nnmail-cache-insert
       ;; pass the first (of possibly >1) group which matches. -Josh
       (unless (gnus-buffer-live-p nnmail-cache-buffer)
 	(nnmail-cache-open))
-      (with-current-buffer nnmail-cache-buffer
-	(goto-char (point-max))
-	(if (and grp (not (string= "" grp))
-		 (gnus-methods-equal-p gnus-command-method
-				       (nnmail-cache-primary-mail-backend)))
-	    (let ((regexp (if (consp nnmail-cache-ignore-groups)
-			      (mapconcat #'identity nnmail-cache-ignore-groups
-					 "\\|")
-			    nnmail-cache-ignore-groups)))
-	      (unless (and regexp (string-match regexp grp))
-		(insert id "\t" grp "\n")))
-	  (insert id "\n"))))))
+      (with-mutex nnmail-cache-buffer-mutex
+        (with-current-buffer nnmail-cache-buffer
+	  (goto-char (point-max))
+	  (if (and grp (not (string= "" grp))
+		   (gnus-methods-equal-p gnus-command-method
+				         (nnmail-cache-primary-mail-backend)))
+	      (let ((regexp (if (consp nnmail-cache-ignore-groups)
+			        (mapconcat #'identity nnmail-cache-ignore-groups
+					   "\\|")
+			      nnmail-cache-ignore-groups)))
+	        (unless (and regexp (string-match regexp grp))
+		  (insert id "\t" grp "\n")))
+	    (insert id "\n")))))))
 
 (defun nnmail-cache-primary-mail-backend ()
   (let ((be-list (cons gnus-select-method gnus-secondary-select-methods))
@@ -1638,14 +1641,15 @@ nnmail-cache-primary-mail-backend
 ;; cache.
 (defun nnmail-cache-fetch-group (id)
   (when (and nnmail-treat-duplicates nnmail-cache-buffer)
-    (with-current-buffer nnmail-cache-buffer
-      (goto-char (point-max))
-      (when (search-backward id nil t)
-	(beginning-of-line)
-	(skip-chars-forward "^\n\r\t")
-	(unless (looking-at "[\r\n]")
-	  (forward-char 1)
-	  (buffer-substring (point) (point-at-eol)))))))
+    (with-mutex nnmail-cache-buffer-mutex
+      (with-current-buffer nnmail-cache-buffer
+        (goto-char (point-max))
+        (when (search-backward id nil t)
+	  (beginning-of-line)
+	  (skip-chars-forward "^\n\r\t")
+	  (unless (looking-at "[\r\n]")
+	    (forward-char 1)
+	    (buffer-substring (point) (point-at-eol))))))))
 
 ;; Function for nnmail-split-fancy: look up all references in the
 ;; cache and if a match is found, return that group.
@@ -1682,9 +1686,10 @@ nnmail-split-fancy-with-parent
 
 (defun nnmail-cache-id-exists-p (id)
   (when nnmail-treat-duplicates
-    (with-current-buffer nnmail-cache-buffer
-      (goto-char (point-max))
-      (search-backward id nil t))))
+    (with-mutex nnmail-cache-buffer-mutex
+      (with-current-buffer nnmail-cache-buffer
+        (goto-char (point-max))
+        (search-backward id nil t)))))
 
 (defun nnmail-fetch-field (header)
   (save-excursion
-- 
2.35.1


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment;
 filename=0004-separate-update-unread-of-group.patch

From 07dae695797f2646a1653691cdda7123b2c0e160 Mon Sep 17 00:00:00 2001
From: Manuel Giraud <manuel@HIDDEN>
Date: Sat, 5 Feb 2022 16:39:01 +0100
Subject: [PATCH 4/4] separate update unread of group.

---
 lisp/gnus/gnus-start.el | 174 ++++++++++++++++++++--------------------
 1 file changed, 88 insertions(+), 86 deletions(-)

diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
index dd9c277805..edf7296bee 100644
--- a/lisp/gnus/gnus-start.el
+++ b/lisp/gnus/gnus-start.el
@@ -1485,6 +1485,93 @@ gnus-activate-group
 	     ;; Return the new active info.
 	     active)))))
 
+(defun gnus-update-unread-group (info active)
+  (let* ((range (gnus-info-read info))
+	 (num 0))
+
+    ;; These checks are present in gnus-activate-group but skipped
+    ;; due to setting dont-check in the preceding call.
+
+    ;; If a cache is present, we may have to alter the active info.
+    (when (and gnus-use-cache info)
+      (inline (gnus-cache-possibly-alter-active
+	       (gnus-info-group info) active)))
+
+    ;; If the agent is enabled, we may have to alter the active info.
+    (when (and gnus-agent info)
+      (gnus-agent-possibly-alter-active (gnus-info-group info) active info))
+
+    ;; Modify the list of read articles according to what articles
+    ;; are available; then tally the unread articles and add the
+    ;; number to the group hash table entry.
+    (cond
+     ((zerop (cdr active))
+      (setq num 0))
+     ((not range)
+      (setq num (- (1+ (cdr active)) (car active))))
+     ((not (listp (cdr range)))
+      ;; Fix a single (num . num) range according to the
+      ;; active hash table.
+      ;; Fix by Carsten Bormann <cabo@HIDDEN>.
+      (and (< (cdr range) (car active)) (setcdr range (1- (car active))))
+      (and (> (cdr range) (cdr active)) (setcdr range (cdr active)))
+      ;; Compute number of unread articles.
+      (setq num (max 0 (- (cdr active) (- (1+ (cdr range)) (car range))))))
+     (t
+      ;; The read list is a list of ranges.  Fix them according to
+      ;; the active hash table.
+      ;; First peel off any elements that are below the lower
+      ;; active limit.
+      (while (and (cdr range)
+		  (>= (car active)
+		      (or (and (atom (cadr range)) (cadr range))
+			  (caadr range))))
+	(if (numberp (car range))
+	    (setcar range
+		    (cons (car range)
+			  (or (and (numberp (cadr range))
+				   (cadr range))
+			      (cdadr range))))
+	  (setcdr (car range)
+		  (or (and (numberp (nth 1 range)) (nth 1 range))
+		      (cdadr range))))
+	(setcdr range (cddr range)))
+      ;; Adjust the first element to be the same as the lower limit.
+      (when (and (not (atom (car range)))
+		 (< (cdar range) (car active)))
+	(setcdr (car range) (1- (car active))))
+      ;; Then we want to peel off any elements that are higher
+      ;; than the upper active limit.
+      (let ((srange range))
+	;; Go past all valid elements.
+	(while (and (cdr srange)
+		    (<= (or (and (atom (cadr srange))
+				 (cadr srange))
+			    (caadr srange))
+			(cdr active)))
+	  (setq srange (cdr srange)))
+	(when (cdr srange)
+	  ;; Nuke all remaining invalid elements.
+	  (setcdr srange nil))
+
+	;; Adjust the final element.
+	(when (and (not (atom (car srange)))
+		   (> (cdar srange) (cdr active)))
+	  (setcdr (car srange) (cdr active))))
+      ;; Compute the number of unread articles.
+      (while range
+	(setq num (+ num (- (1+ (or (and (atom (car range)) (car range))
+				    (cdar range)))
+			    (or (and (atom (car range)) (car range))
+				(caar range)))))
+	(setq range (cdr range)))
+      (setq num (max 0 (- (cdr active) num)))))
+    ;; Set the number of unread articles.
+    (when (and info
+	       (gnus-group-entry (gnus-info-group info)))
+      (setcar (gnus-group-entry (gnus-info-group info)) num))
+    num))
+
 (defun gnus-get-unread-articles-in-group (info active &optional update)
   (when (and info active)
     ;; Allow the backend to update the info in the group.
@@ -1493,92 +1580,7 @@ gnus-get-unread-articles-in-group
 		info (inline (gnus-find-method-for-group
 			      (gnus-info-group info)))))
       (gnus-activate-group (gnus-info-group info) nil t))
-
-    (let* ((range (gnus-info-read info))
-	   (num 0))
-
-      ;; These checks are present in gnus-activate-group but skipped
-      ;; due to setting dont-check in the preceding call.
-
-      ;; If a cache is present, we may have to alter the active info.
-      (when (and gnus-use-cache info)
-	(inline (gnus-cache-possibly-alter-active
-		 (gnus-info-group info) active)))
-
-      ;; If the agent is enabled, we may have to alter the active info.
-      (when (and gnus-agent info)
-	(gnus-agent-possibly-alter-active (gnus-info-group info) active info))
-
-      ;; Modify the list of read articles according to what articles
-      ;; are available; then tally the unread articles and add the
-      ;; number to the group hash table entry.
-      (cond
-       ((zerop (cdr active))
-	(setq num 0))
-       ((not range)
-	(setq num (- (1+ (cdr active)) (car active))))
-       ((not (listp (cdr range)))
-	;; Fix a single (num . num) range according to the
-	;; active hash table.
-	;; Fix by Carsten Bormann <cabo@HIDDEN>.
-	(and (< (cdr range) (car active)) (setcdr range (1- (car active))))
-	(and (> (cdr range) (cdr active)) (setcdr range (cdr active)))
-	;; Compute number of unread articles.
-	(setq num (max 0 (- (cdr active) (- (1+ (cdr range)) (car range))))))
-       (t
-	;; The read list is a list of ranges.  Fix them according to
-	;; the active hash table.
-	;; First peel off any elements that are below the lower
-	;; active limit.
-	(while (and (cdr range)
-		    (>= (car active)
-			(or (and (atom (cadr range)) (cadr range))
-			    (caadr range))))
-	  (if (numberp (car range))
-	      (setcar range
-		      (cons (car range)
-			    (or (and (numberp (cadr range))
-				     (cadr range))
-				(cdadr range))))
-	    (setcdr (car range)
-		    (or (and (numberp (nth 1 range)) (nth 1 range))
-			(cdadr range))))
-	  (setcdr range (cddr range)))
-	;; Adjust the first element to be the same as the lower limit.
-	(when (and (not (atom (car range)))
-		   (< (cdar range) (car active)))
-	  (setcdr (car range) (1- (car active))))
-	;; Then we want to peel off any elements that are higher
-	;; than the upper active limit.
-	(let ((srange range))
-	  ;; Go past all valid elements.
-	  (while (and (cdr srange)
-		      (<= (or (and (atom (cadr srange))
-				   (cadr srange))
-			      (caadr srange))
-			  (cdr active)))
-	    (setq srange (cdr srange)))
-	  (when (cdr srange)
-	    ;; Nuke all remaining invalid elements.
-	    (setcdr srange nil))
-
-	  ;; Adjust the final element.
-	  (when (and (not (atom (car srange)))
-		     (> (cdar srange) (cdr active)))
-	    (setcdr (car srange) (cdr active))))
-	;; Compute the number of unread articles.
-	(while range
-	  (setq num (+ num (- (1+ (or (and (atom (car range)) (car range))
-				      (cdar range)))
-			      (or (and (atom (car range)) (car range))
-				  (caar range)))))
-	  (setq range (cdr range)))
-	(setq num (max 0 (- (cdr active) num)))))
-      ;; Set the number of unread articles.
-      (when (and info
-		 (gnus-group-entry (gnus-info-group info)))
-	(setcar (gnus-group-entry (gnus-info-group info)) num))
-      num)))
+    (gnus-update-unread-group info active)))
 
 ;; Go though `gnus-newsrc-alist' and compare with `gnus-active-hashtb'
 ;; and compute how many unread articles there are in each group.
-- 
2.35.1


--=-=-=
Content-Type: text/plain




In GNU Emacs 29.0.50 (build 1, x86_64-unknown-openbsd7.0, X toolkit, cairo version 1.17.4, Xaw scroll bars)
 of 2022-02-08 built on elite.giraud
Repository revision: 798555baaa3f4afca663a6ac29bc42bf313144bc
Repository branch: mgi-gnus2
Windowing system distributor 'The X.Org Foundation', version 11.0.12101001
System Description: OpenBSD elite.giraud 7.0 GENERIC.MP#314 amd64

Configured using:
 'configure --prefix=/home/manuel/emacs --bindir=/home/manuel/bin
 --with-x-toolkit=athena --without-sound --without-compress-install
 CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LCMS2 LIBOTF LIBXML2 M17N_FLT MODULES NOTIFY KQUEUE PDUMPER PNG RSVG
SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM XPM LUCID
ZLIB

Important settings:
  value of $LC_ALL: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Magit

Minor modes in effect:
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  icomplete-mode: t
  display-time-mode: t
  shell-dirtrack-mode: t
  repeat-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/manuel/.el/google-maps.el/google-maps hides /home/manuel/.el/google-maps
/home/manuel/.emacs.d/elpa/transient-20220130.1941/transient hides /home/manuel/emacs/share/emacs/29.0.50/lisp/transient
~/emacs-repo/lisp/gnus/gnus-uu hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-uu
~/emacs-repo/lisp/gnus/gnus-fun hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-fun
~/emacs-repo/lisp/gnus/spam hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/spam
~/emacs-repo/lisp/gnus/spam-wash hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/spam-wash
~/emacs-repo/lisp/gnus/spam-stat hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/spam-stat
~/emacs-repo/lisp/gnus/spam-report hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/spam-report
~/emacs-repo/lisp/gnus/smime hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/smime
~/emacs-repo/lisp/gnus/smiley hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/smiley
~/emacs-repo/lisp/gnus/score-mode hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/score-mode
~/emacs-repo/lisp/gnus/nnweb hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nnweb
~/emacs-repo/lisp/gnus/gnus-rmail hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-rmail
~/emacs-repo/lisp/gnus/nnvirtual hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nnvirtual
~/emacs-repo/lisp/gnus/nntp hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nntp
~/emacs-repo/lisp/gnus/nnspool hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nnspool
~/emacs-repo/lisp/gnus/nnselect hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nnselect
~/emacs-repo/lisp/gnus/nnrss hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nnrss
~/emacs-repo/lisp/gnus/nnregistry hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nnregistry
~/emacs-repo/lisp/gnus/nnoo hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nnoo
~/emacs-repo/lisp/gnus/nnnil hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nnnil
~/emacs-repo/lisp/gnus/nnml hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nnml
~/emacs-repo/lisp/gnus/nnmh hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nnmh
~/emacs-repo/lisp/gnus/nnmbox hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nnmbox
~/emacs-repo/lisp/gnus/nnmairix hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nnmairix
~/emacs-repo/lisp/gnus/gnus-delay hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-delay
~/emacs-repo/lisp/gnus/nnmaildir hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nnmaildir
~/emacs-repo/lisp/gnus/nndoc hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nndoc
~/emacs-repo/lisp/gnus/mml1991 hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/mml1991
~/emacs-repo/lisp/gnus/mml-smime hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/mml-smime
~/emacs-repo/lisp/gnus/gnus-win hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-win
~/emacs-repo/lisp/gnus/gnus-topic hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-topic
~/emacs-repo/lisp/gnus/nngateway hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nngateway
~/emacs-repo/lisp/gnus/nndraft hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nndraft
~/emacs-repo/lisp/gnus/nndir hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nndir
~/emacs-repo/lisp/gnus/nndiary hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nndiary
~/emacs-repo/lisp/gnus/mm-util hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/mm-util
~/emacs-repo/lisp/gnus/mm-extern hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/mm-extern
~/emacs-repo/lisp/gnus/mm-partial hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/mm-partial
~/emacs-repo/lisp/gnus/mm-encode hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/mm-encode
~/emacs-repo/lisp/gnus/mm-bodies hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/mm-bodies
~/emacs-repo/lisp/gnus/gnus-vm hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-vm
~/emacs-repo/lisp/gnus/gnus-undo hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-undo
~/emacs-repo/lisp/gnus/gnus-spec hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-spec
~/emacs-repo/lisp/gnus/gnus-salt hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-salt
~/emacs-repo/lisp/gnus/gnus-rfc1843 hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-rfc1843
~/emacs-repo/lisp/gnus/gnus-range hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-range
~/emacs-repo/lisp/gnus/gnus-picon hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-picon
~/emacs-repo/lisp/gnus/gnus-notifications hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-notifications
~/emacs-repo/lisp/gnus/gnus-group hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-group
~/emacs-repo/lisp/gnus/deuglify hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/deuglify
~/emacs-repo/lisp/gnus/canlock hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/canlock
~/emacs-repo/lisp/gnus/gnus-util hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-util
~/emacs-repo/lisp/gnus/gnus-mlspl hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-mlspl
~/emacs-repo/lisp/gnus/gnus-ml hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-ml
~/emacs-repo/lisp/gnus/gnus-mh hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-mh
~/emacs-repo/lisp/gnus/gnus-logic hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-logic
~/emacs-repo/lisp/gnus/gnus-html hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-html
~/emacs-repo/lisp/gnus/gnus-dup hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-dup
~/emacs-repo/lisp/gnus/gnus-eform hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-eform
~/emacs-repo/lisp/gnus/gnus-diary hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-diary
~/emacs-repo/lisp/gnus/gnus-demon hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-demon
~/emacs-repo/lisp/gnus/gnus-cus hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-cus
~/emacs-repo/lisp/gnus/gnus-cite hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-cite
~/emacs-repo/lisp/gnus/gnus-bcklg hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-bcklg
~/emacs-repo/lisp/gnus/gnus-score hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-score
~/emacs-repo/lisp/gnus/gnus-msg hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-msg
~/emacs-repo/lisp/gnus/gnus hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus
~/emacs-repo/lisp/gnus/gnus-dired hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-dired
~/emacs-repo/lisp/gnus/gnus-bookmark hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-bookmark
~/emacs-repo/lisp/gnus/gnus-agent hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-agent
~/emacs-repo/lisp/gnus/mml hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/mml
~/emacs-repo/lisp/gnus/nneething hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nneething
~/emacs-repo/lisp/gnus/mml-sec hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/mml-sec
~/emacs-repo/lisp/gnus/mm-url hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/mm-url
~/emacs-repo/lisp/gnus/mail-source hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/mail-source
~/emacs-repo/lisp/gnus/gnus-sieve hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-sieve
~/emacs-repo/lisp/gnus/nnfolder hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nnfolder
~/emacs-repo/lisp/gnus/mm-decode hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/mm-decode
~/emacs-repo/lisp/gnus/gnus-srvr hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-srvr
~/emacs-repo/lisp/gnus/gnus-start hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-start
~/emacs-repo/lisp/gnus/gnus-draft hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-draft
~/emacs-repo/lisp/gnus/gnus-cloud hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-cloud
~/emacs-repo/lisp/gnus/gnus-cache hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-cache
~/emacs-repo/lisp/gnus/nnbabyl hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nnbabyl
~/emacs-repo/lisp/gnus/gnus-registry hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-registry
~/emacs-repo/lisp/gnus/mm-view hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/mm-view
~/emacs-repo/lisp/gnus/message hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/message
~/emacs-repo/lisp/gnus/nnmail hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nnmail
~/emacs-repo/lisp/gnus/nnimap hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nnimap
~/emacs-repo/lisp/gnus/nnheader hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nnheader
~/emacs-repo/lisp/gnus/nnagent hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/nnagent
~/emacs-repo/lisp/gnus/gnus-search hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-search
~/emacs-repo/lisp/gnus/gnus-art hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-art
~/emacs-repo/lisp/gnus/gnus-dbus hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-dbus
~/emacs-repo/lisp/gnus/gnus-sum hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-sum
~/emacs-repo/lisp/gnus/gnus-async hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-async
~/emacs-repo/lisp/gnus/mml2015 hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/mml2015
~/emacs-repo/lisp/gnus/mm-uu hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/mm-uu
~/emacs-repo/lisp/gnus/mm-archive hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/mm-archive
~/emacs-repo/lisp/gnus/legacy-gnus-agent hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/legacy-gnus-agent
~/emacs-repo/lisp/gnus/gnus-icalendar hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-icalendar
~/emacs-repo/lisp/gnus/gssapi hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gssapi
~/emacs-repo/lisp/gnus/gnus-int hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-int
~/emacs-repo/lisp/gnus/gnus-kill hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-kill
~/emacs-repo/lisp/gnus/gnus-gravatar hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gnus-gravatar
~/emacs-repo/lisp/gnus/gmm-utils hides /home/manuel/emacs/share/emacs/29.0.50/lisp/gnus/gmm-utils

Features:
(goto-addr view cal-china lunar solar cal-dst cal-bahai cal-islam
cal-hebrew holidays hol-loaddefs cal-iso org-element avl-tree ol-eww eww
xdg url-queue ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect
gnus-search eieio-opt speedbar ezimage dframe ol-docview ol-bibtex
ol-bbdb ol-w3m ol-doi org-link-doi org-agenda org-refile shadow shortdoc
emacsbug whitespace magit-patch gnus-dired cl-print dabbrev rmail
magit-extras face-remap magit-submodule magit-obsolete magit-blame
magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch
magit-clone magit-remote magit-commit magit-sequence magit-notes
magit-worktree magit-tag magit-merge magit-branch magit-reset
magit-files magit-refs magit-status magit magit-repos magit-apply
magit-wip magit-log which-func imenu magit-diff smerge-mode diff
git-commit log-edit pcvs-util add-log magit-core magit-autorevert
autorevert filenotify magit-margin magit-transient magit-process
with-editor magit-mode transient magit-git magit-section magit-utils
dash pulse help-fns radix-tree misearch multi-isearch vc-git diff-mode
bug-reference executable mailalias bbdb-message vc-dispatcher vc-svn
sort gnus-cite mail-extr textsec uni-scripts idna-mapping ucs-normalize
uni-confusable textsec-check gnus-async gnus-bcklg gnus-ml gnus-topic
mm-archive url-http url-gw url-auth qp utf-7 imap rfc2104 nnrss mm-url
nndoc nndraft nnmh gnutls network-stream nsm nnfolder bbdb-gnus nnml
gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg nntp
gnus-cache w3m w3m-hist w3m-fb bookmark-w3m w3m-ems w3m-favicon
w3m-image tab-line w3m-proc w3m-util cl-extra help-mode paredit edmacro
icomplete time battery cus-load exwm-randr xcb-randr exwm-config exwm
exwm-input xcb-keysyms exwm-manage exwm-floating xcb-cursor xcb-render
exwm-layout exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xkb
xcb-xproto xcb-types xcb-debug kmacro server modus-operandi-theme
modus-themes pcase google-maps google-maps-static google-maps-geocode
google-maps-base osm-mode url-cache mingus libmpdee gnuplot info-look
transmission color calc-bin calc-ext calc calc-loaddefs rect calc-macs
w3m-load mu4e mu4e-org mu4e-main mu4e-view mu4e-view-gnus gnus-art mm-uu
mml2015 mm-view mml-smime smime dig gnus-sum gnus-group gnus-undo
gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 netrc
nnoo gnus-spec gnus-int gnus-range gnus-win gnus nnheader range wid-edit
mu4e-view-common mu4e-headers mu4e-compose mu4e-context mu4e-draft
mu4e-actions ido rfc2368 smtpmail sendmail mu4e-mark mu4e-proc
mu4e-utils doc-view jka-compr image-mode exif mu4e-lists mu4e-message
shr pixel-fill kinsoku svg dom flow-fill mule-util hl-line mu4e-vars
message yank-media rmc puny rfc822 mml mml-sec epa derived epg rfc6068
epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mail-utils gmm-utils
mailheader mu4e-meta supercite regi bbdb-anniv diary-lib diary-loaddefs
bbdb-mua bbdb-com crm mailabbrev bbdb bbdb-site timezone org ob
ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src
ob-comint org-pcomplete org-list org-faces org-entities org-version
ob-emacs-lisp ob-core ob-eval org-table oc-basic bibtex ol rx org-keys
oc org-compat org-macs org-loaddefs find-func cal-menu calendar
cal-loaddefs visual-basic-mode web-mode disp-table erlang-start
smart-tabs-mode skeleton cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs movitz-slime cl slime-asdf
grep slime-tramp tramp tramp-loaddefs trampver tramp-integration files-x
tramp-compat shell pcomplete parse-time iso8601 time-date ls-lisp
format-spec slime-fancy slime-indentation slime-cl-indent cl-indent
slime-trace-dialog slime-fontifying-fu slime-package-fu slime-references
slime-compiler-notes-tree advice slime-scratch slime-presentations
bridge slime-macrostep macrostep slime-mdot-fu slime-enclosing-context
slime-fuzzy slime-fancy-trace slime-fancy-inspector slime-c-p-c
slime-editing-commands slime-autodoc slime-repl slime-parse slime
compile text-property-search etags fileloop generator xref project
arc-mode archive-mode noutline outline pp comint ansi-color ring
hyperspec thingatpt slime-autoloads dired-aux dired-x dired
dired-loaddefs notifications dbus xml repeat easy-mmode tex-site info
package browse-url url url-proxy url-privacy url-expand url-methods
url-history url-cookie url-domsuf url-util mailcap url-handlers
url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache json map url-vars seq gv subr-x byte-opt bytecomp
byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer cl-generic 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 simple abbrev obarray cl-preloaded nadvice
button loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind kqueue lcms2
dynamic-setting system-font-setting font-render-setting cairo x-toolkit
x multi-tty make-network-process emacs)

Memory information:
((conses 16 868893 102442)
 (symbols 48 59739 8)
 (strings 32 276306 16458)
 (string-bytes 1 8495369)
 (vectors 16 147772)
 (vector-slots 8 2714405 148428)
 (floats 8 1138 546)
 (intervals 56 12268 4311)
 (buffers 992 47))

-- 
Manuel Giraud

--=-=-=--




Acknowledgement sent to Manuel Giraud <manuel@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#53877; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Thu, 8 Sep 2022 13:00:02 UTC

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