GNU bug report logs - #66117
30.0.50; `find-buffer-visiting' is slow when opening large number of buffers

Previous Next

Package: emacs;

Reported by: Ihor Radchenko <yantar92 <at> posteo.net>

Date: Wed, 20 Sep 2023 08:53:02 UTC

Severity: minor

Found in version 30.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #456 received at 66117 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Ihor Radchenko <yantar92 <at> posteo.net>
Cc: dmitry <at> gutov.dev, Eli Zaretskii <eliz <at> gnu.org>, mattias.engdegard <at> gmail.com,
 Stefan Monnier <monnier <at> iro.umontreal.ca>, 66117 <at> debbugs.gnu.org
Subject: Re: bug#66117: 30.0.50; `find-buffer-visiting' is slow when opening
 large number of buffers
Date: Tue, 02 Jan 2024 12:08:09 +0100
Ihor Radchenko <yantar92 <at> posteo.net> writes:

> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
>
>>>>>> C-h f default-value explains this:
>>>>>>
>>>>>>   Return SYMBOL’s default value.
>>>>>>   This is the value that is seen in buffers that do not have their own values
>>>>>>   for this variable.
>>>>>
>>> ...
>>> I am sorry, but I do not see how the docstring explains what is
>>> happening there. Because it is not clear what `let' does with the
>>> default value.
>>
>> Sorry for not being clear. What I wanted to hint at is the part of the
>> doc string that reads "that do not have their own values...", which
>> means that what default-value returns depends whether or not SYMBOL got
>> its own value in the buffer, and that depends on the presence of lets,
>> and so on.
>
> It is not how I read this. AFAIU, `default-value' returns the value that
> is used for buffers where the value is not explicitly set. Calling
> `default-value' from inside the buffer where the value is set does not
> change that global default value and should not change what
> `default-value' returns.
>
> And indeed
>
> (defvar-local yant/test 'default-value)
> (with-temp-buffer
>   (setq yant/test 'local-value)
>   (default-value 'yant/test)) ; => 'default-value

Maybe the documentation could be changed to be clearer, but I'm afraid I
don't know how, because I think it describes 100% what is happening: the
setq creates a buffer-local binding in the temp buffer, and
default-value returns the value that is used in the case that a buffer
does _not_ have its own value, which is the value set in the
defvar-local...




This bug report was last modified 1 year and 136 days ago.

Previous Next


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