GNU bug report logs -
#8332
24.0.9999; lexbind-new branch errors on M-x describe-variable lexical-binding
Previous Next
Reported by: Tassilo Horn <tassilo <at> member.fsf.org>
Date: Wed, 23 Mar 2011 20:41:02 UTC
Severity: normal
Found in version 24.0.9999
Done: Tassilo Horn <tassilo <at> member.fsf.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:
Hi Stefan,
>> After some bisectioning, I found out the culprit is anything.
>> Commenting out
>> (require 'anything)
>> in my .emacs, so I'll Cc-ed Thierry and Rubykitch.
>
> Please try to only set lexical-binding via file-local variables. This
> should be 100% backward compatible (i.e. only affect the files where
> you've set that variable), so any new error like the above is not
> normal.
I don't set lexical-binding globally (anymore). The following recipe
produces the aformentioned error for me.
1. emacs -Q
2. C-h v lexical-binding RET shows its value is nil, and it shows its
docs.
3. In *scratch* eval:
(add-to-list 'load-path "~/repos/el/anything-config/")
(require 'anything)
4. M-x toggle-debug-on-error (only to get the backtrace in 5.)
5. C-h v lexical-binding RET, and I get
--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (void-variable symbol)
(eq symbol (quote anything-type-attributes))
(if (eq symbol (quote anything-type-attributes)) (progn (setq ad-return-value (concat ad-return-value "\n\n++++ Types currently defined ++++\n" (mapconcat (lambda (sym) (get sym (quote anything-typeattrdoc))) anything-types "\n")))))
(when (eq symbol (quote anything-type-attributes)) (setq ad-return-value (concat ad-return-value "\n\n++++ Types currently defined ++++\n" (mapconcat (lambda (sym) (get sym (quote anything-typeattrdoc))) anything-types "\n"))))
(let (ad-return-value) (setq ad-return-value (apply (quote ad-Orig-documentation-property) arg1 arg2 rest)) (when (eq symbol (quote anything-type-attributes)) (setq ad-return-value (concat ad-return-value "\n\n++++ Types currently defined ++++\n" (mapconcat (lambda (sym) (get sym (quote anything-typeattrdoc))) anything-types "\n")))) (when (eq symbol (quote anything-sources)) (setq ad-return-value (concat ad-return-value "\n" (mapconcat (lambda (sym) (get sym (quote anything-attrdoc))) anything-additional-attributes "\n")))) ad-return-value)
documentation-property(lexical-binding variable-documentation)
describe-variable(lexical-binding)
call-interactively(describe-variable nil nil)
--8<---------------cut here---------------end--------------->8---
6. After closing the backtrace buffer with `q', that's what I get in
*Help*
--8<---------------cut here---------------start------------->8---
lexical-binding is a variable defined in `C source code'.
Its value is nil
--8<---------------cut here---------------end--------------->8---
So the docs and the notice, that this variable automatically becomes
buffer local when setting it are missing.
My anything files are *not* compiled.
Bye,
Tassilo
This bug report was last modified 14 years and 122 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.