Subject: bug#16184: 24.3.50; edebug and eval-when-compiler don't work together

From: Anders Lindgren <[email-masked]>
Date: Fri, 30 Dec 2016 21:02:31 +0100

Hi!

I just got around to test this. Now, `eval-when-comple' seems to be
working. Unfortunately, `eval-and-comple' is still broken.

If I do C-u M-C-x eval the following with `debug-on-error' set to t, I get
the backtrace below:

(defun test (limit)
  (eval-and-compile
    (boundp 'parse-sexp-lookup-properties)))

Debugger entered--Lisp error: (void-variable edebug-freq-count)
  edebug-before(1)
  (edebug-after (edebug-before 1) 2 (boundp (quote
parse-sexp-lookup-properties)))
  (progn (edebug-after (edebug-before 1) 2 (boundp (quote
parse-sexp-lookup-properties))))
  eval((progn (edebug-after (edebug-before 1) 2 (boundp (quote
parse-sexp-lookup-properties)))) nil)
  #[128 "\301\302\303 B \"D\207" [lexical-binding quote eval progn] 5
1802730]((edebug-after (edebug-before 1) 2 (boundp (quote
parse-sexp-lookup-properties))))
  macroexpand((eval-and-compile (edebug-after (edebug-before 1) 2 (boundp
(quote parse-sexp-lookup-properties)))) nil)
  macroexp-macroexpand((eval-and-compile (edebug-after (edebug-before 1) 2
(boundp (quote parse-sexp-lookup-properties)))) nil)
  macroexp--expand-all((eval-and-compile (edebug-after (edebug-before 1) 2
(boundp (quote parse-sexp-lookup-properties)))))
  macroexp--all-forms((edebug-after (edebug-before 0) 3 (eval-and-compile
(edebug-after (edebug-before 1) 2 (boundp (quote
parse-sexp-lookup-properties))))) 1)
  #[514 "\300 \301\"\211\204 \302 \242\303\"\202g\304 !\204+\3051$\306\307
! \"0\202*\310\311 \"\262 \210\312 \242\" \242 =\203b \242\302
\242\303\"\211\262 \232\203J \242\202e \312 \"\240\210\211
\242=\203\\\211\202e\313 !\202e\313 !\262 \207" [function-get
compiler-macro macroexp--all-forms 1 functionp (debug error)
autoload-do-load indirect-function message "macroexp--expand-all: %S"
macroexp--compiler-macro macroexp--expand-all] 8 "\n\n(fn FORM
FUNC)"](((edebug-after (edebug-before 0) 3 (eval-and-compile (edebug-after
(edebug-before 1) 2 (boundp (quote parse-sexp-lookup-properties))))))
edebug-after)
  macroexp--expand-all((edebug-after (edebug-before 0) 3 (eval-and-compile
(edebug-after (edebug-before 1) 2 (boundp (quote
parse-sexp-lookup-properties))))))
  macroexp--all-forms((lambda nil (edebug-after (edebug-before 0) 3
(eval-and-compile (edebug-after (edebug-before 1) 2 (boundp (quote
parse-sexp-lookup-properties)))))) 2)
  macroexp--expand-all((function (lambda nil (edebug-after (edebug-before
0) 3 (eval-and-compile (edebug-after (edebug-before 1) 2 (boundp (quote
parse-sexp-lookup-properties))))))))
  macroexp--all-forms((edebug-enter (quote test) (list limit) (function
(lambda nil (edebug-after (edebug-before 0) 3 (eval-and-compile
(edebug-after (edebug-before 1) 2 (boundp ...))))))) 1)
  #[514 "\300 \301\"\211\204 \302 \242\303\"\202g\304 !\204+\3051$\306\307
! \"0\202*\310\311 \"\262 \210\312 \242\" \242 =\203b \242\302
\242\303\"\211\262 \232\203J \242\202e \312 \"\240\210\211
\242=\203\\\211\202e\313 !\202e\313 !\262 \207" [function-get
compiler-macro macroexp--all-forms 1 functionp (debug error)
autoload-do-load indirect-function message "macroexp--expand-all: %S"
macroexp--compiler-macro macroexp--expand-all] 8 "\n\n(fn FORM
FUNC)"](((edebug-enter (quote test) (list limit) (function (lambda nil
(edebug-after (edebug-before 0) 3 (eval-and-compile (edebug-after ... 2
...))))))) edebug-enter)
  macroexp--expand-all((edebug-enter (quote test) (list limit) (function
(lambda nil (edebug-after (edebug-before 0) 3 (eval-and-compile
(edebug-after (edebug-before 1) 2 (boundp ...))))))))
  macroexp--all-forms((lambda (limit) (edebug-enter (quote test) (list
limit) (function (lambda nil (edebug-after (edebug-before 0) 3
(eval-and-compile (edebug-after ... 2 ...))))))) 2)
  macroexp--expand-all((function (lambda (limit) (edebug-enter (quote test)
(list limit) (function (lambda nil (edebug-after (edebug-before 0) 3
(eval-and-compile ...))))))))
  macroexp--all-forms((defalias (quote test) (function (lambda (limit)
(edebug-enter (quote test) (list limit) (function (lambda nil (edebug-after
... 3 ...))))))) 1)
  #[514 "\300 \301\"\211\204 \302 \242\303\"\202g\304 !\204+\3051$\306\307
! \"0\202*\310\311 \"\262 \210\312 \242\" \242 =\203b \242\302
\242\303\"\211\262 \232\203J \242\202e \312 \"\240\210\211
\242=\203\\\211\202e\313 !\202e\313 !\262 \207" [function-get
compiler-macro macroexp--all-forms 1 functionp (debug error)
autoload-do-load indirect-function message "macroexp--expand-all: %S"
macroexp--compiler-macro macroexp--expand-all] 8 "\n\n(fn FORM
FUNC)"](((defalias (quote test) (function (lambda (limit) (edebug-enter
(quote test) (list limit) (function (lambda nil ...))))))) defalias)
  macroexp--expand-all((defun test (limit) (edebug-enter (quote test) (list
limit) (function (lambda nil (edebug-after (edebug-before 0) 3
(eval-and-compile (edebug-after ... 2 ...))))))))
  macroexpand-all((defun test (limit) (edebug-enter (quote test) (list
limit) (function (lambda nil (edebug-after (edebug-before 0) 3
(eval-and-compile (edebug-after ... 2 ...))))))))
  eval-sexp-add-defvars((defun test (limit) (edebug-enter (quote test)
(list limit) (function (lambda nil (edebug-after (edebug-before 0) 3
(eval-and-compile (edebug-after ... 2 ...))))))))
  edebug-eval-defun((4))
  apply(edebug-eval-defun (4))
  eval-defun((4))
  funcall-interactively(eval-defun (4))
  call-interactively(eval-defun nil nil)
  command-execute(eval-defun)

    -- Anders

On Thu, Dec 29, 2016 at 10:29 AM, Alan Mackenzie <[email-masked]> wrote:

> Bug fixed.
>
> --
> Alan Mackenzie (Nuremberg, Germany).
>