Subject: 26.0.50; Can't edebug functions containing cl-symbol-macrolet
From: Philipp Stephani <[email-masked]>
To: [email-masked]
Date: Tue, 18 Oct 2016 22:37:24 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

M-x load-library RET cl-lib RET
Insert into *scratch*:
(defun f (x) (cl-symbol-macrolet ((y x)) y))
Move point into the definition of f and hit C-u C-M-x.  You get an error
"edebug-match-symbol: symbol is not a form-spec or function" and the
function isn't edebugg-able.

Stack trace:

Debugger entered--Lisp error: (error "symbol is not a form-spec or function")
  signal(error ("symbol is not a form-spec or function"))
  error("%s is not a form-spec or function" symbol)
  edebug-match-symbol(((y x) (376 . 377) (378 . 379) . 380) symbol)
  edebug-match-one-spec(((y x) (376 . 377) (378 . 379) . 380) symbol)
  edebug-match-specs(((y x) (376 . 377) (378 . 379) . 380) (symbol sexp) edebug-match-specs)
  edebug-match-sublist(((y x) (376 . 377) (378 . 379) . 380) (symbol sexp))
  edebug-match-list((((y x)) (375 (376 . 377) (378 . 379) . 380) . 381) (symbol sexp))
  edebug-match-one-spec((((y x)) (375 (376 . 377) (378 . 379) . 380) . 381) (symbol sexp))
  edebug-match-specs((((y x)) (375 (376 . 377) (378 . 379) . 380) . 381) ((symbol sexp)) edebug-&rest-wrapper)
  edebug-&optional-wrapper((((y x)) (375 (376 . 377) (378 . 379) . 380) . 381) ((symbol sexp)) edebug-&rest-wrapper)
  edebug-&rest-wrapper((((y x)) (375 (376 . 377) (378 . 379) . 380) . 381) ((symbol sexp)) edebug-&rest-wrapper)
  edebug-match-&rest((((y x)) (375 (376 . 377) (378 . 379) . 380) . 381) ((symbol sexp)))
  edebug-match-specs((((y x)) (375 (376 . 377) (378 . 379) . 380) . 381) (&rest (symbol sexp)) edebug-match-specs)
  edebug-match-sublist((((y x)) (375 (376 . 377) (378 . 379) . 380) . 381) (&rest (symbol sexp)))
  edebug-match-list(((((y x)) y) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) (&rest (symbol sexp)))
  edebug-match-one-spec(((((y x)) y) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) (&rest (symbol sexp)))
  edebug-match-specs(((((y x)) y) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) ((&rest (symbol sexp)) cl-declarations body) edebug-match-specs)
  edebug-match-sublist(((((y x)) y) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) ((&rest (symbol sexp)) cl-declarations body))
  edebug-list-form(((((y x)) y) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384))
  edebug-form((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385))
  edebug-match-form((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385))
  edebug-match-symbol((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385) form)
  edebug-match-one-spec((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385) form)
  edebug-match-specs((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385) (form) edebug-&rest-wrapper)
  edebug-&optional-wrapper((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385) (form) edebug-&rest-wrapper)
  edebug-&rest-wrapper((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385) (form) edebug-&rest-wrapper)
  edebug-match-&rest((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385) (form))
  edebug-match-specs((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385) (&rest form) edebug-match-specs)
  edebug-match((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385) (&rest form))
  edebug-match-def-body((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385))
  edebug-match-symbol((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385) def-body)
  edebug-match-one-spec((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385) def-body)
  edebug-match-specs((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385) (def-body) edebug-match-specs)
  edebug-match-specs((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385) ([&optional ("interactive" interactive)] def-body) edebug-match-specs)
  edebug-match-specs((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385) ([&optional ("declare" &rest sexp)] [&optional ("interactive" interactive)] def-body) edebug-match-specs)
  edebug-match-specs((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385) ([&optional stringp] [&optional ("declare" &rest sexp)] [&optional ("interactive" interactive)] def-body) edebug-match-specs)
  edebug-match-specs((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385) (lambda-list [&optional stringp] [&optional ("declare" &rest sexp)] [&optional ("interactive" interactive)] def-body) edebug-match-specs)
  edebug-match-specs((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385) (name lambda-list [&optional stringp] [&optional ("declare" &rest sexp)] [&optional ("interactive" interactive)] def-body) edebug-match-specs)
  edebug-match-specs((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385) ("defun" name lambda-list [&optional stringp] [&optional ("declare" &rest sexp)] [&optional ("interactive" interactive)] def-body) edebug-match-specs)
  edebug-match-sublist((((cl-symbol-macrolet ((y x)) y)) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385) ("defun" name lambda-list [&optional stringp] [&optional ("declare" &rest sexp)] [&optional ("interactive" interactive)] def-body))
  edebug-match-list((((defun f (x) (cl-symbol-macrolet ((y x)) y))) (341 (342 . 347) (348 . 349) (350 (351 . 352) . 353) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385)) ("defun" name lambda-list [&optional stringp] [&optional ("declare" &rest sexp)] [&optional ("interactive" interactive)] def-body))
  edebug-match-one-spec((((defun f (x) (cl-symbol-macrolet ((y x)) y))) (341 (342 . 347) (348 . 349) (350 (351 . 352) . 353) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385)) ("defun" name lambda-list [&optional stringp] [&optional ("declare" &rest sexp)] [&optional ("interactive" interactive)] def-body))
  edebug-match-specs((((defun f (x) (cl-symbol-macrolet ((y x)) y))) (341 (342 . 347) (348 . 349) (350 (351 . 352) . 353) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385)) (("defun" name lambda-list [&optional stringp] [&optional ("declare" &rest sexp)] [&optional ("interactive" interactive)] def-body)) edebug-match-specs)
  edebug-match((((defun f (x) (cl-symbol-macrolet ((y x)) y))) (341 (342 . 347) (348 . 349) (350 (351 . 352) . 353) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385)) (("defun" name lambda-list [&optional stringp] [&optional ("declare" &rest sexp)] [&optional ("interactive" interactive)] def-body)))
  edebug-make-form-wrapper((((defun f (x) (cl-symbol-macrolet ((y x)) y))) (341 (342 . 347) (348 . 349) (350 (351 . 352) . 353) (354 (355 . 373) (374 (375 (376 . 377) (378 . 379) . 380) . 381) (382 . 383) . 384) . 385)) 341 384 (("defun" name lambda-list [&optional stringp] [&optional ("declare" &rest sexp)] [&optional ("interactive" interactive)] def-body)))
  edebug-read-and-maybe-wrap-form1()
  edebug-read-and-maybe-wrap-form()
  edebug-read-top-level-form()
  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)

