Subject: Re: bug#66117: 30.0.50; `find-buffer-visiting' is slow when opening large number of buffers

From: Gerd Möllmann <[email-masked]>
Date: Tue, 02 Jan 2024 14:28:51 +0100

Ihor Radchenko <[email-masked]> writes:

> Gerd Möllmann <[email-masked]> writes:
>
>>> (with-temp-buffer
>>>     ;; (setq-local eval-tests/buffer-local-var 'local-value)
>>>     (let ((eval-tests/buffer-local-var 'let-value))
>>>       ;; Let in a buffer with local binding does not change the
>>>       ;; default value for variable.
>>>       (should (eq 'let-value (default-value 'eval-tests/buffer-local-var)))))
>>
>> Here, temp has no local value, so the current value is the global one.
>> Let changes the global (current) value, and default-value picks that up.
>>
>> In both cases, I don't know if that's mentioned explicitly in some doc
>> string. It's the normal behavior of let with special variables (dynamic
>> variables). The current value that is set changes depending on
>> circumstances.
>
> AFAIK, this detail is not documented anywhere.

elisp.info, 12.10.2 Dynamic Binding has a bit.

(And, BTW, the doc string of let says it's a generalized variable?
Is that right?)