Subject: RE: 24.0.50; Doc string of `lexical-binding'

From: "Drew Adams" <[email-masked]>
Date: Fri, 15 Jul 2011 07:01:10 -0700

> > It says that it "only applies to code evaluated by `eval-buffer' and
> > `eval-region'."  That is at best misleading.  `C-M-x' 
> > eventually calls `eval-region', but a user would not guess that the
> > doc string applies also to `C-M-x'.  It would perhaps be better to
> > characterize the situations where it does _not_ apply to code
> > evaluation.
> 
> True.  But I've, at least, changed the doc text to clarify that it
> doesn't "only" apply to these functions.

Good.

But it needs to somehow characterize what contexts it applies to and what it
does not apply to (when it has an effect or does not).

I haven't seen your fix, but it could be misleading to just mention `eval-*'
even if you remove "only".

> > It is also misleading in that it is sufficient to visit a 
> > file, such as `minibuffer.el', that has "-*- lexical-binding: t -*-"
> > in its first line, for the value to be non-nil and thus affect pretty 
> > much anything you do in that buffer.
> 
> The doc string says:
> 
> This variable is automatically set from the file variables of an
> interpreted Lisp file read using `load'.
> 
> Do you have a suggestion as to how to clarify this?

I think the problem was that sentence coming after the "only" statement.  The
impression was that it might well be set from file variables but it still "only
applies..." etc.

The end result needs to somehow characterize when it does and does not apply.