emacs-devel
[Top][All Lists]
Advanced

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

Re: lexical-binding is turned on in more use cases


From: Alan Mackenzie
Subject: Re: lexical-binding is turned on in more use cases
Date: Sun, 8 Mar 2020 19:30:48 +0000
User-agent: Mutt/1.10.1 (2018-07-13)

Hello, Eli and Stefan.

On Sun, Mar 08, 2020 at 20:34:10 +0200, Eli Zaretskii wrote:
> > From: Stefan Monnier <address@hidden>
> > Date: Sun, 08 Mar 2020 14:20:05 -0400
> > Cc: address@hidden

> > We could say that to recover the original behavior, instead of

> >     --eval "<foo>"

> > the command could use

> >     --eval "(eval '<foo>)"

> And the same for M-:?

As it happens, this issue bit me this afternoon.  I instrumented a
function for edebug and tried

    M-: (c-align-cpp-indent-to-body)

.  This complained about c-syntactic-context being unbound, so I
tried:

   M-: (let ((c-syntactic-context (c-guess-basic-syntax)))
   (c-align-cpp-indent-to-body))

, and was puzzled that c-syntactic-context was _still_ unbound.  So I
checked the spelling, and was more puzzled.  Eventually I used setq,
which worked, but caused me further problems later on in my Emacs
session.

Furthermore, c-syntactic-context is explicitly declared a dynamic
variable by a defvar form.  So why did a dynamic binding not work?

THIS IS A MAJOR BACKWARD STEP FOR EMACS!!!!

Looking at the git log, it appears this change was made nearly a year
ago.  I don't remember the discussion about it on emacs-devel, but I
would surely have argued against it if I knew it was being proposed.

This is broken.  Can we get it fixed, please (for some reasonable value
of "fixed")?

-- 
Alan Mackenzie (Nuremberg, Germany).



reply via email to

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