Subject: Re: bug#54399: 27.2; Problems with (let ((custom-variable ...)) (autoload-function ...))

From: Ignacio Casso <[email-masked]>
Date: Wed, 13 Apr 2022 17:26:07 +0200

> When I say that `default-value` operates on the buffer-localness, I mean
> that the difference `default-value` and `symbol-value` only differ with
> respect to whether they consider a buffer-local value or not.
>
> They're both stuck in the current (i.e. most deeply nested) let-binding
> in either case.
>
> IOW, the choice between `default-value` and `symbol-value` lets you walk
> along the line between buffer-local and not-buffer-local, but it does
> not let you walk up the stack of nested let-bindings.
> Only `default-toplevel-value` lets you do that (and it only does that on
> the non-buffer-local part of the space: there is nothing like
> `symbol-toplevel-value` which would let you find the "top-level
> buffer-local value").

Thanks, I get it now. I didn't know that there were different stacks of
let-bindings for a variable, one for the default value, and another one
for each buffer-local value. I though that there were only the default
value, the buffer-local value for some buffers, and a common stack of
let-bindings that shadowed all of them.