GNU bug report logs - #47588
28.0.50; C-M-x in emacs-lisp-mode: elisp--eval-defun: Symbol’s function definition is void: nil [3 times]

Previous Next

Package: emacs;

Reported by: Jean Louis <bugs <at> gnu.support>

Date: Sun, 4 Apr 2021 05:39:01 UTC

Severity: normal

Found in version 28.0.50

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Gregory Heytings <gregory <at> heytings.org>
To: Jean Louis <bugs <at> gnu.support>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 47588 <at> debbugs.gnu.org, Stefan Monnier <monnier <at> iro.umontreal.ca>
Subject: bug#47588: 28.0.50; C-M-x in emacs-lisp-mode: elisp--eval-defun: Symbol’s function definition is void: nil [3 times]
Date: Sat, 17 Apr 2021 23:48:53 +0000
[Message part 1 (text/plain, inline)]
>
> 1. emacs -Q
>
> 2. Go to *scratch* (but it is happening anywhere)
>
> 2. Evaluate (number-to-string nil) and get error, do not press Q in 
> *Backtrace*, switch back to *scratch*
>
> 3. Try evaluating any defun with C-M-x it will give error: 
> elisp--eval-defun: Symbol’s function definition is void: nil
>
> 4. You can evaluate with C-x C-e on the end of the defun, but not in the 
> middle with C-M-x
>
> 5. Go to *Backtrace*, click q or erase *Backtrace*, come back and it 
> works again.
>

IIUC, this is a kind chicken-and-egg problem: eval-defun at that point 
does not work without a (require 'edebug), which executes 
(edebug-install-read-eval-functions), which puts an advice around 
eval-defun...

Here's a patch, which I'm sure is not TRT, but which at least fixes that 
bug.  Cc'ing Stefan, who wrote bae2cfe63c, who might have a better idea on 
how this should be done.
[Load-edebug-before-actually-calling-eval-defun.patch (text/x-diff, attachment)]

This bug report was last modified 4 years and 96 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.