In GNU Emacs 26.0.50.9 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8)
 of 2016-10-15 built on localhost
Repository revision: cf566b46a6cf85c6d54d0b0db80e32ed6ae8d1ca
Windowing system distributor 'The X.Org Foundation', version 11.0.11501000
System Description:	Ubuntu 14.04 LTS

Recent messages:
Mark set
Sending...
Mark set [2 times]
Sending via mail...
Setting ‘smtpmail-smtp-server’ temporarily since "emacs -q" would overwrite customizations
Setting ‘smtpmail-smtp-service’ temporarily since "emacs -q" would overwrite customizations
Sending email 
Sending email done
Sending...done
kill-line: End of buffer

Configured using:
 'configure --with-modules --enable-checking
 --enable-check-lisp-object-type'

Configured features:
XPM JPEG TIFF GIF PNG SOUND GSETTINGS NOTIFY GNUTLS FREETYPE XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 MODULES

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(network-stream nsm starttls tls gnutls mailalias smtpmail auth-source
cl-seq eieio eieio-core eieio-loaddefs qp cus-edit cus-start cus-load
wid-edit shadow sort mail-extr emacsbug message subr-x puny seq byte-opt
bytecomp byte-compile cl-extra help-mode cconv dired dired-loaddefs
format-spec rfc822 mml easymenu mml-sec password-cache epa derived epg
epg-config gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils cl-macs gv pp
cl-loaddefs pcase cl-lib time-date mule-util tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment elisp-mode lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core term/tty-colors frame cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese charscript case-table epa-hook
jka-cmpr-hook help simple abbrev obarray minibuffer cl-preloaded nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote inotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 127125 22535)
 (symbols 48 22733 9)
 (miscs 40 362 302)
 (strings 32 23729 6744)
 (string-bytes 1 750761)
 (vectors 16 22625)
 (vector-slots 8 1237773 204940)
 (floats 8 222 289)
 (intervals 56 656 262)
 (buffers 976 15)
 (heap 1024 47354 5251))

-- 
Google Germany GmbH
Erika-Mann-Straße 33
80636 München

Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg
Geschäftsführer: Matthew Scott Sucherman, Paul Terence Manicle

Diese E-Mail ist vertraulich.  Wenn Sie nicht der richtige Adressat sind,
leiten Sie diese bitte nicht weiter, informieren Sie den Absender und löschen
Sie die E-Mail und alle Anhänge.  Vielen Dank.

This e-mail is confidential.  If you are not the right addressee please do not
forward it, please inform the sender, and please erase this e-mail including
any attachments.  Thanks.