Subject: Re: bug#38173: describe-variable: Also tell user *where* variable was changed

From: Phil Sainty <[email-masked]>
Date: Thu, 14 Nov 2019 11:56:39 +1300

On 2019-11-14 04:06, 積丹尼 Dan Jacobson wrote:
> PS> It still might not have the effect you wanted, though -- it's
> PS> possible to change the apparent / user-facing value of some 
> variables
> PS> without changing the *actual* value of the variable at all.  This 
> is
> PS> because of the internal structure of lists in lisp...
> 
> Sounds like a security / coverup risk. Maybe with the expensive
> global-variable-tracking turned on, describe-variable could double 
> check
> for such tampering upon looking up a variable.

It's not "tampering".  It's just the fundamental nature of lists in lisp
(all dialects of lisp, AFAIK).  You're only seeing it as a concern in 
the
context of a feature which doesn't exist.

It would, I think, be *dramatically* (perhaps prohibitively) more 
expensive
to perform that kind of checking.  This could no longer be done by the
variable-watcher mechanism.  In principle, every time ANY lisp object 
was
modified at all, Emacs would need to check to see whether the object 
(pre-
modification) was a value -- or a nested sub-component, to any arbitrary
depth, of a value -- of ANY variable in the system, so that it could 
register
that the change affected the user-facing value of that variable.

-Phil