Subject: bug#5971: 23.1.95; `delete' modifies default value instead of buffer-local value

From: "Drew Adams" <[email-masked]>
Date: Mon, 19 Apr 2010 13:31:17 -0700

> > No, I do not know that. Where does it say that `setq' 
> > modifies the default value?
> 
> Stop being silly.  Which part of `by side effect' did you not
> understand?

Stop with the name-calling.

The question is, side-effect/modification of what object? Apriori, the
buffer-local value and the default value are separate Lisp objects.

If there is _no_ buffer-local value, then the default value is returned for the
var. But that does not mean that the buffer-local and default values are the
same. It means only that the variable has _no_ b-l value, so the default value
is used. And if the variable is set in the buffer, then it is _only_ the
buffer-local value that is set. That is the only thing the doc indicates. 

According to the doc, anytime the variable is set, it is the buffer-local value
(only) that is set. There is nothing in the doc that suggests that the
buffer-local value and the default value share the same Lisp object. On the
contrary, the impression given is that they are separate objects.

The only relation between them that is described is that one of them (default
value) is used as the var value if the other (b-l value) is not yet set. That
does not imply that they share memory in any way.