emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Can't M-x compile-defun `edebug' because dynamic variables are false


From: Alan Mackenzie
Subject: Re: Can't M-x compile-defun `edebug' because dynamic variables are falsely taken as lexical.
Date: Wed, 4 Jan 2017 22:02:43 +0000
User-agent: Mutt/1.5.24 (2015-08-30)

Hello, Stefan.

On Wed, Jan 04, 2017 at 04:49:15PM -0500, Stefan Monnier wrote:
> > special-variable-p would appear to be a near useless function, since it
> > doesn't do what it's name says.

> It's useful for the compiler, but it's mostly internal, indeed.

OK.

> > There appears to be no way of checking whether a variable's binding is
> > (or will be) lexical.

> In which context do you need/want to do that (I ask because how to do
> it (and even if it can be done) depends on the details)?

I honestly don't know.  I presume that there will be code (other than
the byte compiler) which will want to make a distinction.  Maybe there's
not.  After (defvar foo), the byte compiler seems able to handle foo as
a dynamic variable.  I'm still trying to figure out how, given that that
flag denoting a special variable in the struct symbol doesn't get set.

I'm just thoroughly confused about the whole business of whether (defvar
foo) creates a special variable or not.  At the moment, I'm not even
quite sure any more exactly what a special variable is.  I knew this
morning.  :-(

>         Stefan

-- 
Alan Mackenzie (Nuremberg, Germany).



reply via email to

[Prev in Thread] Current Thread [Next in Thread]