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

From: Katsumi Yamaoka <[email-masked]>
Date: Tue, 12 Nov 2019 11:28:20 +0900

On Tue, 12 Nov 2019 09:14:58 +0800, 積丹尼 Dan Jacobson wrote:
> ^H v w3m-command
>    w3m-command is a variable defined in ‘w3m.el’.
>    Its value is "/usr/bin/w3m"
>    Original value was nil

Please read the doc string for the reason why it is changed.

> User thinks:
> Hmmm, it was changed I see.
> Where did the change happen?
> Did it get changed in w3m.el? But that's where it was first defined. So
> it wouldn't have happened there.

w3m.el does it.  I don't know why the original author designed
it so to be changed from the default nil to a reasonable value
instead of making it default to it.  Anyway it will be changed
if and only if it was nil initially; you can set it as you like.

> He looks in .emacs . Wait, he doesn't even have a .emacs.
> He gives up.

> So you only tell him half the story.
> Either record at least the last place a variable was changed.
> Or don't tell him it was changed.

> emacs-version "26.3" .

> Yes, if he changed in by hand in his *scratch* buffer etc., even say that too.

I think it is very useful for debugging if I can see what changed
it and when it was changed, though I also think it would cost.