GNU bug report logs - #81317
project-vc-cache might be too optimistic

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

Package: emacs; Reported by: Dmitry Gutov <dmitry@HIDDEN>; dated Sat, 27 Jun 2026 14:00:06 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

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


Received: (at 81317) by debbugs.gnu.org; 3 Jul 2026 15:10:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jul 03 11:10:01 2026
Received: from localhost ([127.0.0.1]:52311 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wffWf-0000oS-2y
	for submit <at> debbugs.gnu.org; Fri, 03 Jul 2026 11:10:00 -0400
Received: from mout-p-101.mailbox.org ([80.241.56.151]:46652)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1wffWZ-0000nV-Uh
 for 81317 <at> debbugs.gnu.org; Fri, 03 Jul 2026 11:09:54 -0400
Received: from smtp1.mailbox.org (smtp1.mailbox.org
 [IPv6:2001:67c:2050:b231:465::1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA512)
 (No client certificate requested)
 by mout-p-101.mailbox.org (Postfix) with ESMTPS id 4gsHGt0HlTz8v1b;
 Fri, 03 Jul 2026 17:09:42 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1783091382;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=LLFMih5yh227ynT3MFOb2v2sbzp4PfVt6GY/cwZ2xvY=;
 b=Ji1L77vuwvqc7y/ghZoJkd8a5T412Gf0OV7ns0ZwpqINIkNsnPfLA1dn8PF9FipSGuqGGs
 whn4+HD5kVo/m7rSZyKPakb/y4P0W/1Pvyd936YQ+zIA/i4prk/W9Ho+sWXB0ROIVapZLr
 zSyqGvredzvLlmiNIxD0OtqQA04lFHGC+sbrol4wvmsrCP8svJPHcDCeU6uNwdRuYRcNvo
 dO1Dja/B00TlUnHxCC9rk4CPPdPzI1XR9lPpp5XihfKJ4U0i1NNnx6sOn+IUTS12pTVLyd
 nbXgHZeAqRB/01Dja/SsnvdOJOeLeg6tuSCve5RX95gFuKwnQzgRzk4L+ZjmAQ==
Authentication-Results: outgoing_mbo_mout; dkim=none;
 spf=pass (outgoing_mbo_mout: domain of juri@HIDDEN designates
 2001:67c:2050:b231:465::1 as permitted sender) smtp.mailfrom=juri@HIDDEN
From: Juri Linkov <juri@HIDDEN>
To: Dmitry Gutov <dmitry@HIDDEN>
Subject: Re: bug#81317: project-vc-cache might be too optimistic
In-Reply-To: <53b6f103-0fd2-4d32-a7b4-7e7165adae93@HIDDEN>
Organization: LINKOV.NET
References: <989c9c54-af5d-4e23-961f-a136cdbc2ab1@HIDDEN>
 <a720fc51-7af6-40bb-a9d5-a7d664ca72df@HIDDEN>
 <714c8722-e623-49f3-a7f3-04d45c99b3c8@HIDDEN>
 <87v7b2srg9.fsf@HIDDEN>
 <e81edb33-1ad9-4a8e-8626-c99ee7fbf509@HIDDEN>
 <87bjct765v.fsf@HIDDEN>
 <3567ebb7-5265-4246-80c6-fb7b61f5a0ab@HIDDEN>
 <875x302iwz.fsf@HIDDEN>
 <d3a97d4c-0c2c-47c9-bce1-6cacc6d6f7b1@HIDDEN>
 <877bnesrpo.fsf@HIDDEN>
 <68799693-061e-49b2-9116-d347b7d9a21c@HIDDEN>
 <87y0fte6v1.fsf@HIDDEN>
 <53b6f103-0fd2-4d32-a7b4-7e7165adae93@HIDDEN>
Date: Fri, 03 Jul 2026 18:01:36 +0300
Message-ID: <87a4s8jguf.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Rspamd-Queue-Id: 4gsHGt0HlTz8v1b
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 81317
Cc: Spencer Baugh <sbaugh@HIDDEN>, 81317 <at> debbugs.gnu.org,
 Sean Whitton <spwhitton@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.7 (-)

> project-mode-line-format - certainly (I've removed the non-essential
> binding because the value is not used, unless we need it for non-prompting
> Tramp).
>
> project-uniquify-dirname-transform seems more dubious because after
> a project is renamed, or tagged with a root marker, the existing buffers
> won't be updated. If you think it's okay to leave this manual work to the
> user on those relatively rare occasions, I'll concede.

IME on sluggish remote connections project-uniquify-dirname-transform
was too slow without non-essential caching timeout.  Whereas renamings
were very rare.




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

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


Received: (at 81317) by debbugs.gnu.org; 2 Jul 2026 16:32:52 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jul 02 12:32:52 2026
Received: from localhost ([127.0.0.1]:43489 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wfKLJ-00089u-JE
	for submit <at> debbugs.gnu.org; Thu, 02 Jul 2026 12:32:51 -0400
Received: from fhigh-b1-smtp.messagingengine.com ([202.12.124.152]:55661)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <dmitry@HIDDEN>) id 1wfKLE-00088R-L6
 for 81317 <at> debbugs.gnu.org; Thu, 02 Jul 2026 12:32:46 -0400
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 7FB8D7A0088;
 Thu,  2 Jul 2026 12:32:38 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-06.internal (MEProxy); Thu, 02 Jul 2026 12:32:38 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-transfer-encoding:content-type:content-type:date
 :date:from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to; s=fm3; t=1783009958;
 x=1783096358; bh=3R7OK3mN8UTriHVOZGj9iJcaxoY2afeq/jhWTFJbNjk=; b=
 GVSipnaZSkebrGOxB04QdzPc9fiLDKYIzgtJyhEOZ4DyItFRP1H0b782PA5tGVnE
 q+jJ6dJwjxzA5t1VaxR2qyl2gKRWA/V9BFJkgrjeH/9q4cIBICm036DpF8smU2Mo
 hTW9xBsNCpiTgFdLQKUYjqIqRHT6gVTjR/7TuYhcpOVPeutVlmzQ5iBqQSZQcxOJ
 tQ0UOP2xIb4PACCpiKYLubbG89TJ/tuypFHQguMNg4eAeprkTQ5tjHBymN9j6Y+v
 gHN07jnE3hzbtUdxl7vHo0+7Yls24NRMV1mKt/DM01FQ+2jC7oHXEXDdimuO+MnV
 Qanojd9DNpANU/tnMweL0Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1783009958; x=
 1783096358; bh=3R7OK3mN8UTriHVOZGj9iJcaxoY2afeq/jhWTFJbNjk=; b=Y
 qJA9AHUA4yJ/bIV/S9Ive4sIQdSjDnMg6m4zdYIF7ihnSs46E1ypPAaWAlDiPKEW
 OS7WqKopY18wNiu5ewdPIxhY/A1uD2dQQ2RXq2J47a0JNR9qoY0FLbSNTT1Gt5/J
 wamOHi5/s/94GX1SoIK5Jiz+x4L9Ss5BUJVRPWD5xW6SItzigOz2WmimWLnNyci8
 AL9nGeprZY828zSXF95LqXkqA+HjIfs07j+n6LWgvDUPIhYbgIVWF5JW4zDMZ/wk
 L1f/wHIRpUaWKcwrJsAUzt774jR8WNcmR5XBRpb3eqXkH3cQvEyZqE/GJVzUnH3I
 AIPFkZzZ38ZvSCRx83TkQ==
X-ME-Sender: <xms:pZJGaj_oAN01f_Imh_CpL4fWAPP4xHnnmNWK-ifIGIECMLv_T7axjA>
 <xme:pZJGams9Tgmg7Aegs-m2f_fdK4Bd8t5hV4z0RX0wP-pnQJNrr-nSQ4wDQLZypiHUG
 5bSIDZLaGS8usKFboFuZWoPIGt-OZCnHFItemKKLrtXuwDMM6ZOv2Y>
X-ME-Received: <xmr:pZJGamBWDBg-Wx_IfUJrXxCEY35PsoAhcEeLVbsCtK_hgBg0g4HBH7zIxgsnlSazoh38FQ>
X-ME-Proxy-Cause: dmFkZTEh5xJhBgyiDezfnIFlkVIy1tscsMa2V2Orp/F6Opy8WA1MnYy/qlksAe4fwzuMfv
 ulz1kRud2R3dGDK112u8Bca4lV4YcLrD4vVGfh16iSEkVoixNug5W9zfdiTr/2MIuFa2kE
 CTCB2lD+2U/0Np714jTkR8x44Barl1KQgZ1ft9oPZ9HL2Fj6gbTUmwpgw45ktuSXNVoELy
 sjHWmEf4+Lmi30KkObb7+7V9DYiJVIg+VHLucnCv6lrivi9FWlHM2ckJnAk7GpVtaVyc8R
 kluGId9JitDFsQ1xdriH6oIg4msHHmF2BMv6C+MZFeEFgWUwDClfhyNGHOZORwHJl+kpIM
 J0CUSBKoy6OFxYqvHY2kDnVtD9ZWjALUY9D/Lfn6MUhmv+STOndhKM/1jxClbnunENIXrW
 xAPA9A2mJI2iDuDFI8A7TGQeT4qa0p5Ely3Ct554dL4nG+oEF0vsyKhFObsRVGIDrYVuPg
 R+1HMjcmvZX/Bu+mRpOiZNSub3yz6Ywc4ItD37x7qkAY63JVwDA2xdTc+Hoc4bdkesevNV
 mmWDZlhpKob3ewtIZogFTWNlz43KpdcK/rWgrJFx602g/SA9iDBw6r2AtIFqxnpUkR200W
 rRgidytiu/ia7BobB9w2RbdiQdFcBFBWGM9I1aP6jIKXadD7XvCD/JPSIyjw
X-ME-Proxy: <xmx:pZJGauUUewwiOJjP9aDOsYjtIp7Jjla3nmxzIliWpfezsZH8_1mFpQ>
 <xmx:pZJGakDZimvZWPLc__Auo2si4Y0XmzmZzXIo2he5CahM-8t8oKbuaw>
 <xmx:pZJGah9O5J6F7ieS-rLFrfj1iN43NIi5MxsRZ2UCGxnX_7OjSvGjiw>
 <xmx:pZJGarEw5DNPyVDmvKaqlaDp6TLSaZll4Of5PCza1ZwbvAU-nYjuNQ>
 <xmx:ppJGapg0t0pbXevxa_7j6jNhZ5rtoeb3ijhH9meox5JjK07ejLg85rpl>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 2 Jul 2026 12:32:36 -0400 (EDT)
Message-ID: <53b6f103-0fd2-4d32-a7b4-7e7165adae93@HIDDEN>
Date: Thu, 2 Jul 2026 19:32:33 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#81317: project-vc-cache might be too optimistic
To: Juri Linkov <juri@HIDDEN>
References: <989c9c54-af5d-4e23-961f-a136cdbc2ab1@HIDDEN>
 <a720fc51-7af6-40bb-a9d5-a7d664ca72df@HIDDEN>
 <714c8722-e623-49f3-a7f3-04d45c99b3c8@HIDDEN>
 <87v7b2srg9.fsf@HIDDEN>
 <e81edb33-1ad9-4a8e-8626-c99ee7fbf509@HIDDEN>
 <87bjct765v.fsf@HIDDEN>
 <3567ebb7-5265-4246-80c6-fb7b61f5a0ab@HIDDEN>
 <875x302iwz.fsf@HIDDEN>
 <d3a97d4c-0c2c-47c9-bce1-6cacc6d6f7b1@HIDDEN>
 <877bnesrpo.fsf@HIDDEN>
 <68799693-061e-49b2-9116-d347b7d9a21c@HIDDEN>
 <87y0fte6v1.fsf@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <87y0fte6v1.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 81317
Cc: Spencer Baugh <sbaugh@HIDDEN>, 81317 <at> debbugs.gnu.org,
 Sean Whitton <spwhitton@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.7 (-)

On 02/07/2026 18:41, Juri Linkov wrote:
>> Juri, what do you think will be the most interested callers?
>> What do you think about project-uniquify-dirname-transform - should it
>> actually use the "essential" cache timeouts for accuracy.
> 
> I think that project-uniquify-dirname-transform
> and project-mode-line-format that use project-name
> should still use non-essential cache, because project
> renamings are rare.

project-mode-line-format - certainly (I've removed the non-essential 
binding because the value is not used, unless we need it for 
non-prompting Tramp).

project-uniquify-dirname-transform seems more dubious because after a 
project is renamed, or tagged with a root marker, the existing buffers 
won't be updated. If you think it's okay to leave this manual work to 
the user on those relatively rare occasions, I'll concede.

And it would be evidence that the current state is fine for the release.

> BTW, double docstrings in tests detected:
> 
>    (ert-deftest project-try-vc-invalidates-cache ()
>      "Check that it invalidates the cached value that's too old."
>      "Check that one can add wildcard entries."
>      (skip-unless (eq (vc-responsible-backend default-directory) 'Git))

Thank you, fixed.




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

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


Received: (at 81317) by debbugs.gnu.org; 2 Jul 2026 16:09:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jul 02 12:09:31 2026
Received: from localhost ([127.0.0.1]:43426 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wfJyk-00056K-IC
	for submit <at> debbugs.gnu.org; Thu, 02 Jul 2026 12:09:31 -0400
Received: from mout-p-103.mailbox.org ([2001:67c:2050:0:465::103]:60916)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1wfJyi-00055I-23
 for 81317 <at> debbugs.gnu.org; Thu, 02 Jul 2026 12:09:29 -0400
Received: from smtp2.mailbox.org (smtp2.mailbox.org
 [IPv6:2001:67c:2050:b231:465::2])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-103.mailbox.org (Postfix) with ESMTPS id 4grhf46pyBz9v4f;
 Thu,  2 Jul 2026 18:09:16 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1783008557;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=LDso9u0Jf5vX2Dm12DxJbfnrVamVM37CKzPQFpeDC4U=;
 b=u/lHN1iFdWPdZ0KznzWojBkqbmFwINIKUADxp4m+WXuj6zxyN3EnS2CH/kXNadZ23ppyMc
 GMLjX09h2yszRKcITeLBJfQhfvxjOC0dGK5s8mAOnBwLkWFM8Svv67xpBGXu4l1Ty8VemQ
 kNYe68m+D+gyFgvQK3PRyn47poTPk4F/qsO/0CmCLp0hnKmkyh+CTPDlmH/41V83N/QVQy
 TFMbjBxfwM0B6Pn+oza4YAkzqmF9vUgoDwtN1p68X3Nhh7C2XsLIjn3yoD/A5Qafp7v3Zs
 dkr0gex7+2DU+xZSlqbZcLJHj4bjT3/TMQ6e1bPtyKsKdLMrbdGTfJ2JepsoBw==
Authentication-Results: outgoing_mbo_mout; dkim=none;
 spf=pass (outgoing_mbo_mout: domain of juri@HIDDEN designates
 2001:67c:2050:b231:465::2 as permitted sender) smtp.mailfrom=juri@HIDDEN
From: Juri Linkov <juri@HIDDEN>
To: Dmitry Gutov <dmitry@HIDDEN>
Subject: Re: bug#81317: project-vc-cache might be too optimistic
In-Reply-To: <68799693-061e-49b2-9116-d347b7d9a21c@HIDDEN>
Organization: LINKOV.NET
References: <989c9c54-af5d-4e23-961f-a136cdbc2ab1@HIDDEN>
 <a720fc51-7af6-40bb-a9d5-a7d664ca72df@HIDDEN>
 <714c8722-e623-49f3-a7f3-04d45c99b3c8@HIDDEN>
 <87v7b2srg9.fsf@HIDDEN>
 <e81edb33-1ad9-4a8e-8626-c99ee7fbf509@HIDDEN>
 <87bjct765v.fsf@HIDDEN>
 <3567ebb7-5265-4246-80c6-fb7b61f5a0ab@HIDDEN>
 <875x302iwz.fsf@HIDDEN>
 <d3a97d4c-0c2c-47c9-bce1-6cacc6d6f7b1@HIDDEN>
 <877bnesrpo.fsf@HIDDEN>
 <68799693-061e-49b2-9116-d347b7d9a21c@HIDDEN>
Date: Thu, 02 Jul 2026 18:41:54 +0300
Message-ID: <87y0fte6v1.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Rspamd-Queue-Id: 4grhf46pyBz9v4f
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 81317
Cc: Spencer Baugh <sbaugh@HIDDEN>, 81317 <at> debbugs.gnu.org,
 Sean Whitton <spwhitton@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.7 (-)

> Juri, what do you think will be the most interested callers?
> What do you think about project-uniquify-dirname-transform - should it
> actually use the "essential" cache timeouts for accuracy.

I think that project-uniquify-dirname-transform
and project-mode-line-format that use project-name
should still use non-essential cache, because project
renamings are rare.

BTW, double docstrings in tests detected:

  (ert-deftest project-try-vc-invalidates-cache ()
    "Check that it invalidates the cached value that's too old."
    "Check that one can add wildcard entries."
    (skip-unless (eq (vc-responsible-backend default-directory) 'Git))




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

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


Received: (at 81317) by debbugs.gnu.org; 2 Jul 2026 06:01:16 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jul 02 02:01:16 2026
Received: from localhost ([127.0.0.1]:38215 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wfAU8-0000nr-BE
	for submit <at> debbugs.gnu.org; Thu, 02 Jul 2026 02:01:16 -0400
Received: from fout-b8-smtp.messagingengine.com ([202.12.124.151]:56197)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <dmitry@HIDDEN>) id 1wfAU6-0000nH-3L
 for 81317 <at> debbugs.gnu.org; Thu, 02 Jul 2026 02:01:14 -0400
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfout.stl.internal (Postfix) with ESMTP id 2A89E1D000D2;
 Thu,  2 Jul 2026 02:01:08 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-02.internal (MEProxy); Thu, 02 Jul 2026 02:01:08 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-transfer-encoding:content-type:content-type:date
 :date:from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to; s=fm3; t=1782972068;
 x=1783058468; bh=UAGKFi3d6OCBHZnn81t+pvYVLvluU+LEdGsS9PiYSYI=; b=
 TgrwGrKi5vtJ922kqzEKZnPD7aPJ05WMRfC8tN4hlvn0wQ7d7MyByrOFpIDNM2Iy
 caNROpdYTc9nbnEVoEP33RUvE/7PxQjZVaTNGCG8Ux908ZzcHvGerebgQ/IpXBSo
 RKr0ALpCX0PeKa0SYGmYQahQcJsmkg8an81GGLL4aJHhWAR2y8Ki7ylFvy7TbJ97
 O3MHVaX5rG9KF5pik6mlfKTF+ZAkHMMLW7Y8uPbc8TI/rw1+cDZtY4WCMth7dGu1
 Fs5S0MZmzfN0Y/yeLzIbkJ8119FgKGthSwyCZJQq+x0AEjeD7P1aBifJ5e2g3iRo
 Xo5sBF5UPsG2KLIhR6XMXA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1782972068; x=
 1783058468; bh=UAGKFi3d6OCBHZnn81t+pvYVLvluU+LEdGsS9PiYSYI=; b=h
 TKsULRj4sV5WMh5m/C9ZJ/xREDWXeEP5g6SWH19AEl+wmnD3ZZ08LVbVY3bNkAp7
 J/32PW2lWDL3nCj03N2Rtewbhbq9qDCiOjjKT8eqS+4lsiNFyYCbpJYXjBqE58mA
 MHYVZNk2At8KzuioIHR6KdeLwDtfnLBgYeFORQfocSeWubDpPkpMZKeyy19GrotE
 MD+Ym3n6xTjCIRa2v51MGJ34YFUGxRdcngoj7oiaQIcWgLqq9r+BuIe1JaUbXHUw
 9G3dumcvbOC0wovwz9MgR1vvpdeUp1VWvHQDwP7jTctbV/dx6pXqps9Rgv1ssKeE
 7M53rhMTZEY10e30Q1zcA==
X-ME-Sender: <xms:o_5Faq8aInRO9VB7hbL01K5DFUV_HFC6EaZENhvcHSau1d__4logHA>
 <xme:o_5FahtXAdUxr7TYko_D8Faw37knZ9X-a-GUBsrEflo3RXkD2pGtOhoLrX-NGGIJS
 z1n5_wXi_MCaY7X3W-_OEk1fb5FBBEEOtfPyvWEWgPGzw0Fdra6x4jG>
X-ME-Received: <xmr:o_5FalBmogprgdPiyfxIxV34MKIb-EMlNaud8X6UuW6MzI0o_KC-OccnsVe0QLjor3ThqQ>
X-ME-Proxy-Cause: dmFkZTEg1zjz00FQd2yP0G8MdeVUUpoWGLT6a9vX8ti5zdYngCOVwsw+p/qlQ42OnDM5in
 +bzZmrJm+M7vVy3sVuUBPdcMpuNrIX3+EJYZi4UccOQ8+4buzso2Un95906kGbj9p25/z9
 x5TqOtVc5Z1VdLNuMcOPRw06zOLLoaLEmtgjh1O7WV30+BrsN4mtd8dVus9VllFPa8DD1g
 sAzqUQ/PNieKQbRCpW3GiRBU65R3/gdAzMZQyNOVd8PC9rM+nOlKixCQGpWlXgcq2ir//4
 norV5c3DTB3LMj122oinA4KB4fVn9BLXfG/2RGm1lziK7jqj5E68wIT7kvQVEY/UuDqrCz
 GJBaMnCRk6kfbgOuzixoordOHvpo55Vb6AUNqGk5DftWvP9c18lKYQYVrELDnHmJBESDay
 Jicbekn0biwoCHWRiW93f58GDOdOQli9PggcDA2089z/rK+/btylD5tjazTXEJ35EqRMiZ
 HdZPm5S8KojG0I072Q/h1l+pT14ZcS+g/T2dSLlceHy2N4aGlPzt/ikrTfeCHtR7en+HSj
 S8Nm32G6FMyDyRYUqk79gDSpsERL+WSZgAMUHPgBm0EDBV8ACrO4N7F6ZOXvTRvSp1/q3Y
 HqOul+0o9VOjBQfFues1Ktm27dexYJR65Iz9KlOljH9hhByOX+gC+2U+csZg
X-ME-Proxy: <xmx:o_5FahV-8fkwuMU0YnY_a8_Znq3bvEZSXdwfowCEQVGEnNdTX56-Ag>
 <xmx:o_5FarDCtoFS1S7byoxxmZzERFS9SoNGtOFrei4ZzkF883BmRfzAgg>
 <xmx:o_5Fas9SkdZVX-tKTLaos8b_jGQXdjCjF_9hUUit51aVyPbj__r0HA>
 <xmx:o_5FaqFPBU3wlFbg5IZ4Y2LuuYIl_6ZtAJvR19Fau8SxTt4SMnU_og>
 <xmx:pP5FaoiQlil2DLwWDsZcGBkIFWH_Qj6007ovu8uHUbexraJqh0QEm6qz>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 2 Jul 2026 02:01:05 -0400 (EDT)
Message-ID: <68799693-061e-49b2-9116-d347b7d9a21c@HIDDEN>
Date: Thu, 2 Jul 2026 09:01:01 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#81317: project-vc-cache might be too optimistic
To: Juri Linkov <juri@HIDDEN>
References: <989c9c54-af5d-4e23-961f-a136cdbc2ab1@HIDDEN>
 <a720fc51-7af6-40bb-a9d5-a7d664ca72df@HIDDEN>
 <714c8722-e623-49f3-a7f3-04d45c99b3c8@HIDDEN>
 <87v7b2srg9.fsf@HIDDEN>
 <e81edb33-1ad9-4a8e-8626-c99ee7fbf509@HIDDEN>
 <87bjct765v.fsf@HIDDEN>
 <3567ebb7-5265-4246-80c6-fb7b61f5a0ab@HIDDEN>
 <875x302iwz.fsf@HIDDEN>
 <d3a97d4c-0c2c-47c9-bce1-6cacc6d6f7b1@HIDDEN>
 <877bnesrpo.fsf@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <877bnesrpo.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 81317
Cc: Spencer Baugh <sbaugh@HIDDEN>, 81317 <at> debbugs.gnu.org,
 Sean Whitton <spwhitton@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.7 (-)

On 01/07/2026 18:10, Juri Linkov wrote:
>> Or 'auto' maybe?
>>
>> Or your suggestion above sounds like the variable should be called
>> project-vc-cache-essential, with possible values t, nil, and maybe 'auto'
>> as well.
> Agreed.
> 
>> Or we just delay any renamings, to minimize breaking changes before the
>> upcoming release.
> This would be better.
> 
>>>> +               (let* ((timeout
>>>>                           (cond
>>>> -                        ((numberp project-vc-cache-timeout)
>>>> -                         project-vc-cache-timeout)
>>>> -                        ((null project-vc-cache-timeout)
>>>> -                         nil)
>>>> -                        ((listp project-vc-cache-timeout)
>>>> +                        ((numberp timeout)
>>>> +                         timeout)
>>>> +                        ((listp timeout)
>>> Did you remove '((null project-vc-cache-timeout) nil)'
>>> intentionally?  Because then the cond-branch with
>>> (listp nil) will be matched.
>> I think the effect is the same?
>>
>>     (cdr (seq-find ... nil)) will evaluate to nil.
> Yes, I already noticed that the return value is the same,
> it only affects code readability.
> 
>>> What semantics the nil argument 'timeout' should have now?
>> It's supposed to just be a simplification. I can undo that part if you
>> prefer.
> Simplification should be fine.

Thanks, I've pushed a few commits that a
* Fix the functioning of the current cache and cleanup function.
* The change upon discussion that centralizes the cache invalidation 
responsibility to only project-try-vc (called by project-current).

The project-vc-cache variable is not in, because I'll like to see how 
urgent is its addition, and to be on the same page regarding the usages.

Juri, what do you think will be the most interested callers?
What do you think about project-uniquify-dirname-transform - should it 
actually use the "essential" cache timeouts for accuracy.

It and Eglot and lsp-mode might be the frontrunners of this trial. 
Especially if someone can indeed say that one of them has a problem 
they've had to solve in an annoying way. Not just a theoretical mismatch 
we've analyzed out of code.




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

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


Received: (at 81317) by debbugs.gnu.org; 1 Jul 2026 15:33:16 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jul 01 11:33:15 2026
Received: from localhost ([127.0.0.1]:34124 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1weww2-0005lP-Ns
	for submit <at> debbugs.gnu.org; Wed, 01 Jul 2026 11:33:15 -0400
Received: from mout-p-101.mailbox.org ([80.241.56.151]:51976)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1wewvv-0005k1-TK
 for 81317 <at> debbugs.gnu.org; Wed, 01 Jul 2026 11:33:07 -0400
Received: from smtp1.mailbox.org (smtp1.mailbox.org [10.196.197.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA512)
 (No client certificate requested)
 by mout-p-101.mailbox.org (Postfix) with ESMTPS id 4gr3tZ4LKGz8v1C;
 Wed, 01 Jul 2026 17:32:54 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1782919974;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=+T4X8u8ZLoGdm0KMbDx0LeWrtRAK1usNm2lKO0hNids=;
 b=mCjtDzYnkZh+BuEq2zU3m4n3TPN3ZAtoBOW1r8QJL8p1q/s1acdD401hXATayRFzgajKlB
 xT982+zskDDPOI5mNMZ0xNhRScqasxAFK/EVYyawAdrTurvWhzwIVTOeaULGLvG9Y+7msF
 Qa1pEiTAtk5gRsluGJdleAfL7oCd/wz+V9/+p8qD37lirf5jUh7DcbGrKtuXmxgliTevD4
 L7c5gb+h248ekgKdmZNIWMeK84c6UDkq+NOiDHbpp6JuWLZN2m5fESYUPtjFDOvwquIbeS
 z3q/wBKFH5+zw7GvIgQsM70PloV4QjLRqZ9ue02xRAeWoxoO9aMgac3nqwXmRA==
From: Juri Linkov <juri@HIDDEN>
To: Dmitry Gutov <dmitry@HIDDEN>
Subject: Re: bug#81317: project-vc-cache might be too optimistic
In-Reply-To: <d3a97d4c-0c2c-47c9-bce1-6cacc6d6f7b1@HIDDEN>
Organization: LINKOV.NET
References: <989c9c54-af5d-4e23-961f-a136cdbc2ab1@HIDDEN>
 <a720fc51-7af6-40bb-a9d5-a7d664ca72df@HIDDEN>
 <714c8722-e623-49f3-a7f3-04d45c99b3c8@HIDDEN>
 <87v7b2srg9.fsf@HIDDEN>
 <e81edb33-1ad9-4a8e-8626-c99ee7fbf509@HIDDEN>
 <87bjct765v.fsf@HIDDEN>
 <3567ebb7-5265-4246-80c6-fb7b61f5a0ab@HIDDEN>
 <875x302iwz.fsf@HIDDEN>
 <d3a97d4c-0c2c-47c9-bce1-6cacc6d6f7b1@HIDDEN>
Date: Wed, 01 Jul 2026 18:10:31 +0300
Message-ID: <877bnesrpo.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 81317
Cc: Spencer Baugh <sbaugh@HIDDEN>, 81317 <at> debbugs.gnu.org,
 Sean Whitton <spwhitton@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.7 (-)

>>> So it would have two possible values? nil and 'essential?
>> Maybe more explicit 'essential' and 'non-essential'
>> since nil is too ambiguous (it can mean no changes).
>
> Or 'auto' maybe?
>
> Or your suggestion above sounds like the variable should be called
> project-vc-cache-essential, with possible values t, nil, and maybe 'auto'
> as well.

Agreed.

> Or we just delay any renamings, to minimize breaking changes before the
> upcoming release.

This would be better.

>>> +               (let* ((timeout
>>>                          (cond
>>> -                        ((numberp project-vc-cache-timeout)
>>> -                         project-vc-cache-timeout)
>>> -                        ((null project-vc-cache-timeout)
>>> -                         nil)
>>> -                        ((listp project-vc-cache-timeout)
>>> +                        ((numberp timeout)
>>> +                         timeout)
>>> +                        ((listp timeout)
>> Did you remove '((null project-vc-cache-timeout) nil)'
>> intentionally?  Because then the cond-branch with
>> (listp nil) will be matched.
>
> I think the effect is the same?
>
>    (cdr (seq-find ... nil)) will evaluate to nil.

Yes, I already noticed that the return value is the same,
it only affects code readability.

>> What semantics the nil argument 'timeout' should have now?
>
> It's supposed to just be a simplification. I can undo that part if you
> prefer.

Simplification should be fine.




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

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


Received: (at 81317) by debbugs.gnu.org; 30 Jun 2026 16:59:00 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 30 12:58:59 2026
Received: from localhost ([127.0.0.1]:53067 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1webnX-0007dU-HT
	for submit <at> debbugs.gnu.org; Tue, 30 Jun 2026 12:58:59 -0400
Received: from fout-a8-smtp.messagingengine.com ([103.168.172.151]:39089)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <dmitry@HIDDEN>) id 1webnU-0007d9-Ek
 for 81317 <at> debbugs.gnu.org; Tue, 30 Jun 2026 12:58:57 -0400
Received: from phl-compute-11.internal (phl-compute-11.internal [10.202.2.51])
 by mailfout.phl.internal (Postfix) with ESMTP id 233B0EC000B;
 Tue, 30 Jun 2026 12:58:51 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-11.internal (MEProxy); Tue, 30 Jun 2026 12:58:51 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-transfer-encoding:content-type:content-type:date
 :date:from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to; s=fm3; t=1782838731;
 x=1782925131; bh=LFoRFetA7a0ySdpQlOXju50WUOLsJ/OQXvMq3WkoXKs=; b=
 m+ETrLWtnEOL4IH80CnWu4tmz86U/2dpVYrnf4St1FdiXyqOIVc/2mQO1kec1b/c
 7yimbFY2+BEgoPmLBIrjbZFJ45Qk9Sfy9MA+cyKRDQDQrPQ2q/yaIX0HuhXWIvyA
 4s0N0I3wV2pmr1b4Punq7sWSKUOhKdGq2AxQYk85Jt9wHQv5ygGroRKIsAv57wQF
 CE8kQr/U9CnAfptkkdUvjp0QVzlSt9NMjFxHikHaWxnBkw/VPw+XxMXJtrgy8PlY
 8YHRZQZAGclsT0M5LNhkDJs44JRkYyK+/NGAlYdAgD3QH9iRSMywhsTSyJmWL+0J
 4DqZUE43ouk06A8lM60SOw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1782838731; x=
 1782925131; bh=LFoRFetA7a0ySdpQlOXju50WUOLsJ/OQXvMq3WkoXKs=; b=h
 ZPk19K+WnNEcnJ/sZ+NawPWOEndiiKg+e82xSX3keH59UzaHZi7OyC+LlohWBxD+
 yC+z3YTfpNB820XR6zyDvczIapfRZAcTYd7u/MVfsdeQ32Pq+XfyBpr/e/QfKpV+
 S6n64BIqhgClyXqLHS3EJy5M4wCkuZ99F6fh8eqY+nUxQcW8bxaHJxbfIsTzKEIa
 1d20OLEjQkD8s/aQ+KI9GykRJ1mPvntlmHr6kvh3O6lZI1Pxopu6uhoq6GHbdXzI
 O7++v9IooiCcsqUFhYSGUVE52By7uNEodjq0BF9Cbrzz5sZn9qkzykZtQzXLtKuo
 lgnX6OBsSpfI0ZICPnwZw==
X-ME-Sender: <xms:yvVDapmbQ6j_xWkJSNbfCDU5X23h33d6HsZM9_yDfCHNa5RxfBzf2Q>
 <xme:yvVDar12z-RUneuP9mWsWPlXJLysjZImLzzH6MHhjqGtJzbJixzpBauZXznp2rtxF
 O8XSqJi4wavFcGbWIOHqhCk1Vzzkv-i3hgaw75dalIQQyTA8qvjo3dL>
X-ME-Received: <xmr:yvVDakpqKZtGhoFVZiEFZd79U8tf5YJnSGJ35m39QP6AhDT02NOWyDnOaPBPE7cwGVJv>
X-ME-Proxy-Cause: dmFkZTGdGGu/fB2DwmyCBzR1d5slXofQcgRi7Zyw+S+RV2AHM6ET5BDSFynpkmOSO8JEsp
 r2CzDeejGEZXfm7OZuOsmdw4IOB41026vI0+Wx4+3t20+76ELZMzO25pXYecqV2tmu0JCS
 I1zDCgiWcuLGwAa67t2R2b3IkNgA9dO201KeHjRUMYRgcSLksM3ehBw61uI7vojBmyqA2n
 5aAyEjOz0QqomPnq9M/d8QDHUZSfSFhpMatR4Pbunvp2ZaQycioQ/ybBx7SPRVqjA1LwOi
 gboTBbK1sNkCYpWKkqtbvLbbX7YZaqK+0HHFX/xt6nDj/xZVpemxZfWf2O28lvBxRabhIG
 fJZkjRMiU6JEYnunrhpEM/b41lSBXq9SFLQ7+jCeM460RQbXzUuus1o0BuxFZVW72JKDGb
 aN1hEuSLL8xokhPDUU9wc/E4qpGVQqRP2YoB89VwBPUCMFACEwJahxD0IlgMHGTcLg8nIn
 +SzY8qrlP/5LLCpEMk86ZQea3empwq2Kz75bZgIDgNvOlDS+Z7QVR8xx9O6G8trNh3VQ8a
 NTLnFRupBmb4obEZNHeTnvZpoAHmviVM4IhvnbVmijRwg3BlWBV6O3AdTRpHAfQ5hQeYyT
 koZpUUUoXjhSu/+6SBoxba3EspGCxFYFv5L0P8zb77x0iGij6Moaw/kTchZw
X-ME-Proxy: <xmx:yvVDaofLeEcMx7LjU-04jzI06apK5xuRwG-ujECaoBWjCmrpODR8Hw>
 <xmx:yvVDajoo_1RzTJjaBw7xvz6y-ZVVKbsApJ-JyoazMbuCPmWA-7xbMQ>
 <xmx:yvVDapGK1h4PVjFB785ChDFLkAk0bXbpPMsw3hqzvuSh7sQaV-huBQ>
 <xmx:yvVDajtZbuV-sjenKtb5Hvhua6eeLBpkV98D20Flqfi1Q85qjJGS3Q>
 <xmx:y_VDahEIgM7ZLHdxmU9bxIdrWwUxSyz8-2i31YUQKydMz5w12fhteT_->
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 30 Jun 2026 12:58:49 -0400 (EDT)
Message-ID: <d3a97d4c-0c2c-47c9-bce1-6cacc6d6f7b1@HIDDEN>
Date: Tue, 30 Jun 2026 19:58:47 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#81317: project-vc-cache might be too optimistic
To: Juri Linkov <juri@HIDDEN>
References: <989c9c54-af5d-4e23-961f-a136cdbc2ab1@HIDDEN>
 <a720fc51-7af6-40bb-a9d5-a7d664ca72df@HIDDEN>
 <714c8722-e623-49f3-a7f3-04d45c99b3c8@HIDDEN>
 <87v7b2srg9.fsf@HIDDEN>
 <e81edb33-1ad9-4a8e-8626-c99ee7fbf509@HIDDEN>
 <87bjct765v.fsf@HIDDEN>
 <3567ebb7-5265-4246-80c6-fb7b61f5a0ab@HIDDEN>
 <875x302iwz.fsf@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <875x302iwz.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 81317
Cc: Spencer Baugh <sbaugh@HIDDEN>, 81317 <at> debbugs.gnu.org,
 Sean Whitton <spwhitton@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.7 (-)

On 30/06/2026 18:37, Juri Linkov wrote:
>>>>> 4. Use a dynamically bound variable to specify
>>>>> the preference like
>>>>>      (let ((project-vc-cache 'essential))
>>>>>        (project-current))
>>>>
>>>> How do you see it combined with the existing conditions? As 'and' or 'or'
>>>> or replacing them?
>>> Probably it should override other conditions for simplicity.
>>
>> Simplicity at the call site, perhaps.
>>
>> So it would have two possible values? nil and 'essential?
> 
> Maybe more explicit 'essential' and 'non-essential'
> since nil is too ambiguous (it can mean no changes).

Or 'auto' maybe?

Or your suggestion above sounds like the variable should be called 
project-vc-cache-essential, with possible values t, nil, and maybe 
'auto' as well.

>> New problem regarding naming though: if the non-essental binding becomes
>> just an implementation detail, the name of
>> project-vc-non-essential-cache-timeout could use a change. Maybe we'd just
>> use the word "longer".
> 
> Probably keeping the old name would be fine
> since this name still makes sense.

The caller's value of 'non-essential' won't affect anything, though 
(only MAYBE-PROMPT will have an effect, until we add another method like 
the variable mentioned above). But maybe it makes sense in spirit.

Or we just delay any renamings, to minimize breaking changes before the 
upcoming release.

>> +               (let* ((timeout
>>                          (cond
>> -                        ((numberp project-vc-cache-timeout)
>> -                         project-vc-cache-timeout)
>> -                        ((null project-vc-cache-timeout)
>> -                         nil)
>> -                        ((listp project-vc-cache-timeout)
>> +                        ((numberp timeout)
>> +                         timeout)
>> +                        ((listp timeout)
> 
> Did you remove '((null project-vc-cache-timeout) nil)'
> intentionally?  Because then the cond-branch with
> (listp nil) will be matched.

I think the effect is the same?

    (cdr (seq-find ... nil)) will evaluate to nil.

> What semantics the nil argument 'timeout' should have now?

It's supposed to just be a simplification. I can undo that part if you 
prefer.




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

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


Received: (at 81317) by debbugs.gnu.org; 30 Jun 2026 15:45:35 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 30 11:45:35 2026
Received: from localhost ([127.0.0.1]:52603 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1weaeU-0000nQ-O6
	for submit <at> debbugs.gnu.org; Tue, 30 Jun 2026 11:45:35 -0400
Received: from mout-p-101.mailbox.org ([80.241.56.151]:48112)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1weaeP-0000gs-DA
 for 81317 <at> debbugs.gnu.org; Tue, 30 Jun 2026 11:45:29 -0400
Received: from smtp102.mailbox.org (smtp102.mailbox.org [10.196.197.102])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA512)
 (No client certificate requested)
 by mout-p-101.mailbox.org (Postfix) with ESMTPS id 4gqSCN4kpWz8tyv;
 Tue, 30 Jun 2026 17:45:20 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1782834320;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=5wuN6mJgCUAbPw6hq683fUcqKTpDuhyE6Wds7qsoRac=;
 b=Z+j+oMmszBLPKbSAbc6WS8wyFdOoXL4xcH0J8UAFsE9cKcAI9VyZYXo594Xzx0Itvx3muW
 D7o5Y9XQmdzn4LtH6itqV7v2jpfnzd2zxjpIEDRv6nIrVD+HqMwDBym8/OS9agE0eE1eRT
 Atjq70FwgXD75LIyUJdlmorKOsic0Bj7CoVimU8+48PvLtFai5TJ+YqAO+pcwurB/rlW1E
 9f+Yf1u3tZSLq72FtqLmrRJdZ0KDBZ9LFtBnU+mOeLOFhk0o4JZH37uREVES352uplg7ge
 we1D4WAKPJb6bzXVZ5AxgBw03PObHnNExPNqp/EaxPei4o/2gCertJZF4yezaA==
From: Juri Linkov <juri@HIDDEN>
To: Dmitry Gutov <dmitry@HIDDEN>
Subject: Re: bug#81317: project-vc-cache might be too optimistic
In-Reply-To: <3567ebb7-5265-4246-80c6-fb7b61f5a0ab@HIDDEN>
Organization: LINKOV.NET
References: <989c9c54-af5d-4e23-961f-a136cdbc2ab1@HIDDEN>
 <a720fc51-7af6-40bb-a9d5-a7d664ca72df@HIDDEN>
 <714c8722-e623-49f3-a7f3-04d45c99b3c8@HIDDEN>
 <87v7b2srg9.fsf@HIDDEN>
 <e81edb33-1ad9-4a8e-8626-c99ee7fbf509@HIDDEN>
 <87bjct765v.fsf@HIDDEN>
 <3567ebb7-5265-4246-80c6-fb7b61f5a0ab@HIDDEN>
Date: Tue, 30 Jun 2026 18:37:40 +0300
Message-ID: <875x302iwz.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 81317
Cc: Spencer Baugh <sbaugh@HIDDEN>, 81317 <at> debbugs.gnu.org,
 Sean Whitton <spwhitton@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.7 (-)

>>>> 4. Use a dynamically bound variable to specify
>>>> the preference like
>>>>     (let ((project-vc-cache 'essential))
>>>>       (project-current))
>>>
>>> How do you see it combined with the existing conditions? As 'and' or 'or'
>>> or replacing them?
>> Probably it should override other conditions for simplicity.
>
> Simplicity at the call site, perhaps.
>
> So it would have two possible values? nil and 'essential?

Maybe more explicit 'essential' and 'non-essential'
since nil is too ambiguous (it can mean no changes).

> New problem regarding naming though: if the non-essental binding becomes
> just an implementation detail, the name of
> project-vc-non-essential-cache-timeout could use a change. Maybe we'd just
> use the word "longer".

Probably keeping the old name would be fine
since this name still makes sense.

> +               (let* ((timeout
>                         (cond
> -                        ((numberp project-vc-cache-timeout)
> -                         project-vc-cache-timeout)
> -                        ((null project-vc-cache-timeout)
> -                         nil)
> -                        ((listp project-vc-cache-timeout)
> +                        ((numberp timeout)
> +                         timeout)
> +                        ((listp timeout)

Did you remove '((null project-vc-cache-timeout) nil)'
intentionally?  Because then the cond-branch with
(listp nil) will be matched.

What semantics the nil argument 'timeout' should have now?




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

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


Received: (at 81317) by debbugs.gnu.org; 30 Jun 2026 06:17:43 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 30 02:17:43 2026
Received: from localhost ([127.0.0.1]:46821 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1weRmw-0001KK-LM
	for submit <at> debbugs.gnu.org; Tue, 30 Jun 2026 02:17:43 -0400
Received: from fhigh-b6-smtp.messagingengine.com ([202.12.124.157]:44779)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <dmitry@HIDDEN>) id 1weRmu-0001K3-6n
 for 81317 <at> debbugs.gnu.org; Tue, 30 Jun 2026 02:17:41 -0400
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 21C657A001E;
 Tue, 30 Jun 2026 02:17:34 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Tue, 30 Jun 2026 02:17:34 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-type:content-type:date:date:from:from:in-reply-to
 :in-reply-to:message-id:mime-version:references:reply-to:subject
 :subject:to:to; s=fm3; t=1782800253; x=1782886653; bh=CtbaK2oxWB
 kySiPf1NGwdaG5g0RhSyQDlv2oDWKL4Jg=; b=SVPC3oFyizeWsVxM8Fk7K4Ghbq
 aO/518sIxbI4RHpzQ5R/CcEN+Okt/zahYAquJyUkLUzAH6KkjOTHIvnO23EUeNlD
 SmgCUP4abfnxx4EInUjLhJQvGnTGZ9wYmgP0qfgindr2J4i2QYjhf+4N2v5n3h1a
 01VfCH27NiGiJGosgtoh7oBF7wnkYJO5YwwlII/9NbSQarIJ5JPag/0TuUPyvSYa
 sp7GBVZPC2CPx5hsNaTo/xEfh8hS+oqST+wbu5ezxX19Ajo1ue29jOLeGIA1ZjtK
 4x6+VBnGC9wb7FD8PAvbZC1RU/2uym/4BhKto5Ub2Fpik3sFz3b1F1D6obwA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-type:content-type:date:date
 :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
 :message-id:mime-version:references:reply-to:subject:subject:to
 :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
 1782800253; x=1782886653; bh=CtbaK2oxWBkySiPf1NGwdaG5g0RhSyQDlv2
 oDWKL4Jg=; b=kJosGtqoM8VmH3+TWK/Ag0TueFye4FUDVLro+mpsZvjXXfYN/GD
 Qjc2N7s3oj/MnSzp/umV1SmEWHTXWwF4h3GZq+GsY5sQT0bp5t1bn4xvNBBIHJsZ
 zfLgNT9jChJUBJ6bQl4ArtXvLWp8i0UUj27z5wKZOe8hrVbYzx4IEZmXJngvnChU
 0vnh4vAKD53MghUJdXzSwYjaiSausxd6PZgJ9eBV1tzWiT/hZ+g4MIyCbNRDWKd4
 gvi1iGZWpPwbzM6gzOFm989cOYSejftpQF+0SHPuA3tapvEKBsw33vwMKNwROVMg
 L3MSpdAkMMF13dIqbhN7L04HFrs8SMQhDfQ==
X-ME-Sender: <xms:fV9Dap-IP3_b68nvmmMHNmXiY74PBWlrjdWvfczM27Jv4gkWeDCFGA>
 <xme:fV9DakvGjnrQCMR9r9KP-WeH4VB8IuqzaSgQW1NxNWTzoJ_Iu3SSPx7TRCXsm3QXe
 vQpcAPTWZvW_GkAp_knB4Es6qZQ1ln17crnjaVlEYAkxqpnY4Ie>
X-ME-Received: <xmr:fV9DasDd_7mefC3ZD2-jQ_HfecVEfz7NGcU3baW44xIbaIVFezbqVUalwvYIFoCX0bjX>
X-ME-Proxy-Cause: dmFkZTEJwqzht+cecxflRbLx2SOLC4uzfU67RNmNuLkdcJBNMC6wjiYNLChB9ZwIwBjHVZ
 cvKy0SGVxaHeSfzZpLou+VsMBGr41y1fLt7q0LyDMqbxAPqGhvxP/PpQeErb+GJw+RRXRt
 8KCDn6WeONcKfwgq1T5k2+wvleN5p6pytzpvUZY/YLy0AA2dzca7X7m/9biP16dSP3YBqP
 RYjnS6cv/DJ1ZJV4u7+jyePT3GYegGu6yr0T+dvg+N8+yQZ/G4QvtaEy8yhbIToB6/ERbq
 vwdmWFdMmBAthDl99xcjqvB8z9AcAeU5f/0RDl40/mYlHP6XMDjuxy1/Nn5/Ie+qynDrUF
 jK3YkbNUXdlW5xMtrA+eQmHJEEh70os7NIuGnJtwAT/WzA/8jKH8a8bnKk5epCnorTgbHH
 l6R8X9aEfiJRL+8m30N8DXBZ0BpoRwMtQFlyVUE0ZPaR6MT9intYGZk89jipj71HSNx2qU
 MUJj6cmZt+bE2RyvYeQXPN9mm+7K+502xb7oKebR+1h7QVl6sYzNpDnaPAszFYptTXKc1B
 /fp1q9e2il5LqqtKZnpEqxjHQDgupeiwJ7c1IGPOCEApJz2GFKeEYKq5MwqBzosWLExF5M
 TRCNxjn1Rhz8ZakVSCQ9Sd2id2OSfS4CC++sQ+cBI27FgBx2J9NFxWtsmN4Q
X-ME-Proxy: <xmx:fV9DasX4S9kn_Mp9XVJd_-gCQke6ZnpXOKSCM1fixZ4GkV6cB1I0Ew>
 <xmx:fV9DaqAft5_JR1dKBHaU8xACQEFxQCGFSfl3Q8lEXA7PUfPX709mow>
 <xmx:fV9Dav-EeL2LnfbglbJPlQlaVLYRJ9ORB-6nTU1w_Bn0TQgRhWIdIw>
 <xmx:fV9DahHOzDhTjGOlFNdWygUAS4iZs-XeAhBQ4dLVRgfd4puNmQZ9zQ>
 <xmx:fV9DavizOapqOmpXXjDku0U7IVAYZwhS0kuC3OrhoSwgDjQUt-ENbZAP>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 30 Jun 2026 02:17:32 -0400 (EDT)
Content-Type: multipart/mixed; boundary="------------hdBtLWeu60EhSTywxRIKILCJ"
Message-ID: <3567ebb7-5265-4246-80c6-fb7b61f5a0ab@HIDDEN>
Date: Tue, 30 Jun 2026 09:17:29 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Dmitry Gutov <dmitry@HIDDEN>
Subject: Re: bug#81317: project-vc-cache might be too optimistic
To: Juri Linkov <juri@HIDDEN>
References: <989c9c54-af5d-4e23-961f-a136cdbc2ab1@HIDDEN>
 <a720fc51-7af6-40bb-a9d5-a7d664ca72df@HIDDEN>
 <714c8722-e623-49f3-a7f3-04d45c99b3c8@HIDDEN>
 <87v7b2srg9.fsf@HIDDEN>
 <e81edb33-1ad9-4a8e-8626-c99ee7fbf509@HIDDEN>
 <87bjct765v.fsf@HIDDEN>
Content-Language: en-US
In-Reply-To: <87bjct765v.fsf@HIDDEN>
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 81317
Cc: Spencer Baugh <sbaugh@HIDDEN>, 81317 <at> debbugs.gnu.org,
 Sean Whitton <spwhitton@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.7 (-)

This is a multi-part message in MIME format.
--------------hdBtLWeu60EhSTywxRIKILCJ
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29/06/2026 18:09, Juri Linkov wrote:
>>> 4. Use a dynamically bound variable to specify
>>> the preference like
>>>     (let ((project-vc-cache 'essential))
>>>       (project-current))
>>
>> How do you see it combined with the existing conditions? As 'and' or 'or'
>> or replacing them?
> 
> Probably it should override other conditions for simplicity.

Simplicity at the call site, perhaps.

So it would have two possible values? nil and 'essential?

>> Speaking of the last part, it might be non-intuitive that caching in
>> 'project-current' and 'project-name' are decided by different conditions,
>> even though they usually appear in code together. Maybe we could make
>> 'project-name' always use the longer cache, leaving "essential"
>> invalidation up to 'project-current' when appropriate (*). That could
>> simplify things.
> 
> This means to change caching for 'project-vc-dir-locals'
> in 'project--value-in-dir'?

Yes, and passing it the usage context somehow.

There are different ways to implement this (including adding a new 
dynamic var for the "actual" cache longevity), but how about the attached?

Invalidation becomes more opaque, relying on two implementation details 
(all dir-locals is saved to one key, and project-try-vc--search looks it 
up unconditionally), but we can add some new tests to nail it down.

Fixed a couple of latent bugs, should work better.

New problem regarding naming though: if the non-essental binding becomes 
just an implementation detail, the name of 
project-vc-non-essential-cache-timeout could use a change. Maybe we'd 
just use the word "longer".
--------------hdBtLWeu60EhSTywxRIKILCJ
Content-Type: text/x-patch; charset=UTF-8;
 name="project-try-vc-sole-cache-invalidation.diff"
Content-Disposition: attachment;
 filename="project-try-vc-sole-cache-invalidation.diff"
Content-Transfer-Encoding: base64

ZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL3Byb2plY3QuZWwgYi9saXNwL3Byb2dtb2Rl
cy9wcm9qZWN0LmVsCmluZGV4IGViYmFhNzYwOWVhLi5iNzI0NmU3N2MzMyAxMDA2NDQKLS0t
IGEvbGlzcC9wcm9nbW9kZXMvcHJvamVjdC5lbAorKysgYi9saXNwL3Byb2dtb2Rlcy9wcm9q
ZWN0LmVsCkBAIC04NCwxMSArODQsMTEgQEAKIDs7IFRoaXMgcHJvamVjdCB0eXBlIGNhbiBh
bHNvIGJlIHVzZWQgZm9yIG5vbi1WQ1MgY29udHJvbGxlZAogOzsgZGlyZWN0b3JpZXMsIHNl
ZSB0aGUgdmFyaWFibGUgYHByb2plY3QtdmMtZXh0cmEtcm9vdC1tYXJrZXJzJy4KIDs7Ci07
OyBTb21lIG9mIHRoZSBtZXRob2RzIG9uIHRoaXMgYmFja2VuZCBjYWNoZSB0aGVpciBjb21w
dXRhdGlvbnMgZm9yIHRpbWUKLTs7IGRldGVybWluZWQgZWl0aGVyIGJ5IHZhcmlhYmxlIGBw
cm9qZWN0LXZjLWNhY2hlLXRpbWVvdXQnIG9yCis7OyBTb21lIG9mIHRoZSBtZXRob2RzIG9u
IHRoaXMgYmFja2VuZCBjYWNoZSB0aGVpciBjb21wdXRhdGlvbnMuCis7OyBDYWNoZSBpbnZh
bGlkYXRpb24gaXMgZG9uZSBpbnNpZGUgdGhlIGBwcm9qZWN0LWN1cnJlbnQnIGNhbGwsIHdp
dGgKKzs7IGR1cmF0aW9uIGRldGVybWluZWQgZWl0aGVyIGJ5IHZhcmlhYmxlIGBwcm9qZWN0
LXZjLWNhY2hlLXRpbWVvdXQnIG9yCiA7OyBgcHJvamVjdC12Yy1ub24tZXNzZW50aWFsLWNh
Y2hlLXRpbWVvdXQnLCBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUKLTs7IE1BWUJFLVBST01Q
VCBhcmd1bWVudCB0byBgcHJvamVjdC1jdXJyZW50JyBpcyBub24tbmlsLCBvciB0aGUgdmFs
dWUKLTs7IG9mIGBub24tZXNzZW50aWFsJyB3aGVuIHByb2plY3QgbWV0aG9kcyBhcmUgY2Fs
bGVkLgorOzsgYXJndW1lbnQgTUFZQkUtUFJPTVBUIGlzIG5vbi1uaWwuCiA7OwogOzsgVXRp
bHM6CiA7OwpAQCAtNjEzLDI3ICs2MTMsMjEgQEAgcHJvamVjdC12Yy1ub24tZXNzZW50aWFs
LWNhY2hlLXRpbWVvdXQKIGBwcm9qZWN0LW1vZGUtbGluZScgaW5kaWNhdG9ycyBhbmQgYHBy
b2plY3QtdW5pcXVpZnktZGlybmFtZS10cmFuc2Zvcm0nLgogSXQgaXMgdXNlZCB3aGVuIGBu
b24tZXNzZW50aWFsJyBpcyBub24tbmlsLiIpCiAKLShkZWZ1biBwcm9qZWN0LS1nZXQtY2Fj
aGVkIChkaXIga2V5KQorKGRlZnVuIHByb2plY3QtLWdldC1jYWNoZWQgKGRpciBrZXkgdGlt
ZW91dCkKICAgKGxldCAoKGNhY2hlZCAodmMtZmlsZS1nZXRwcm9wIGRpciBrZXkpKQogICAg
ICAgICAoY3VycmVudC10aW1lIChmbG9hdC10aW1lKSkpCiAgICAgKHdoZW4gKGFuZCAobnVt
YmVycCAoY2RyIGNhY2hlZCkpCiAgICAgICAgICAgICAgICA7OyBTdXBwb3J0IHBhY2thZ2Ug
dXBncmFkZSBtaWQtc2Vzc2lvbi4KLSAgICAgICAgICAgICAgIChsZXQqICgocHJvamVjdC12
Yy1jYWNoZS10aW1lb3V0Ci0gICAgICAgICAgICAgICAgICAgICAgIChpZiBub24tZXNzZW50
aWFsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0LXZjLW5vbi1lc3NlbnRp
YWwtY2FjaGUtdGltZW91dAotICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QtdmMt
Y2FjaGUtdGltZW91dCkpCi0gICAgICAgICAgICAgICAgICAgICAgKHRpbWVvdXQKKyAgICAg
ICAgICAgICAgIChsZXQqICgodGltZW91dAogICAgICAgICAgICAgICAgICAgICAgICAoY29u
ZAotICAgICAgICAgICAgICAgICAgICAgICAgKChudW1iZXJwIHByb2plY3QtdmMtY2FjaGUt
dGltZW91dCkKLSAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0LXZjLWNhY2hlLXRp
bWVvdXQpCi0gICAgICAgICAgICAgICAgICAgICAgICAoKG51bGwgcHJvamVjdC12Yy1jYWNo
ZS10aW1lb3V0KQotICAgICAgICAgICAgICAgICAgICAgICAgIG5pbCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICgobGlzdHAgcHJvamVjdC12Yy1jYWNoZS10aW1lb3V0KQorICAgICAg
ICAgICAgICAgICAgICAgICAgKChudW1iZXJwIHRpbWVvdXQpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgdGltZW91dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICgobGlzdHAgdGlt
ZW91dCkKICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RyCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChzZXEtZmluZCAobGFtYmRhIChwYWlyKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoYW5kIChmdW5jdGlvbnAgKGNhciBwYWlyKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY2FsbCAoY2FyIHBh
aXIpIGRpcikpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVj
dC12Yy1jYWNoZS10aW1lb3V0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0aW1lb3V0KSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAodCBuaWwpKSkpCiAg
ICAgICAgICAgICAgICAgIChvciAobnVsbCB0aW1lb3V0KQogICAgICAgICAgICAgICAgICAg
ICAgKDwgKC0gY3VycmVudC10aW1lIChjZHIgY2FjaGVkKSkgdGltZW91dCkpKSkKQEAgLTY0
Nyw3ICs2NDEsOSBAQCBwcm9qZWN0LS1jbGVhci1jYWNoZQogICAob2JhcnJheS1tYXAKICAg
IChsYW1iZGEgKHN5bSkKICAgICAgKGlmIChnZXQgc3ltICdwcm9qZWN0LXZjKQotICAgICAg
ICAgKHB1dCBzeW0gJ3Byb2plY3QtdmMgbmlsKSkpCisgICAgICAgICAocHV0IHN5bSAncHJv
amVjdC12YyBuaWwpKQorICAgICAoaWYgKGdldCBzeW0gJ3Byb2plY3QtdmMtZGlyLWxvY2Fs
cykKKyAgICAgICAgIChwdXQgc3ltICdwcm9qZWN0LXZjLWRpci1sb2NhbHMgbmlsKSkpCiAg
ICB2Yy1maWxlLXByb3Atb2JhcnJheSkpCiAKIChkZWZ1biBwcm9qZWN0LXRyeS12YyAoZGly
KQpAQCAtNjU2LDE1ICs2NTIsMTggQEAgcHJvamVjdC10cnktdmMKIFRoZSB2YWx1ZSBpcyBj
YWNoZWQsIGFuZCBkZXBlbmRpbmcgb24gd2hldGhlciBNQVlCRS1QUk9NUFQgd2FzIG5vbi1u
aWwKIGluIHRoZSBgcHJvamVjdC1jdXJyZW50JyBjYWxsLCB0aGUgdGltZW91dCBpcyBkZXRl
cm1pbmVkIGJ5CiBgcHJvamVjdC12Yy1jYWNoZS10aW1lb3V0JyBvciBgcHJvamVjdC12Yy1u
b24tZXNzZW50aWFsLWNhY2hlLXRpbWVvdXQnLiIKLSAgKGxldCAoKGNhY2hlZCAocHJvamVj
dC0tZ2V0LWNhY2hlZCBkaXIgJ3Byb2plY3QtdmMpKSkKKyAgKGxldCogKCh0aW1lb3V0IChp
ZiBub24tZXNzZW50aWFsCisgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdC12Yy1ub24t
ZXNzZW50aWFsLWNhY2hlLXRpbWVvdXQKKyAgICAgICAgICAgICAgICAgICAgcHJvamVjdC12
Yy1jYWNoZS10aW1lb3V0KSkKKyAgICAgICAgIChjYWNoZWQgKHByb2plY3QtLWdldC1jYWNo
ZWQgZGlyICdwcm9qZWN0LXZjIHRpbWVvdXQpKSkKICAgICAoaWYgKGVxIGNhY2hlZCAnbm9u
ZSkKICAgICAgICAgbmlsCiAgICAgICAob3IgY2FjaGVkCi0gICAgICAgICAgKGxldCAoKHJl
cyAocHJvamVjdC10cnktdmMtLXNlYXJjaCBkaXIpKSkKKyAgICAgICAgICAobGV0ICgocmVz
IChwcm9qZWN0LXRyeS12Yy0tc2VhcmNoIGRpciB0aW1lb3V0KSkpCiAgICAgICAgICAgICAo
cHJvamVjdC0tc2V0LWNhY2hlZCBkaXIgJ3Byb2plY3QtdmMgKG9yIHJlcyAnbm9uZSkpCiAg
ICAgICAgICAgICByZXMpKSkpKQogCi0oZGVmdW4gcHJvamVjdC10cnktdmMtLXNlYXJjaCAo
ZGlyKQorKGRlZnVuIHByb2plY3QtdHJ5LXZjLS1zZWFyY2ggKGRpciB0aW1lb3V0KQogICAo
bGV0KiAoKGJhY2tlbmQtbWFya2VycwogICAgICAgICAgIChkZWxldGUKICAgICAgICAgICAg
bmlsCkBAIC02NzcsNyArNjc2LDcgQEAgcHJvamVjdC10cnktdmMtLXNlYXJjaAogICAgICAg
ICAgICAobWFwY29uY2F0CiAgICAgICAgICAgICAobGFtYmRhIChtKSAoZm9ybWF0ICJcXCgl
c1xcKSIgKHdpbGRjYXJkLXRvLXJlZ2V4cCBtKSkpCiAgICAgICAgICAgICAoYXBwZW5kIGJh
Y2tlbmQtbWFya2VycwotICAgICAgICAgICAgICAgICAgICAocHJvamVjdC0tdmFsdWUtaW4t
ZGlyICdwcm9qZWN0LXZjLWV4dHJhLXJvb3QtbWFya2VycyBkaXIpKQorICAgICAgICAgICAg
ICAgICAgICAocHJvamVjdC0tdmFsdWUtaW4tZGlyICdwcm9qZWN0LXZjLWV4dHJhLXJvb3Qt
bWFya2VycyBkaXIgdGltZW91dCkpCiAgICAgICAgICAgICAiXFx8IikKICAgICAgICAgICAg
IlxcJyIpKQogICAgICAgICAgKGxvY2F0ZS1kb21pbmF0aW5nLXN0b3AtZGlyLXJlZ2V4cApA
QCAtNzAyLDcgKzcwMSw3IEBAIHByb2plY3QtdHJ5LXZjLS1zZWFyY2gKICAgICAod2hpbGUg
KGFuZAogICAgICAgICAgICAgcm9vdAogICAgICAgICAgICAgKGVxIGJhY2tlbmQgJ0dpdCkK
LSAgICAgICAgICAgIChwcm9qZWN0LS12Yy1tZXJnZS1zdWJtb2R1bGVzLXAgcm9vdCkKKyAg
ICAgICAgICAgIChwcm9qZWN0LS12Yy1tZXJnZS1zdWJtb2R1bGVzLXAgcm9vdCB0aW1lb3V0
KQogICAgICAgICAgICAgKHByb2plY3QtLXN1Ym1vZHVsZS1wIHJvb3QpKQogICAgICAgKGxl
dCogKChwYXJlbnQgKGZpbGUtbmFtZS1kaXJlY3RvcnkgKGRpcmVjdG9yeS1maWxlLW5hbWUg
cm9vdCkpKSkKICAgICAgICAgKHNldHEgcm9vdCAodmMtY2FsbC1iYWNrZW5kICdHaXQgJ3Jv
b3QgcGFyZW50KSkpKQpAQCAtNzEzLDcgKzcxMiw3IEBAIHByb2plY3QtdHJ5LXZjLS1zZWFy
Y2gKICAgICAgICAgKGxldCogKChwcm9qZWN0LXZjLWV4dHJhLXJvb3QtbWFya2VycyBuaWwp
CiAgICAgICAgICAgICAgICA7OyBBdm9pZCBzdWJtb2R1bGVzIHNjYW4uCiAgICAgICAgICAg
ICAgICAoZW5hYmxlLWRpci1sb2NhbC12YXJpYWJsZXMgbmlsKQotICAgICAgICAgICAgICAg
KHBhcmVudCAocHJvamVjdC10cnktdmMtLXNlYXJjaCByb290KSkpCisgICAgICAgICAgICAg
ICAocGFyZW50IChwcm9qZWN0LXRyeS12Yy0tc2VhcmNoIHJvb3QgdGltZW91dCkpKQogICAg
ICAgICAgIChhbmQgcGFyZW50IChzZXRxIGJhY2tlbmQgKG50aCAxIHBhcmVudCkpKSkpCiAg
ICAgICAoc2V0cSBwcm9qZWN0IChsaXN0ICd2YyBiYWNrZW5kIHJvb3QpKQogICAgICAgcHJv
amVjdCkpKQpAQCAtNzYyLDcgKzc2MSw3IEBAIHByb2plY3QtdmMtLWJhY2tlbmQKIChjbC1k
ZWZtZXRob2QgcHJvamVjdC1maWxlcyAoKHByb2plY3QgKGhlYWQgdmMpKSAmb3B0aW9uYWwg
ZGlycykKICAgKG1hcGNhbgogICAgKGxhbWJkYSAoZGlyKQotICAgICAobGV0ICgoaWdub3Jl
cyAocHJvamVjdC0tdmFsdWUtaW4tZGlyICdwcm9qZWN0LXZjLWlnbm9yZXMgZGlyKSkKKyAg
ICAgKGxldCAoKGlnbm9yZXMgKHByb2plY3QtLXZhbHVlLWluLWRpciAncHJvamVjdC12Yy1p
Z25vcmVzIGRpciBuaWwpKQogICAgICAgICAgICAoYmFja2VuZCAocHJvamVjdC12Yy0tYmFj
a2VuZCBwcm9qZWN0IGRpcikpKQogICAgICAgIChpZiBiYWNrZW5kCiAgICAgICAgICAgICh2
Yy1jYWxsLWJhY2tlbmQgYmFja2VuZCAncHJvamVjdC1saXN0LWZpbGVzIGRpciBpZ25vcmVz
KQpAQCAtNzkwLDcgKzc4OSw4IEBAIHZjLWdpdC1wcm9qZWN0LWxpc3QtZmlsZXMKICAgICAg
ICAgICAgKHZjLWdpdC11c2UtbGl0ZXJhbC1wYXRoc3BlY3MgbmlsKQogICAgICAgICAgICAo
aW5jbHVkZS11bnRyYWNrZWQgKHByb2plY3QtLXZhbHVlLWluLWRpcgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdwcm9qZWN0LXZjLWluY2x1ZGUtdW50cmFja2VkCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkaXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwpKQog
ICAgICAgICAgICAoc3VibW9kdWxlcyAocHJvamVjdC0tZ2l0LXN1Ym1vZHVsZXMpKQogICAg
ICAgICAgICAoZ2l0dmVyICh2Yy1naXQtLXByb2dyYW0tdmVyc2lvbikpCiAgICAgICAgICAg
IChkZWR1cCAoYW5kICh2ZXJzaW9uPD0gIjIuMzEiIGdpdHZlcikgJygiLS1kZWR1cGxpY2F0
ZSIpKSkKQEAgLTg0Miw3ICs4NDIsNyBAQCB2Yy1naXQtcHJvamVjdC1saXN0LWZpbGVzCiAg
ICAgICAgICAgICAgICAgICAgICh3aXRoLW91dHB1dC10by1zdHJpbmcKICAgICAgICAgICAg
ICAgICAgICAgICAoYXBwbHkgIyd2Yy1naXQtY29tbWFuZCBzdGFuZGFyZC1vdXRwdXQgMCBu
aWwgImxzLWZpbGVzIiBhcmdzKSkKICAgICAgICAgICAgICAgICAgICAgIlwwIiB0KSkpKQot
ICAgICAgKHdoZW4gKHByb2plY3QtLXZjLW1lcmdlLXN1Ym1vZHVsZXMtcCBkZWZhdWx0LWRp
cmVjdG9yeSkKKyAgICAgICh3aGVuIChwcm9qZWN0LS12Yy1tZXJnZS1zdWJtb2R1bGVzLXAg
ZGVmYXVsdC1kaXJlY3RvcnkgbmlsKQogICAgICAgICA7OyBVbmZvcnR1bmF0ZWx5LCAnbHMt
ZmlsZXMgLS1yZWN1cnNlLXN1Ym1vZHVsZXMnIGNvbmZsaWN0cyB3aXRoICctbycuCiAgICAg
ICAgIChsZXQgKChzdWItZmlsZXMKICAgICAgICAgICAgICAgIChtYXBjYXIKQEAgLTg2Nyw3
ICs4NjcsOCBAQCB2Yy1oZy1wcm9qZWN0LWxpc3QtZmlsZXMKICAgKGxldCogKChkZWZhdWx0
LWRpcmVjdG9yeSAoZXhwYW5kLWZpbGUtbmFtZSAoZmlsZS1uYW1lLWFzLWRpcmVjdG9yeSBk
aXIpKSkKICAgICAgICAgIChpbmNsdWRlLXVudHJhY2tlZCAocHJvamVjdC0tdmFsdWUtaW4t
ZGlyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9qZWN0LXZjLWluY2x1ZGUt
dW50cmFja2VkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcikpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpcgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBuaWwpKQogICAgICAgICAgKGFyZ3MgKGxpc3QgKGNvbmNhdCAiLW1jYXJkIiAoYW5kIGlu
Y2x1ZGUtdW50cmFja2VkICJ1IikpCiAgICAgICAgICAgICAgICAgICAgICAiLS1uby1zdGF0
dXMiCiAgICAgICAgICAgICAgICAgICAgICAiLTAiKSkKQEAgLTg4NywxMCArODg4LDExIEBA
IHZjLWhnLXByb2plY3QtbGlzdC1maWxlcwogICAgICAgICAgICAgICAgICAgICAgZmlsZXMp
KSkKICAgICAgIGZpbGVzKSkpCiAKLShkZWZ1biBwcm9qZWN0LS12Yy1tZXJnZS1zdWJtb2R1
bGVzLXAgKGRpcikKKyhkZWZ1biBwcm9qZWN0LS12Yy1tZXJnZS1zdWJtb2R1bGVzLXAgKGRp
ciB0aW1lb3V0KQogICAocHJvamVjdC0tdmFsdWUtaW4tZGlyCiAgICAncHJvamVjdC12Yy1t
ZXJnZS1zdWJtb2R1bGVzCi0gICBkaXIpKQorICAgZGlyCisgICB0aW1lb3V0KSkKIAogKGRl
ZnVuIHByb2plY3QtLWdpdC1zdWJtb2R1bGVzICgpCiAgIDs7ICdnaXQgc3VibW9kdWxlIGZv
cmVhY2gnIGlzIG11Y2ggc2xvd2VyLgpAQCAtOTA3LDcgKzkwOSw3IEBAIHByb2plY3QtLWdp
dC1zdWJtb2R1bGVzCiAoY2wtZGVmbWV0aG9kIHByb2plY3QtaWdub3JlcyAoKHByb2plY3Qg
KGhlYWQgdmMpKSBkaXIpCiAgIChwcm9qZWN0LS12Yy1pZ25vcmVzIGRpcgogICAgICAgICAg
ICAgICAgICAgICAgICAocHJvamVjdC12Yy0tYmFja2VuZCBwcm9qZWN0IGRpcikKLSAgICAg
ICAgICAgICAgICAgICAgICAgKHByb2plY3QtLXZhbHVlLWluLWRpciAncHJvamVjdC12Yy1p
Z25vcmVzIGRpcikpKQorICAgICAgICAgICAgICAgICAgICAgICAocHJvamVjdC0tdmFsdWUt
aW4tZGlyICdwcm9qZWN0LXZjLWlnbm9yZXMgZGlyIG5pbCkpKQogCiAoZGVmdW4gcHJvamVj
dC0tdmMtaWdub3JlcyAoZGlyIGJhY2tlbmQgZXh0cmEtaWdub3JlcykKICAgKHJlcXVpcmUg
J3ZjKSAgICAgICAgICAgICA7IENhbiBiZSByZW1vdmVkIHdoZW4gd2UgcmVxdWlyZSBFbWFj
cyAzMS4xLgpAQCAtOTY0LDE2ICs5NjYsMTkgQEAgcHJvamVjdC1zdWJ0cmFjdC1kaXJlY3Rv
cmllcwogICA7OyBTaWRlc3RlcCB0aGUgaXNzdWUgb2YgZXhwYW5kZWQvYWJicmV2aWF0ZWQg
ZmlsZSBuYW1lcyBoZXJlLgogICAoY2wtc2V0LWRpZmZlcmVuY2UgZmlsZXMgZGlycyA6dGVz
dCAjJ2ZpbGUtaW4tZGlyZWN0b3J5LXApKQogCi0oZGVmdW4gcHJvamVjdC0tdmFsdWUtaW4t
ZGlyICh2YXIgZGlyKQorKGRlZnVuIHByb2plY3QtLXZhbHVlLWluLWRpciAodmFyIGRpciB0
aW1lb3V0KQorICAiTG9vayB1cCB2YXJpYWJsZSBWQVIncyB2YWx1ZSBpbiBESVIsIHdpdGgg
Y2FjaGUgZHVyYXRpb24gVElNRU9VVC4KK0lmIFRJTUVPVVQgaXMgbmlsLCB0aGUgY2FjaGUg
aXMgbm90IGludmFsaWRhdGVkLiIKICAgKGFsaXN0LWdldAogICAgdmFyCi0gICAobGV0ICgo
Y2FjaGVkIChwcm9qZWN0LS1nZXQtY2FjaGVkIGRpciAncHJvamVjdC12Yy1kaXItbG9jYWxz
KSkpCi0gICAgIChpZiAoZXEgY2FjaGVkICdub25lKQotICAgICAgICAgbmlsCi0gICAgICAg
KG9yIGNhY2hlZAotICAgICAgICAgICAobGV0ICgocmVzIChwcm9qZWN0LS1yZWFkLWRpci1s
b2NhbHMgZGlyKSkpCi0gICAgICAgICAgICAgKHByb2plY3QtLXNldC1jYWNoZWQgZGlyICdw
cm9qZWN0LXZjLWRpci1sb2NhbHMgKG9yIHJlcyAnbm9uZSkpCi0gICAgICAgICAgICAgcmVz
KSkpKQorICAgKHdoZW4gZW5hYmxlLWRpci1sb2NhbC12YXJpYWJsZXMKKyAgICAgKGxldCAo
KGNhY2hlZCAocHJvamVjdC0tZ2V0LWNhY2hlZCBkaXIgJ3Byb2plY3QtdmMtZGlyLWxvY2Fs
cyB0aW1lb3V0KSkpCisgICAgICAgKGlmIChlcSBjYWNoZWQgJ25vbmUpCisgICAgICAgICAg
IG5pbAorICAgICAgICAgKG9yIGNhY2hlZAorICAgICAgICAgICAgIChsZXQgKChyZXMgKHBy
b2plY3QtLXJlYWQtZGlyLWxvY2FscyBkaXIpKSkKKyAgICAgICAgICAgICAgIChwcm9qZWN0
LS1zZXQtY2FjaGVkIGRpciAncHJvamVjdC12Yy1kaXItbG9jYWxzIChvciByZXMgJ25vbmUp
KQorICAgICAgICAgICAgICAgcmVzKSkpKSkKICAgIChkZWZhdWx0LXZhbHVlIHZhcikpKQog
CiAoZGVmdW4gcHJvamVjdC0tcmVhZC1kaXItbG9jYWxzIChkaXIpCkBAIC05ODYsNyArOTkx
LDcgQEAgcHJvamVjdC0tcmVhZC1kaXItbG9jYWxzCiAKIChjbC1kZWZtZXRob2QgcHJvamVj
dC1idWZmZXJzICgocHJvamVjdCAoaGVhZCB2YykpKQogICAobGV0KiAoKHJvb3QgKGV4cGFu
ZC1maWxlLW5hbWUgKGZpbGUtbmFtZS1hcy1kaXJlY3RvcnkgKHByb2plY3Qtcm9vdCBwcm9q
ZWN0KSkpKQotICAgICAgICAgKG1vZHVsZXMgKHVubGVzcyAob3IgKHByb2plY3QtLXZjLW1l
cmdlLXN1Ym1vZHVsZXMtcCByb290KQorICAgICAgICAgKG1vZHVsZXMgKHVubGVzcyAob3Ig
KHByb2plY3QtLXZjLW1lcmdlLXN1Ym1vZHVsZXMtcCByb290IG5pbCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChjb25kaXRpb24tY2FzZSBuaWwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAocHJvamVjdC0tc3VibW9kdWxlLXAgcm9vdCkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbGUtbWlzc2luZyBuaWwpKSkKQEAgLTEw
MDQsMTIgKzEwMDksOCBAQCBwcm9qZWN0LWJ1ZmZlcnMKICAgICAobnJldmVyc2UgYnVmcykp
KQogCiAoY2wtZGVmbWV0aG9kIHByb2plY3QtbmFtZSAoKHByb2plY3QgKGhlYWQgdmMpKSkK
LSAgIlJldHVybnMgdGhlIG5hbWUgb2YgdGhpcyBWQy1hd2FyZSB0eXBlIFBST0pFQ1QuCi0K
LVRoZSB2YWx1ZSBpcyBjYWNoZWQsIGFuZCBkZXBlbmRpbmcgb24gd2hldGhlciBgbm9uLWVz
c2VudGlhbCcgaXMgbmlsLAotdGhlIHRpbWVvdXQgaXMgZGV0ZXJtaW5lZCBieSBgcHJvamVj
dC12Yy1jYWNoZS10aW1lb3V0JyBvcgotYHByb2plY3QtdmMtbm9uLWVzc2VudGlhbC1jYWNo
ZS10aW1lb3V0Jy4iCi0gIChvciAocHJvamVjdC0tdmFsdWUtaW4tZGlyICdwcm9qZWN0LXZj
LW5hbWUgKHByb2plY3Qtcm9vdCBwcm9qZWN0KSkKKyAgIlJldHVybnMgdGhlIG5hbWUgb2Yg
dGhpcyBWQy1hd2FyZSB0eXBlIFBST0pFQ1QuIgorICAob3IgKHByb2plY3QtLXZhbHVlLWlu
LWRpciAncHJvamVjdC12Yy1uYW1lIChwcm9qZWN0LXJvb3QgcHJvamVjdCkgbmlsKQogICAg
ICAgKGNsLWNhbGwtbmV4dC1tZXRob2QpKSkKIAogDApAQCAtMjczMSw4ICsyNzMyLDcgQEAg
cHJvamVjdC11bmlxdWlmeS1kaXJuYW1lLXRyYW5zZm9ybQogdGhlIGJ1ZmZlcidzIGRpcmVj
dG9yeSBuYW1lIHdoZW4gYnVmZmVycyBmcm9tIHR3byBkaWZmZXJlbnQgcHJvamVjdHMKIHdv
dWxkIG90aGVyd2lzZSBoYXZlIHRoZSBzYW1lIG5hbWUuIgogICAoaWYtbGV0KiAoKHByb2og
KHByb2plY3QtY3VycmVudCBuaWwgZGlybmFtZSkpKQotICAgICAgKGxldCAoKHJvb3QgKHBy
b2plY3Qtcm9vdCBwcm9qKSkKLSAgICAgICAgICAgIChub24tZXNzZW50aWFsIHQpKQorICAg
ICAgKGxldCAoKHJvb3QgKHByb2plY3Qtcm9vdCBwcm9qKSkpCiAgICAgICAgIChleHBhbmQt
ZmlsZS1uYW1lCiAgICAgICAgICAoZmlsZS1uYW1lLWNvbmNhdAogICAgICAgICAgIChmaWxl
LW5hbWUtZGlyZWN0b3J5IHJvb3QpCkBAIC0yNzc4LDcgKzI3NzgsNiBAQCBwcm9qZWN0LW1v
ZGUtbGluZS1mb3JtYXQKICAgICA7OyAnbGFzdC1jb2Rpbmctc3lzdGVtLXVzZWQnIHdoZW4g
cmVhZGluZyB0aGUgcHJvamVjdCBuYW1lCiAgICAgOzsgZnJvbSAuZGlyLWxvY2Fscy5lbCBh
bHNvIGVuYWJsZXMgZmx5c3BlbGwtbW9kZSAoYnVnIzY2ODI1KS4KICAgICAod2hlbi1sZXQq
ICgobGFzdC1jb2Rpbmctc3lzdGVtLXVzZWQgbGFzdC1jb2Rpbmctc3lzdGVtLXVzZWQpCi0g
ICAgICAgICAgICAgICAgKG5vbi1lc3NlbnRpYWwgdCkKICAgICAgICAgICAgICAgICAocHJv
amVjdCAocHJvamVjdC1jdXJyZW50KSkKICAgICAgICAgICAgICAgICAocHJvamVjdC1uYW1l
IChwcm9qZWN0LW5hbWUgcHJvamVjdCkpKQogICAgICAgKGNvbmNhdApkaWZmIC0tZ2l0IGEv
dGVzdC9saXNwL3Byb2dtb2Rlcy9wcm9qZWN0LXRlc3RzLmVsIGIvdGVzdC9saXNwL3Byb2dt
b2Rlcy9wcm9qZWN0LXRlc3RzLmVsCmluZGV4IDI5YWFhYTFlNTAyLi5mMTdlYTQ2YjQxMSAx
MDA2NDQKLS0tIGEvdGVzdC9saXNwL3Byb2dtb2Rlcy9wcm9qZWN0LXRlc3RzLmVsCisrKyBi
L3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHJvamVjdC10ZXN0cy5lbApAQCAtMTUwLDcgKzE1MCw3
IEBAIHByb2plY3QtdmMtc3VwcG9ydHMtcHJvamVjdC1pbi1kaWZmZXJlbnQtZGlyCiAgICJD
aGVjayB0aGF0IGl0IHBpY2tzIHVwIGRpci1sb2NhbHMgc2V0dGluZ3MgZnJvbSBzb21ld2hl
cmUgZWxzZS4iCiAgIChza2lwLXVubGVzcyAoZXEgKHZjLXJlc3BvbnNpYmxlLWJhY2tlbmQg
ZGVmYXVsdC1kaXJlY3RvcnkpICdHaXQpKQogICAobGV0KiAoKGRpciAoZXJ0LXJlc291cmNl
LWRpcmVjdG9yeSkpCi0gICAgICAgICAoXyAodmMtZmlsZS1jbGVhcnByb3BzIGRpcikpCisg
ICAgICAgICAoXyAocHJvamVjdC0tY2xlYXItY2FjaGUpKQogICAgICAgICAgKHByb2plY3Qt
dmMtZXh0cmEtcm9vdC1tYXJrZXJzICcoIi5kaXItbG9jYWxzLmVsIikpCiAgICAgICAgICAo
cHJvamVjdCAocHJvamVjdC1jdXJyZW50IG5pbCBkaXIpKSkKICAgICAoc2hvdWxkLW5vdCAo
bnVsbCBwcm9qZWN0KSkKQEAgLTE4MSw3ICsxODEsNyBAQCBwcm9qZWN0LXZjLWlnbm9yZXMt
aW4tZXh0ZXJuYWwtZGlyZWN0b3J5CiAgICJDaGVjayB0aGF0IGl0IGFwcGxpZXMgcHJvamVj
dC12Yy1pZ25vcmVzIHdoZW4gRElSIGlzIGV4dGVybmFsIHRvIHJvb3QuIgogICAoc2tpcC11
bmxlc3MgKGVxICh2Yy1yZXNwb25zaWJsZS1iYWNrZW5kIGRlZmF1bHQtZGlyZWN0b3J5KSAn
R2l0KSkKICAgKGxldCogKChkaXIgKGVydC1yZXNvdXJjZS1kaXJlY3RvcnkpKQotICAgICAg
ICAgKF8gKHZjLWZpbGUtY2xlYXJwcm9wcyBkaXIpKQorICAgICAgICAgKF8gKHByb2plY3Qt
LWNsZWFyLWNhY2hlKSkKICAgICAgICAgIDs7IERvIG5vdCBkZXRlY3QgVkMgYmFja2VuZC4K
ICAgICAgICAgIChwcm9qZWN0LXZjLWJhY2tlbmQtbWFya2Vycy1hbGlzdCBuaWwpCiAgICAg
ICAgICAocHJvamVjdC12Yy1leHRyYS1yb290LW1hcmtlcnMgJygiY29uZmlndXJlLmFjIikp
CkBAIC0yNTksNCArMjU5LDgwIEBAIHByb2plY3QtZmluZC1yZWdleHAtd2l0aC1wcmVmaXgK
ICAgICAgIChzaG91bGQgKGVxdWFsIChzb3J0IChtYXBjYXIgIyd4cmVmLWl0ZW0tc3VtbWFy
eSBtYXRjaGVzKSAjJ3N0cmluZzwpCiAgICAgICAgICAgICAgICAgICAgICAnKCIoKG5pbCAu
ICgocHJvamVjdC12Yy1pZ25vcmVzIC4gKFwiZXRjXCIpKSkpKSIgImV0YyIpKSkpKSkKIAor
KGVydC1kZWZ0ZXN0IHByb2plY3QtdHJ5LXZjLXVzZXMtY2FjaGUgKCkKKyAgIkNoZWNrIHRo
YXQgaXQgcmV1c2VzIHRoZSB2YWx1ZSB0aGF0J3MgYWxyZWFkeSBjYWNoZWQuIgorICAoc2tp
cC11bmxlc3MgKGVxICh2Yy1yZXNwb25zaWJsZS1iYWNrZW5kIGRlZmF1bHQtZGlyZWN0b3J5
KSAnR2l0KSkKKyAgOzsgUHJlcGFyZQorICAobGV0KiAoKGRpciAoZmlsZS1uYW1lLWRpcmVj
dG9yeSBwcm9qZWN0LXRlc3RzLS10aGlzLWZpbGUpKQorICAgICAgICAgKF8gKHByb2plY3Qt
LWNsZWFyLWNhY2hlKSkKKyAgICAgICAgIChwcm9qZWN0LXZjLWV4dHJhLXJvb3QtbWFya2Vy
cyAnKCJmaWxlcy14LXRlc3RzLioiKSkKKyAgICAgICAgIChwcm9qZWN0IChwcm9qZWN0LWN1
cnJlbnQgbmlsIGRpcikpKQorICAgIChzaG91bGQgKG50aCAxIHByb2plY3QpKQorICAgIChz
aG91bGQgKHN0cmluZy1tYXRjaC1wICIvdGVzdC9saXNwL1xcJyIgKHByb2plY3Qtcm9vdCBw
cm9qZWN0KSkpCisgICAgKGxldCogKChwcm9qZWN0LXZjLWV4dHJhLXJvb3QtbWFya2VycyBu
aWwpCisgICAgICAgICAgIChwcm9qZWN0LXZjLW5vbi1lc3NlbnRpYWwtY2FjaGUtdGltZW91
dCAwLjEpCisgICAgICAgICAgIChwcm9qZWN0LWNhY2hlZCAocHJvamVjdC1jdXJyZW50IG5p
bCBkaXIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIHByb2plY3QgcHJvamVjdC1jYWNoZWQp
KSkpKQorCisoZXJ0LWRlZnRlc3QgcHJvamVjdC10cnktdmMtaW52YWxpZGF0ZXMtY2FjaGUg
KCkKKyAgIkNoZWNrIHRoYXQgaXQgaW52YWxpZGF0ZXMgdGhlIGNhY2hlZCB2YWx1ZSB0aGF0
J3MgdG9vIG9sZC4iCisgICJDaGVjayB0aGF0IG9uZSBjYW4gYWRkIHdpbGRjYXJkIGVudHJp
ZXMuIgorICAoc2tpcC11bmxlc3MgKGVxICh2Yy1yZXNwb25zaWJsZS1iYWNrZW5kIGRlZmF1
bHQtZGlyZWN0b3J5KSAnR2l0KSkKKyAgOzsgUHJlcGFyZQorICAobGV0KiAoKGRpciAoZmls
ZS1uYW1lLWRpcmVjdG9yeSBwcm9qZWN0LXRlc3RzLS10aGlzLWZpbGUpKQorICAgICAgICAg
KF8gKHByb2plY3QtLWNsZWFyLWNhY2hlKSkKKyAgICAgICAgIChwcm9qZWN0LXZjLWV4dHJh
LXJvb3QtbWFya2VycyAnKCJmaWxlcy14LXRlc3RzLioiKSkKKyAgICAgICAgIChwcm9qZWN0
IChwcm9qZWN0LWN1cnJlbnQgbmlsIGRpcikpKQorICAgIChzaG91bGQgKG50aCAxIHByb2pl
Y3QpKQorICAgIChzaG91bGQgKHN0cmluZy1tYXRjaC1wICIvdGVzdC9saXNwL1xcJyIgKHBy
b2plY3Qtcm9vdCBwcm9qZWN0KSkpCisgICAgKGxldCogKChwcm9qZWN0LXZjLWV4dHJhLXJv
b3QtbWFya2VycyBuaWwpCisgICAgICAgICAgIChwcm9qZWN0LXZjLW5vbi1lc3NlbnRpYWwt
Y2FjaGUtdGltZW91dCAwLjApCisgICAgICAgICAgIChwcm9qZWN0LWZyZXNoIChwcm9qZWN0
LWN1cnJlbnQgbmlsIGRpcikpKQorICAgICAgKHNob3VsZCAoZmlsZS1lcXVhbC1wCisgICAg
ICAgICAgICAgICAocHJvamVjdC1yb290IHByb2plY3QtZnJlc2gpCisgICAgICAgICAgICAg
ICAoZXhwYW5kLWZpbGUtbmFtZSAiLi4vLi4vLi4vIiBkaXIpKSkpKSkKKworKGVydC1kZWZ0
ZXN0IHByb2plY3QtbmFtZS08dmM+LXJldXNlcy1jYWNoZSAoKQorICAiQ2hlY2sgdGhhdCBp
dCByZXVzZXMgdGhlIGNhY2hlZCB2YWx1ZS4iCisgIChza2lwLXVubGVzcyAoZXEgKHZjLXJl
c3BvbnNpYmxlLWJhY2tlbmQgZGVmYXVsdC1kaXJlY3RvcnkpICdHaXQpKQorICAocHJvamVj
dC0tY2xlYXItY2FjaGUpCisgIChlcnQtd2l0aC10ZW1wLWRpcmVjdG9yeSBkaXIKKyAgICAo
d3JpdGUtcmVnaW9uICIoKG5pbCAuICgocHJvamVjdC12Yy1uYW1lIC4gXCJiYXJiYXpcIikp
KSkiCisgICAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgIChleHBhbmQt
ZmlsZS1uYW1lICIuZGlyLWxvY2Fscy5lbCIgZGlyKSkKKyAgICAod3JpdGUtcmVnaW9uICIi
IG5pbCAoZXhwYW5kLWZpbGUtbmFtZSAicHJvamVjdC1tYXJrZXIiIGRpcikpCisgICAgKGxl
dCogKChwcm9qZWN0LXZjLWV4dHJhLXJvb3QtbWFya2VycyAnKCJwcm9qZWN0LW1hcmtlciIp
KQorICAgICAgICAgICAocHJvamVjdCAocHJvamVjdC1jdXJyZW50IG5pbCBkaXIpKSkKKyAg
ICAgIChzaG91bGQgKGVxdWFsIChwcm9qZWN0LW5hbWUgcHJvamVjdCkKKyAgICAgICAgICAg
ICAgICAgICAgICJiYXJiYXoiKSkKKyAgICAgIChsZXQqICgocHJvamVjdC12Yy1leHRyYS1y
b290LW1hcmtlcnMgbmlsKQorICAgICAgICAgICAgIChwcm9qZWN0LXZjLW5vbi1lc3NlbnRp
YWwtY2FjaGUtdGltZW91dCAwKSkKKyAgICAgICAgOzsgTm8gY2hhbmdlLCBldmVuIGlmIHRo
ZSBjb3JyZXNwb25kaW5nIGNhY2hlIGV4cGlyZWQuCisgICAgICAgIChzaG91bGQgKGVxdWFs
IChwcm9qZWN0LW5hbWUgcHJvamVjdCkKKyAgICAgICAgICAgICAgICAgICAgICAgImJhcmJh
eiIpKSkpKSkKKworKGVydC1kZWZ0ZXN0IHByb2plY3QtbmFtZS08dmM+LW9iZXlzLWNhY2hl
LWludmFsaWRhdGlvbiAoKQorICAiQ2hlY2sgdGhhdCBwcm9qZWN0LW5hbWUgY2FjaGUgb2Jl
eXMgaW52YWxpZGF0aW9uIGluIHByb2plY3QtdHJ5LXZjLiIKKyAgKHNraXAtdW5sZXNzIChl
cSAodmMtcmVzcG9uc2libGUtYmFja2VuZCBkZWZhdWx0LWRpcmVjdG9yeSkgJ0dpdCkpCisg
IChwcm9qZWN0LS1jbGVhci1jYWNoZSkKKyAgKGVydC13aXRoLXRlbXAtZGlyZWN0b3J5IGRp
cgorICAgICh3cml0ZS1yZWdpb24gIigobmlsIC4gKChwcm9qZWN0LXZjLW5hbWUgLiBcImJh
cmJhelwiKSkpKSIKKyAgICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAgICAg
KGV4cGFuZC1maWxlLW5hbWUgIi5kaXItbG9jYWxzLmVsIiBkaXIpKQorICAgICh3cml0ZS1y
ZWdpb24gIiIgbmlsIChleHBhbmQtZmlsZS1uYW1lICJwcm9qZWN0LW1hcmtlciIgZGlyKSkK
KyAgICAobGV0KiAoKHByb2plY3QtdmMtZXh0cmEtcm9vdC1tYXJrZXJzICcoInByb2plY3Qt
bWFya2VyIikpCisgICAgICAgICAgIChwcm9qZWN0IChwcm9qZWN0LWN1cnJlbnQgbmlsIGRp
cikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKHByb2plY3QtbmFtZSBwcm9qZWN0KQorICAg
ICAgICAgICAgICAgICAgICAgImJhcmJheiIpKQorICAgICAgKGRlbGV0ZS1maWxlIChleHBh
bmQtZmlsZS1uYW1lICIuZGlyLWxvY2Fscy5lbCIgZGlyKSkKKyAgICAgIChsZXQqICgocHJv
amVjdC12Yy1ub24tZXNzZW50aWFsLWNhY2hlLXRpbWVvdXQgMCkKKyAgICAgICAgICAgICAo
cHJvamVjdC1mcmVzaCAocHJvamVjdC1jdXJyZW50IG5pbCBkaXIpKSkKKyAgICAgICAgOzsg
U2FtZSBwcm9qZWN0IHJvb3QuCisgICAgICAgIChzaG91bGQgKGVxdWFsIHByb2plY3QgcHJv
amVjdC1mcmVzaCkpCisgICAgICAgIDs7IEJ1dCB0aGUgbmFtZSBpcyByZWZyZXNoZWQuCisg
ICAgICAgIChzaG91bGQgKG5vdCAoZXF1YWwgKHByb2plY3QtbmFtZSBwcm9qZWN0KSAiYmFy
YmF6IikpKQorICAgICAgICAoc2hvdWxkIChlcXVhbCAocHJvamVjdC1uYW1lIHByb2plY3Qp
CisgICAgICAgICAgICAgICAgICAgICAgIChmaWxlLW5hbWUtbm9uZGlyZWN0b3J5CisgICAg
ICAgICAgICAgICAgICAgICAgICAoZGlyZWN0b3J5LWZpbGUtbmFtZSBkaXIpKSkpKSkpKQor
CiA7OzsgcHJvamVjdC10ZXN0cy5lbCBlbmRzIGhlcmUK

--------------hdBtLWeu60EhSTywxRIKILCJ--




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

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


Received: (at 81317) by debbugs.gnu.org; 29 Jun 2026 15:32:46 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 29 11:32:46 2026
Received: from localhost ([127.0.0.1]:38731 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1weDyW-0007Uf-1y
	for submit <at> debbugs.gnu.org; Mon, 29 Jun 2026 11:32:45 -0400
Received: from mout-p-103.mailbox.org ([80.241.56.161]:51516)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1weDy3-0007RF-ER
 for 81317 <at> debbugs.gnu.org; Mon, 29 Jun 2026 11:32:20 -0400
Received: from smtp1.mailbox.org (smtp1.mailbox.org
 [IPv6:2001:67c:2050:b231:465::1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-103.mailbox.org (Postfix) with ESMTPS id 4gpqyb5lG7z9t4r;
 Mon, 29 Jun 2026 17:32:07 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1782747127;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=cezjbhwf1ZCdrDl7+SdyBEPAxlw5UTXuith/7ztv6j0=;
 b=wKPmDmIM8ZLfqZxK/7lPOj76uPP3tgWhPWK1KyUTLXGxNXhIXPDOWUMtvE9epPUKdyJ67o
 P7QJD8MTmMLWzw3xMN8deRJJ49TULgx9CKFKqAS4epQyfXPKxnDn+ivFHtTQnclz2nmomN
 CpEUFln3CBo7CDJC1jPKuntTRr/9NHKgzKXjxFfukaC6W2d2epUPSQ4WGRm+2AGAz/k1LV
 48jqpEs2Mi1MEOzdrxSqCFiJaW9zu/i4RBpbmI/Ar3yPSX4TbYXwSpsCoC2lwlCEvPGgwn
 9Hf2Or2DN9/xTSFvOL5F3dcgir8VPRqwhDg6nY9iWHU7UUasvWfIWlSnb4sr7g==
Authentication-Results: outgoing_mbo_mout; dkim=none;
 spf=pass (outgoing_mbo_mout: domain of juri@HIDDEN designates
 2001:67c:2050:b231:465::1 as permitted sender) smtp.mailfrom=juri@HIDDEN
From: Juri Linkov <juri@HIDDEN>
To: Dmitry Gutov <dmitry@HIDDEN>
Subject: Re: bug#81317: project-vc-cache might be too optimistic
In-Reply-To: <e81edb33-1ad9-4a8e-8626-c99ee7fbf509@HIDDEN>
Organization: LINKOV.NET
References: <989c9c54-af5d-4e23-961f-a136cdbc2ab1@HIDDEN>
 <a720fc51-7af6-40bb-a9d5-a7d664ca72df@HIDDEN>
 <714c8722-e623-49f3-a7f3-04d45c99b3c8@HIDDEN>
 <87v7b2srg9.fsf@HIDDEN>
 <e81edb33-1ad9-4a8e-8626-c99ee7fbf509@HIDDEN>
Date: Mon, 29 Jun 2026 18:09:48 +0300
Message-ID: <87bjct765v.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Rspamd-Queue-Id: 4gpqyb5lG7z9t4r
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 81317
Cc: Spencer Baugh <sbaugh@HIDDEN>, 81317 <at> debbugs.gnu.org,
 Sean Whitton <spwhitton@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.7 (-)

>> 4. Use a dynamically bound variable to specify
>> the preference like
>>    (let ((project-vc-cache 'essential))
>>      (project-current))
>
> How do you see it combined with the existing conditions? As 'and' or 'or'
> or replacing them?

Probably it should override other conditions for simplicity.

> Speaking of the last part, it might be non-intuitive that caching in
> 'project-current' and 'project-name' are decided by different conditions,
> even though they usually appear in code together. Maybe we could make
> 'project-name' always use the longer cache, leaving "essential"
> invalidation up to 'project-current' when appropriate (*). That could
> simplify things.

This means to change caching for 'project-vc-dir-locals'
in 'project--value-in-dir'?




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

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


Received: (at 81317) by debbugs.gnu.org; 29 Jun 2026 01:43:11 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 28 21:43:11 2026
Received: from localhost ([127.0.0.1]:60961 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1we11j-0007cK-78
	for submit <at> debbugs.gnu.org; Sun, 28 Jun 2026 21:43:11 -0400
Received: from fhigh-b5-smtp.messagingengine.com ([202.12.124.156]:35013)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <dmitry@HIDDEN>) id 1we11f-0007bj-2e
 for 81317 <at> debbugs.gnu.org; Sun, 28 Jun 2026 21:43:09 -0400
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 9FA6E7A005F;
 Sun, 28 Jun 2026 21:43:01 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-02.internal (MEProxy); Sun, 28 Jun 2026 21:43:01 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-transfer-encoding:content-type:content-type:date
 :date:from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to; s=fm3; t=1782697381;
 x=1782783781; bh=gbTehSH5sfjoN3yJwl1JmqFX7+iRtwQPdj9FvdX1JM4=; b=
 B79uo5a3CUQMEbRP7FB437hw5sQ4zMK2XhBqO6AlhMXyZ7nrdKCgtIVWvdue0Nhp
 XBn6+L7tKk8Ecc2LU8NESl5pCfabPcGhWNA/M/BQFekAMh8VkTwpiw9dcWN7avA3
 6MadjQn6PYjGlaWjpgfsCqm3UeUjLIQodQw6VktF1mi9bl3kxknrm7AuZJVCvOs/
 8jtZx9PvI15cGznhhIAuL4fe1/MohxAW4AUVLZsZNasYSB7lwVmYIcOvaBqN44Xb
 R9SEsOXDgRou8OhXZfaHj9/mIEF81zkwXMy7Ly8FJH+xCTw1p9PxUPeAcu6hgEGr
 /fAO6RSzZTOL8OkP0fUfPQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1782697381; x=
 1782783781; bh=gbTehSH5sfjoN3yJwl1JmqFX7+iRtwQPdj9FvdX1JM4=; b=g
 5qLJ3tnAjk7a77qSVkcxbDsawAzjDTI0yRH9C+0mY6eIAQPDJk7T0tgoUcRdvGUF
 Jf7tRnLGmC/lpB/+c6VWgBxOIRl7rkHXssGBWwvMGfc4Xrh8Fnmc5j8vUQu3bajJ
 RC6GkOEOix+64GK69ek2kbnaY5WivrPJNqObXlwjyJmt27b0VH6nCOcQQbBKAZQe
 w37sH75Zg7zbiTrjvcuIXPYnI01OjzCGqvzyOv2SmTEjkORPZvEL5JsDrRPElXGP
 /0cwerUwPCmj4OxQ+VkhrvfrORtpLT1gpX1k1/TUY7aBcfPCyRbhFAeHXi7GyrdJ
 CyvHeRZzT5T7CZr7xITsg==
X-ME-Sender: <xms:pc1Bag4A871k02PtODvYzxAvp49_-Yn4pc0CYtB4K-yZokMdKwfYAw>
 <xme:pc1Bao5amsYjZCNgtO4ESUymsJ1IEDLmlbH2hHyauKrgPbJwPQx-X2S5DCBkM_iqH
 E2onYdMeF5aNTaBYR1ygpwdzzXU7Lx2t8huKatjtwjqKCvAC2Hc8Sjz>
X-ME-Received: <xmr:pc1Bakcw5kkzR4rMZvG-NTUDmRP0BVEdF7_Aqvx8p_TGBcQSJJR0cZ6qbg7FWlu5bIjt>
X-ME-Proxy-Cause: dmFkZTFlqo/CGHd/fH4EKIyVcxcvEdi2LE8KJbScRA4Bgll01UmAwGLCddYKV6Mh7ArGhF
 uUrTuI9pKhH7QUURemTSLiShx7rZRdAf4SI03WdVqFwBdJlyHdOiLG62ApKlHeLpmFVwWf
 Feit/8pqVwlsewcxYZaJjixIxJ+NaxrCQYVwke5a8nbLm4yd6zVU2AYR4R0O/KTAwXPbgD
 SDUv9Uyzxg4EMgX4ia++skgBH9aeBcObtkqhhuokIao59CFryz02baO4xO8Y/k77uh1HeH
 7yHzqRCESRuAx8pw4LLkgErCimRWKPQ/UCU6Gnjkf1RhJ+wZZTPZ34+ZJ01u6VdyDsw2fx
 H4h8agP3/HWdjQZTbqMaj6WTiC40nfQ8QMBKQ4QECqXAPp51UniFZZvqbveeygY0/KvlUH
 9Vtm7FARBgYOV6XrqZLpxkwLeaovedg9rQkL8rDEpCSb3X9h1Bs/cFIusO+6ipzqGXNLs6
 wIZjnuuvUjC6MU0a1AEomQcBqIZPSMk1druzrpJOUbzUIiqjo9nGFqOpGIrvoC0srSwCxO
 SD4ONgvkOXEiXnYrJMg9QV9m7s4yzFNBxNDk+C/vZz1JYJ2uopljkK7MWBj+zJVvqKvmvn
 CfvgZ5+WU+z2IiT4oGa16n1A0U7wyIQ5StZIpr0HI3oM8v9ro2rP3y19IplQ
X-ME-Proxy: <xmx:pc1BakBm9jKAAii2nQp-o14VBaUBrsV2c3BBoFesxLnGIflgKWJtgg>
 <xmx:pc1Bav8-CIPdKL-8CLGILp0Mve8BQLOyQyffzbZATxVSyh9WkmCAkg>
 <xmx:pc1BanI6xrZkF1qT9mX3-zlIcTbdSgo0xQA5UXZqKPnO_KHU0sIy0g>
 <xmx:pc1Baghi7C8cMa4WCEEpqnbTmC3Dn8yEsH1fHDy-cPWKGQifCQ1dTw>
 <xmx:pc1Baj_VZiUxt-imvXjjej19W5N82AFHDApLvYzRXK82PJgohd85qFly>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun,
 28 Jun 2026 21:42:59 -0400 (EDT)
Message-ID: <e81edb33-1ad9-4a8e-8626-c99ee7fbf509@HIDDEN>
Date: Mon, 29 Jun 2026 04:42:57 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#81317: project-vc-cache might be too optimistic
To: Juri Linkov <juri@HIDDEN>
References: <989c9c54-af5d-4e23-961f-a136cdbc2ab1@HIDDEN>
 <a720fc51-7af6-40bb-a9d5-a7d664ca72df@HIDDEN>
 <714c8722-e623-49f3-a7f3-04d45c99b3c8@HIDDEN>
 <87v7b2srg9.fsf@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <87v7b2srg9.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 81317
Cc: Spencer Baugh <sbaugh@HIDDEN>, 81317 <at> debbugs.gnu.org,
 Sean Whitton <spwhitton@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.7 (-)

On 28/06/2026 18:12, Juri Linkov wrote:
> Let me add another variant:
> 
> 4. Use a dynamically bound variable to specify
> the preference like
> 
>    (let ((project-vc-cache 'essential))
>      (project-current))

Thank you, indeed, instead of using an existing argument we could add a 
new variable.

How do you see it combined with the existing conditions? As 'and' or 
'or' or replacing them?

The main constraint I've been considering is how to keep the existing 
code not regress in performance unless necessary, since the previous 
behavior was "cache all indefinitely". So if we "guessed" the existing 
usage patterns right, most of the future callers as well wouldn't have 
to study what affects cache longevity.

But if we decide that this isn't working, moving to an opt-out hint 
through a dynamic variable seems fine. If combine it the conditions 
OT2H, the corresponding doc gets correspondingly longer (we have the 
effect of MAYBE-PROMPT, and the interaction with 'non-essential', and a 
new variable now).

Speaking of the last part, it might be non-intuitive that caching in 
'project-current' and 'project-name' are decided by different 
conditions, even though they usually appear in code together. Maybe we 
could make 'project-name' always use the longer cache, leaving 
"essential" invalidation up to 'project-current' when appropriate (*). 
That could simplify things.

(*) The only counter-example I can think of is if some caller saves the 
value returned by 'project-current' to a longer-living variable and then 
expects 'project-name' to refresh. But that's pretty contrived.




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

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


Received: (at 81317) by debbugs.gnu.org; 28 Jun 2026 15:24:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 28 11:24:31 2026
Received: from localhost ([127.0.0.1]:59390 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wdrMy-0000GT-PC
	for submit <at> debbugs.gnu.org; Sun, 28 Jun 2026 11:24:31 -0400
Received: from mout-p-201.mailbox.org ([80.241.56.171]:60484)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1wdrMu-0000FR-Al
 for 81317 <at> debbugs.gnu.org; Sun, 28 Jun 2026 11:24:25 -0400
Received: from smtp202.mailbox.org (smtp202.mailbox.org
 [IPv6:2001:67c:2050:b231:465::202])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-201.mailbox.org (Postfix) with ESMTPS id 4gpCqz6CCSz9th0;
 Sun, 28 Jun 2026 17:24:15 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1782660255;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=bHnMjK7Me1rNFMfUqfFxPU+Kr37GatmtkEvz5HH1MGA=;
 b=EvT8JYEGPErMfGmppuTQeYroh5cERksh908U1hPpvYZbe+oBchMh8g7qOBEVLMsGyd9nIt
 3Zl4pCD9J3GL0g6O+Q4kzKck9OL5FZff3U9v2NaraLLSVoV4kp1ee6l1XLeLBE+PghUn6F
 N+mX2B5GshCnpPLjDMrkBvTpcv/855pGsMxHy7ST3aj5DElQFV0Gqr4WwGmpJwsRdxmur/
 kDWJXBz6yK0ZmxwoahG879ZTibnURFRIP1145W5WwW9S28NUrU2Zu9WuHmsGPet2ghSwOM
 Va5Mz4JpLjxoTnPI3KQi5ST6m7VCbiXdOW2s3vJuwazJ1ctYdeaTP4NDaqjADA==
Authentication-Results: outgoing_mbo_mout; dkim=none;
 spf=pass (outgoing_mbo_mout: domain of juri@HIDDEN designates
 2001:67c:2050:b231:465::202 as permitted sender)
 smtp.mailfrom=juri@HIDDEN
From: Juri Linkov <juri@HIDDEN>
To: Dmitry Gutov <dmitry@HIDDEN>
Subject: Re: bug#81317: project-vc-cache might be too optimistic
In-Reply-To: <714c8722-e623-49f3-a7f3-04d45c99b3c8@HIDDEN>
Organization: LINKOV.NET
References: <989c9c54-af5d-4e23-961f-a136cdbc2ab1@HIDDEN>
 <a720fc51-7af6-40bb-a9d5-a7d664ca72df@HIDDEN>
 <714c8722-e623-49f3-a7f3-04d45c99b3c8@HIDDEN>
Date: Sun, 28 Jun 2026 18:12:06 +0300
Message-ID: <87v7b2srg9.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Rspamd-Queue-Id: 4gpCqz6CCSz9th0
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 81317
Cc: Spencer Baugh <sbaugh@HIDDEN>, 81317 <at> debbugs.gnu.org,
 Sean Whitton <spwhitton@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.7 (-)

> Thoughts?

Thanks for the extensive analysis.

Let me add another variant:

4. Use a dynamically bound variable to specify
the preference like

  (let ((project-vc-cache 'essential))
    (project-current))




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

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


Received: (at 81317) by debbugs.gnu.org; 27 Jun 2026 14:18:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jun 27 10:18:33 2026
Received: from localhost ([127.0.0.1]:52626 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wdTra-0002kz-Nm
	for submit <at> debbugs.gnu.org; Sat, 27 Jun 2026 10:18:33 -0400
Received: from fout-a7-smtp.messagingengine.com ([103.168.172.150]:59001)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <dmitry@HIDDEN>) id 1wdTrW-0002kH-37
 for 81317 <at> debbugs.gnu.org; Sat, 27 Jun 2026 10:18:28 -0400
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfout.phl.internal (Postfix) with ESMTP id 631CAEC02FB;
 Sat, 27 Jun 2026 10:18:20 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-06.internal (MEProxy); Sat, 27 Jun 2026 10:18:20 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-transfer-encoding:content-type:content-type:date
 :date:from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to; s=fm3; t=1782569900;
 x=1782656300; bh=7qbKzchec1tJ7gKsWu2jJM6F/oW91eMtMU96YGmcEiA=; b=
 VCYjpI5IdkaaB3+aXu1ZGy/rPClwzarq91PUKN+epqmvWmXSTd0YqsHwcPmaQENJ
 bDUL+K3OXXN8ll31sjzSy8rtLt8UpmagIJOsCcAx+E8TMxfqCcEiJOy3mkiMGjGF
 Ix6fqfLg/uVZCNR1yuAF6/CHvlfJriNJiCBoyznAfy/PkcD8m5WWw+cvPllNpjlC
 sVdG1hOdCn1gVHj3bfhhXRT0Zsh4POjMspb3txF0ngSwZAVi9kUi6KvCcsyH71Te
 94TAM9GxCkzqnkR5T9PtxnaTvSXlGkZvY/vg0s0cBMQ2MDfeIlMFjO45ChTPp3dU
 ZF1Aik+CnAlQbBo4u7HFRg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1782569900; x=
 1782656300; bh=7qbKzchec1tJ7gKsWu2jJM6F/oW91eMtMU96YGmcEiA=; b=L
 HsMWKS6sIPPo7BRyHoqh2QvZDLHNEYQgys0+rU2ShcmCmMq/R7aBbpHKrUH0gaAj
 AH0NAqfhJfKWJ5veTgk729052Ag7L3ifNFAXlkp505cLcsOBcbOhFS/zKQMVz/pX
 nvR9TqMrTFYyfgyMO1X3ceQwqZojZjVtDNjzHGmrBZ4a2CavTEbFf0QPQMmCmzM9
 YsUXpm+BzhJuBkzKyHVCwmiOwpbpT67rYjuPxL6in28AAGxsVGN/QaRnPM9SwCvZ
 /bXdmUzvm06xybvIiQy02LRpn6CA0f7I4uhaT9lZrwENwrJ8asp5P423o1IEP6G5
 cIN9imWHNSoAXFz1KJO6A==
X-ME-Sender: <xms:q9s_ai7MCTXYZHjUMbrMR1jIBSBJHo8BaZOBnMVclH9UEqvrqa9YFA>
 <xme:q9s_ai4ENOS1pCzCZTd-Mhl561O0B-a70l8DkAfNANOHhs3bS7qZvSrqEH36CTLrG
 --t-fufTwDnzo3Hbi84Wa-TFRIiw0_V3Ml6AVPyrASRPP8hr2vm1Q>
X-ME-Received: <xmr:q9s_amcpORIDHpe7irIiTavKH9m6cQ_2V4ng454T7xIQxcwzt_ddU39ndfNvlguuV3rD>
X-ME-Proxy-Cause: dmFkZTF1LApVjjpuRZ9QvpBiezMo+di/Gz5LTJ+UVEcoAj2yIsS2w69av1bO60OhVAzb7q
 vn+bzAlb/qYSg2ydRW/TT2QnDL/QNd9HiAi0qzfJNybEiccdV2gGKsBeNlTO2FggQz93Mw
 ZDjEbGyTqD8WEUZiZEOs5yISIsO2ttGErSNkkgQOEBf4QphuhODWi8/qRci58273PgboT7
 77a190QKMhoCTUBcNkGauhNzjH5tV6eJ4COpdL5yWwdewCkDTgi3kCKby/y3ytf6tD95n8
 Mcy5dg54oRbt37Ysy2YXXrx2lvYIH3p8J7ccCSPkONWXBxfEZL4YogFv/DYp5Usn1Qc+sw
 EtlkEiVR0sJA8jC0Xzj46b9P8LZfPiPuHndvn2f0T0Aa3lWoAaRtQWJKCcO7jng/zzOojl
 IIE3fIZlukDdJtKwvg3LhDJlnVXms0405wpiydGkTVJE7tP681snkFS6Er0iusPCLuS9eK
 MYmRH0yWx5a4xPULlzT15jZsba5hgHZ85BsMRtoGf58bQed12kGtt5HZTJjJVBMBfPIXs1
 JwV4x4nMcLlAPgcEbFKHk7NwFWEP6HM3biyDXyhVyEvzMn0M3npG9jDXohhcyE1lE0fjML
 9+UJIHxzdtz3fGT9ikKH+sxaOHBz157zY+0mJ3f3Hw9YSJx8ITaEAWBNDf7Q
X-ME-Proxy: <xmx:q9s_auA4nXOVD-9MplFsrHGOpW4WcHcCAkMAzlUVRFXTdqAZ9l01pw>
 <xmx:q9s_ah-ty9YfbIvbmQZKMXG7nxFO8g3c4t3qDUGAvnpRx5QZnDkcrg>
 <xmx:q9s_ahLebDv4qmIdxY5xtHh8LBYjX1WS-G2Yu033TosjSLfX2-K4vw>
 <xmx:q9s_aijNYfklsDscd88osvOgpg4kD0CjAhAgrGOvYdXFr5YXLQhZpQ>
 <xmx:rNs_al92oIgFDafGo-PXvKgySRkzzRnLF5TU3Ls_OBrs_d17xS_vnfRK>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
 27 Jun 2026 10:18:18 -0400 (EDT)
Message-ID: <714c8722-e623-49f3-a7f3-04d45c99b3c8@HIDDEN>
Date: Sat, 27 Jun 2026 17:18:16 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#81317: project-vc-cache might be too optimistic
From: Dmitry Gutov <dmitry@HIDDEN>
To: 81317 <at> debbugs.gnu.org
References: <989c9c54-af5d-4e23-961f-a136cdbc2ab1@HIDDEN>
 <a720fc51-7af6-40bb-a9d5-a7d664ca72df@HIDDEN>
Content-Language: en-US
In-Reply-To: <a720fc51-7af6-40bb-a9d5-a7d664ca72df@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 81317
Cc: Spencer Baugh <sbaugh@HIDDEN>, Juri Linkov <juri@HIDDEN>,
 Sean Whitton <spwhitton@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.7 (-)

On 27/06/2026 17:03, Dmitry Gutov wrote:
> 
>    (B2) Materializes stale result into longer-lived state
> 
>    project-uniquify-dirname-transform: (*)
>      (if-let* ((proj (project-current nil dirname)))
>          (let ((root (project-root proj))
>                (non-essential t))
>            ...
>            (project-name proj)
>            ...))
> 
>    lsp--suggest-project-root:
>      (when-let* ((project (project-current)))
>        (project-root project))
> 
>    lsp--try-project-root-workspaces:
>      (unless (-contains? (lsp-session-folders session) project-root)
>        (cl-pushnew project-root (lsp-session-folders session))
>        (lsp--persist-session session))
 >
 >    ...

If we agree that the effect on the callers from B2 is a cache that's too 
long/optimistic, one of the below could help. Or *insert your version*.

1. Make the DIR argument to project-current also imply "essential". Then 
all callers which specify the directory explicitly would usually refresh 
the cache (but with debouncing as it's now implemented).

2. Add a new possible value to MAYBE-PROMPT? Which would not actually 
prompt but would enable the shorter cache.

Both 1 and 2 create an opt-out mechanism (out of the longer cache) to 
request the "fresh" project instance.

Alternatively:

3. Delete the non-essential binding in project-current which is based on 
the value of MAYBE-PROMPT. This would regress the capability added in 
bug#69584 (could be handled another way, but -- breaking change) and 
require all callers to opt into the "longer" cache instead by using the 
explicit binding of non-essential.

Thoughts?

Opt-out approaches should result in more callers reusing the cache 
without a second thought (free performance). Opt-in puts it all in the 
hands of the caller, not relying on us to anticipate all usage patterns.




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

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


Received: (at 81317) by debbugs.gnu.org; 27 Jun 2026 14:03:22 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jun 27 10:03:21 2026
Received: from localhost ([127.0.0.1]:52578 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wdTcs-0001GL-Uy
	for submit <at> debbugs.gnu.org; Sat, 27 Jun 2026 10:03:21 -0400
Received: from fout-a5-smtp.messagingengine.com ([103.168.172.148]:43261)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <dmitry@HIDDEN>) id 1wdTcn-0001FA-0K
 for 81317 <at> debbugs.gnu.org; Sat, 27 Jun 2026 10:03:15 -0400
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfout.phl.internal (Postfix) with ESMTP id A7E54EC02B6;
 Sat, 27 Jun 2026 10:03:07 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-05.internal (MEProxy); Sat, 27 Jun 2026 10:03:07 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-transfer-encoding:content-type:content-type:date
 :date:from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to; s=fm3; t=1782568987;
 x=1782655387; bh=OZPJFB4trmF+PfgAu07tAbDAjzSsziY7+BIbHD00SF0=; b=
 FLJF5b3JhCOtKM7ZhehiTn9Wbd9ug+BeNoEjT4rPhNDxFU2CbmYyV4WZpKqMR6yM
 v3LkvRPsuZ+lnCflyby3j65QJHv6UYQ0rT1qvm926LUxX3MdKAtqr/YyXmZhfAza
 sbErG3a4NZddJ8qF26jB7s3QeBdJGhRu4KZ+4a+15MNOtZfx5PU64WI+BqCIricV
 E1iWse2I+1yiLqWw27I5bgc0ia6Le/2raOvFB92m6HcYHqxHBfAZ/WBIs2jHcZq9
 QSXXhrE9fhGHv9Z00sfi248tmL4uslvF/f1JqVxbQafSWx49VMMqei8tqGhhQfCI
 fHUcQpGE6TeoExpDhdlcsQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1782568987; x=
 1782655387; bh=OZPJFB4trmF+PfgAu07tAbDAjzSsziY7+BIbHD00SF0=; b=c
 rjJu8uvnG+vQ0vMVOyiayrojtbXOXEmM3cZD/ynn3QTfsTUSeX1BiCMrxDgY0C6s
 Uaz8xc4IVk2f8/c2wdur+TzZjskz1ndUjb8AKZnnNAxnExy2TzpYv6reyMOkcl74
 X88SsxNagGczHY6hysevSPr6lP4iGtUx4lIwhLOAE4H1tuG15az67kqKRQv9O4ua
 35Pxywx7vRFP0+8O+QGT3CPkEY7AczqpIKSmdhy1Pr9GgWRa2JAY9r2B9Anp6SqN
 I+GYVw2EicYv612JrZAfhdk08/6/Gb5nQyhEs62eYq0TOoYecSwVJbnwjn7OJ7Lk
 cQrXw9eqKOB1dVLlz9vcA==
X-ME-Sender: <xms:G9g_aqaySOP8kJfjZ8jO01QPI5MWqbBxDhxIM4Mx80X0mVxByb4snQ>
 <xme:G9g_akb1qx6oFFvM-ESQG-iKBwBAeyVD7u9p5qos2H4Jsv45dbmCDvqgtxA_wILij
 P9r9lqmFvjRFCe2jjeJ8SGyzyjuv9V5lVQKx1rWdCTH5G3ddv0jsFI>
X-ME-Received: <xmr:G9g_ap9gBsxbGo3HFpUDO4cEqmHYBW1sadHGvWNZlGwIc1ff-8tM6u9KDFXarhqzi7xW>
X-ME-Proxy-Cause: dmFkZTGxjD29nHa4h2cR+pkXcvvDxBLLJm63qCV2aQ32dkwASma75Xfz8OI5IwKhrXGdyd
 +LTPQ342U/mdaXtg05iZV/OV/w/hsAlFICYT/3nTUaspgsfpb9Ax0ZaoHas5K3wyipjdqs
 C7wRu/4ovCYYTzqS7DG/gLLF6KVZm1uQddo+YH/5nn2Xqj1ZmYWQ7MSy0odCoISbiCO1KP
 NsywY319lwIr6cdhZme9oU6vmICVhw2JESD+bNVgOSUV4RUt+7wn4FuSaRzCc+4++Hdcf1
 vwJXeGtgfR7lV9Vk7tD6+r8LZ/7ZwatOjTioB9Eb/zTb/qDbrgymr0kX7u9++8BM8Rl3iB
 QuzZzX3BcTP+rvNl8IOFg0jQGuMvlOAh/JaCGx4G9LYvzynK/5uWRGb9r9LHKVcgXs45yX
 MXrALZYN5+HP9qBtvtxG7fffssF74p1ZulGgTKInjxN9QX553sFNNaPl6huHAkLaJoCo55
 8nv3x72UzC2j3XZk07ce1kBGKJPLqO/B8PRfIpEv4Juokgv7by1iGbVtkNAiibaQXTazts
 1YB6JjjG+29B9wdAZFBdJGJeAfo3BpSL5mqkZL9L5P+rye2pNwxomM1jf2UJJmvx98FbrK
 x1bfmFFSYyF81Fo7dSnMNnaU/HfwRSiEhRwbNi+2ymcflULi81YKuMPRtIXQ
X-ME-Proxy: <xmx:G9g_argLOmfYvENbxW_y4Jtg1maOCSMzxH4yRQzLB7TMwoTktX_wcA>
 <xmx:G9g_aheDHyVqLRYlkp8lmvHfr6hiG85FvFwO7n76J2x55bOlgWxHZA>
 <xmx:G9g_aqrI-zfFxBg4suZcJVbtQf2rQSlPcar68l8wz35kRh678zdgHA>
 <xmx:G9g_auA_IP2dMDlpwTggr4HePf5YkkZKtfdS4PW8kLqgR6U0TDnsfw>
 <xmx:G9g_apfjLWhD2rfg6v6tR_8vLhpk6kjpFQariM3WOtFFzT-HRhs5saMn>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
 27 Jun 2026 10:03:05 -0400 (EDT)
Message-ID: <a720fc51-7af6-40bb-a9d5-a7d664ca72df@HIDDEN>
Date: Sat, 27 Jun 2026 17:03:04 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#81317: project-vc-cache might be too optimistic
From: Dmitry Gutov <dmitry@HIDDEN>
To: 81317 <at> debbugs.gnu.org
References: <989c9c54-af5d-4e23-961f-a136cdbc2ab1@HIDDEN>
Content-Language: en-US
In-Reply-To: <989c9c54-af5d-4e23-961f-a136cdbc2ab1@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 81317
Cc: Spencer Baugh <sbaugh@HIDDEN>, Juri Linkov <juri@HIDDEN>,
 Sean Whitton <spwhitton@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.7 (-)

On 27/06/2026 16:59, Dmitry Gutov wrote:
> Let's establish classification: A, B1, B2, C, *

Here are the callers from Emacs core and from the packages I have 
installed, sorted into these categories.

   (A) Explicit (project-current t) callers

   project-find-file:
     (project-current t)

   project-dired:
     (project-root (project-current t))

   xref-find-definitions:
     (project-current t)

   run-python:
     (let* ((project (and (eq 'project dedicated)
                          (project-current t)))
            (default-directory (if project
                                   (project-root project)
                                 default-directory))
            ...)

   magit-project-status:
     (project-root (project-current t))

   disproject-eshell:
     (project-root (project-current t))

   (B1) nil MAYBE-PROMPT, stale result recoverable by retry/restart/reopen

   eglot--current-project:
     (or (project-current)
         `(transient . ,(expand-file-name default-directory)))

   helm-grep--prepare-candidates:
     (project-current)

   counsel-projectile-rg:
     (project-current)

   disproject-default-find-line:
     (if-let* ((project (project-current)))
         ...)

   xref--find-ignores-arguments: (*)
     (project-current nil dir)

   vc-switch-working-tree: (*)
     (funcall project-find-matching-buffer-function
              (project-current nil (vc-root-dir backend))
              (project-current nil directory))

   (B2) Materializes stale result into longer-lived state

   project-uniquify-dirname-transform: (*)
     (if-let* ((proj (project-current nil dirname)))
         (let ((root (project-root proj))
               (non-essential t))
           ...
           (project-name proj)
           ...))

   lsp--suggest-project-root:
     (when-let* ((project (project-current)))
       (project-root project))

   lsp--try-project-root-workspaces:
     (unless (-contains? (lsp-session-folders session) project-root)
       (cl-pushnew project-root (lsp-session-folders session))
       (lsp--persist-session session))

   etags-regen--maybe-generate:
     (file-exists-p (etags-regen--choose-tags-file
                     (setq proj (project-current))))
     ...
     (setq proj (or proj (project-current)))
     ...
     (etags-regen--tags-generate proj)

   vc-add-working-tree: (*)
     (when-let* ((p (project-current)))
       (project-remember-project p nil t))
     (when-let* ((p (project-current nil directory)))
       (project-remember-project p))

   vc--prompt-other-working-tree: (*)
     (cond* ((bind-and* (_ allow-current)
                        (p (project-current)))
             (push (project-root p) trees))
            ...)
     (dolist (tree trees)
       (when-let* ((p (project-current nil tree)))
         (project-remember-project p nil t)))

   vc-move-working-tree: (*)
     (when-let* ((p (project-current nil to)))
       (project-remember-project p))

   project-prefixed-buffer-name:
     (if-let* ((proj (project-current nil)))
         (project-name proj)
       ...)

   (C) Repeated visual/background callers

   project-mode-line-format:
     (when-let* ((last-coding-system-used last-coding-system-used)
                 (non-essential t)
                 (project (project-current))
                 (project-name (project-name project)))
       ...)

   tab-line-tabs-buffer-group-by-project:
     (if-let* ((project (project-current)))
         (project-name project)
       ...)

   Buffer-menu-project:
     (if-let* ((project (project-current)))
         ...)

   bc--project-crumbs-1:
     with project = (project-current)

   (*) = explicit-directory probe, i.e. (project-current nil DIR).




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

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


Received: (at submit) by debbugs.gnu.org; 27 Jun 2026 13:59:57 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jun 27 09:59:57 2026
Received: from localhost ([127.0.0.1]:52560 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wdTZa-0000u8-Ub
	for submit <at> debbugs.gnu.org; Sat, 27 Jun 2026 09:59:56 -0400
Received: from lists1p.gnu.org ([2001:470:142::17]:55410)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <dmitry@HIDDEN>) id 1wdTZV-0000tR-7I
 for submit <at> debbugs.gnu.org; Sat, 27 Jun 2026 09:59:51 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <dmitry@HIDDEN>) id 1wdTZP-0002ht-Hn
 for bug-gnu-emacs@HIDDEN; Sat, 27 Jun 2026 09:59:43 -0400
Received: from fhigh-a1-smtp.messagingengine.com ([103.168.172.152])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <dmitry@HIDDEN>) id 1wdTZO-0000r1-04
 for bug-gnu-emacs@HIDDEN; Sat, 27 Jun 2026 09:59:43 -0400
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 5ED241400151;
 Sat, 27 Jun 2026 09:59:41 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-02.internal (MEProxy); Sat, 27 Jun 2026 09:59:41 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-transfer-encoding:content-type:content-type:date
 :date:from:from:in-reply-to:message-id:mime-version:reply-to
 :subject:subject:to:to; s=fm3; t=1782568781; x=1782655181; bh=Ly
 aYoV5C4VXRiq+aG/R8kT2FfUZ/67Sov8JMDnWvvx0=; b=XsjTP6KKMEYlfZZrq/
 a1zzH+B6MrGLreeC+hihxjIphxrvhQbyBq6icsACtX5dyJ87t55v/+q62ejE0eRT
 cF6GEg+S5fhCWOVMlumCSqr6hAOu4HMW1oiTvNWddbud6BjSgC/vcoRTuIu7PjrX
 5YIaCEWNtc7GwFAG01O3lmQJerkkwy1enHiSVLstByl9CDxPxwGk0KQyNuy90imW
 eEasfq6FYStUQuyGzlsldxVoKzdkM/vHeWGs8kItphnmj3sICF25+M4N0WPi4pMo
 OtQV/oHYwJ9hztajo1uwd/mwx5SRqgH55Ms9/MMmOcJgTszHH4EEievMNGlE7Kt3
 1yWg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:message-id:mime-version:reply-to:subject
 :subject:to:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
 fm1; t=1782568781; x=1782655181; bh=LyaYoV5C4VXRiq+aG/R8kT2FfUZ/
 67Sov8JMDnWvvx0=; b=ekJQ+FhkZbRbLRb9N04SfzyQ39v+YHvM3kI508eDL6Jw
 6t9KBd6nY8kKQS1c4xmcId4MM4prKN8mN7nQyYXPlWvkcCoBbNPc47TVCfbUemDt
 Iil369G7PcvfKAer6Ls2QJY1GAaFw0H+Ko2eW5Bg/bB6E95pEo0BJjc88mbajo6c
 n91zZ2RbzZOZuUTRf/UWrQPhQeF+YOJZAwKcp9Aza4yQTtim3LXJVcZTYWaNQm8D
 2qCigty4aOMdL8lTxVXMyJDSqQBIIVRBrVYzJuPUKEwAf6vW0GsrV46D9Y1JtC9r
 rocNJeHs5uR6Xx2ItXvq+YWKzJzC/0truFIAKDGTiQ==
X-ME-Sender: <xms:Tdc_aqd0clmmqJCy3FuGVDVCR9a2pwz3AFWcSscXvyA5xuRQbnqvmA>
 <xme:Tdc_akU2D1EmYY4ZcdmoR99YXo6ZLO1SKitvFBX9KBqrKE2O7Lv87APDim3GSciBS
 fOBeXdDghCKK0Xgoq8Q56BY5A37UDNO0_7hhNX-u4aKzyKCMlDJ_b6z>
X-ME-Received: <xmr:Tdc_ajcjq3kE9C1rzpwLYClJj64Tvuwa3xNvI-gpv3iTV0_jhpwzVyJphhwv2TiLAbr7>
X-ME-Proxy-Cause: dmFkZTEzAdgfOtG472AgWdLdAXcrJKABElwIzIozvtOvvXY0OaKNlpSiEE/3ji81QrPdIZ
 v3em3edxTOnOA7j3JoVZHdgncvHu+wS5vzNUArNx+Q2XHz8h0htqz0Bx6ijMfdS41yoPdS
 cBAE9qrZ8rXkFqN3kEf1RtzWU2GELxktwkdUzVU5gRjk+knbN8aL4HMtHf1hcj25R91P8v
 pgzVMKqtMjYmL2pv9Memmw1mq/CzXlNe4hF20IEqPVmDqnPN5btjRCCkWTUEYOcc/Utkgg
 4rbDZjSlXjFmNAddQ3y4VkIoClcQ8VlZeEAAVMphn0tfrQNef4Bb81Ujlh20KIKXgz4RZt
 n0KfQIW5V23ULL2R38x+PX7VDs6HtoLMc0ozYad0vTmsnF9OmKIdWX9oHrM7c2eDbwlaGD
 ouVxXs6vc+VT7dXlWiqi1OiwlPXaLvci2cklshTgbenX+uONT/txZJVcI9J5h/hlkFuQtT
 QvAxlMi4MzDsxvUqIZBH6Mv8KQzJ+OwrwZ2tQTCCSYHPB5Y9nkOTNODVYKx1qZsPe6rZ3/
 /pudsEhAtUvn8Xo8S5ccENWRYbDCMGjfT6HpNJWCVhqmQ29CTW0WolRdf1QjMzi5cW/fY1
 bHaSNKnVTm6rpYYLjpdrrMr+4igBH8i0l1096TQM1UmEtW5YeJwiBg3sEgPg
X-ME-Proxy: <xmx:Tdc_agMpZBuMam7O8DfUHdbE4S93-Xzyqcq36lAPzVxwPk-tqLQj2Q>
 <xmx:Tdc_ahg2LH0syNbMTQ6eqzTExbFTqyidDClsMavN2HX6LE1RbLYYbw>
 <xmx:Tdc_aj2mrIsEaoErUKnT5Z6iRm9NZGV5sxix3LKV-yWZs43KYqOadQ>
 <xmx:Tdc_arjLWmlq8Be-sLNU70Zrjq1Qh2hOZIIMY6vLtSSW_9ko3GQWvQ>
 <xmx:Tdc_ajccLxUBo84Dtgwqxpoljg0SeiqKg7ZUGICJglKOdeUg6ALSA050>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
 27 Jun 2026 09:59:39 -0400 (EDT)
Message-ID: <989c9c54-af5d-4e23-961f-a136cdbc2ab1@HIDDEN>
Date: Sat, 27 Jun 2026 16:59:37 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: bug-gnu-emacs@HIDDEN
From: Dmitry Gutov <dmitry@HIDDEN>
Subject: project-vc-cache might be too optimistic
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: pass client-ip=103.168.172.152; envelope-from=dmitry@HIDDEN;
 helo=fhigh-a1-smtp.messagingengine.com
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 0.7 (/)
X-Debbugs-Envelope-To: submit
Cc: Spencer Baugh <sbaugh@HIDDEN>,
 Sean Whitton <spwhitton@HIDDEN>, Juri Linkov <juri@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: -0.3 (/)

I'd like to revisit the project-vc-cache-timeout functionality added to
resolve bug#78545/bug#80265.

The improvement seems solid, the main complaints about excessive 100%
CPU use seem resolved, no further reports about stale cache, so whatever
drawbacks remain, they seem not very urgent.

Our "long cache" heuristic is imperfect, though. At the moment it
special-cases (project-current **t**) defaulting all other uses to the
longer cache. This is an attempt to examine the existing callers and see
which changes are possible and which calls could benefit. The smaller
change and the larger the improvement, the better, of course.

Let's establish classification:

* Let's call (A) the callers that explicitly call (project-current t).
   These are routed to the short cache today.

* Some callers (B1) use nil MAYBE-PROMPT, but stale results are still
   recoverable: refresh the project cache and retry the operation.  The
   retry cost varies.  Sometimes it is just repeating a command;
   sometimes it means shutting down and restarting a subsystem, or
   reopening a transient menu, or killing the created buffer.  This
   includes callers that pass nil MAYBE-PROMPT only because they want to
   do a different prompt, or handle fallback themselves, or avoid hard
   dependency on project.el.

* Some callers (B2) materialize the result somewhere that is not
   naturally retried by the user command that exposed the problem.  For
   example, a hook/lifecycle caller can leave a stale result in the
   global or buffer-local state somewhere.
   project-uniquify-dirname-transform is in this category: a stale
   project name can remain in existing buffer names until uniquify is
   triggered again (or one hunts all those buffers manually).

* And on the other end (C) are functions that are called repeatedly:
   from a timer or mode-line, where the cost of fetching the current
   project matters but accuracy is not crucial when the effects are
   largely visual. In practice that usually also means that refreshing
   the project cache using a command from A updates the results of these
   functions immediately (mode-line contents, etc).

* We can also annotate as (*) the callers of (project-current nil DIR).
   In theory this is orthogonal to the above categories, but all the
   cases in practice seem to fall into either B1 or B2.

Our current solution works best for A and C.  It satisfies B1 in the
sense that there is a retry workaround, though the workaround might not
be obvious to every user.  B2 is the least fit: stale results are not
easy to refresh without restarting.  And the line between B1 and B2 is a
bit blurry: it depends on how much manual effort we consider too
much. So depending on POV one could move more examples to it.




Acknowledgement sent to Dmitry Gutov <dmitry@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#81317; 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: Fri, 3 Jul 2026 15:15:03 UTC

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