GNU bug report logs - #24765
26.0.50; Incorrect Edebug spec for cl-letf, cl-letf*

Previous Next

Package: emacs;

Reported by: Gemini Lasswell <gazally <at> runbox.com>

Date: Sat, 22 Oct 2016 16:19:01 UTC

Severity: normal

Found in version 26.0.50

Done: Gemini Lasswell <gazally <at> runbox.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 24765 in the body.
You can then email your comments to 24765 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#24765; Package emacs. (Sat, 22 Oct 2016 16:19:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Gemini Lasswell <gazally <at> runbox.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 22 Oct 2016 16:19:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Gemini Lasswell <gazally <at> runbox.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 26.0.50; Incorrect Edebug spec for cl-letf, cl-letf*
Date: Sat, 22 Oct 2016 09:17:55 -0700
The Edebug spec for cl-letf and cl-letf* doesn't handle the place as
plain variable exception mentioned in the documentation of cl-letf.

To reproduce (emacs -Q or otherwise), enter this code into *scratch*:

(require 'cl-lib)
(defun my-letf-bug (things)
  (cl-letf* ((new-thing 'a)
	    ((car things) new-thing))
    (message "%s" things)))

(my-letf-bug (list 1 2 3))

If you evaluate this without the debugger it will give the expected
result, (a 2 3). But try:

M-x edebug-all-defs RET
M-x eval-buffer RET
g

Result: Symbol's value as variable is void: new-thing



In GNU Emacs 26.0.50.4 (x86_64-apple-darwin15.6.0, NS appkit-1404.47 Version 10.11.6 (Build 15G1004))
 of 2016-10-20 built on rainbow.local
Repository revision: 9e1e257ea8605354d15b4bd93e0af6188aae40db
Windowing system distributor 'Apple', version 10.3.1404
Recent messages:
Symbol’s value as variable is void: new-thing
funcall-interactively: End of buffer [4 times]
Entering debugger...
Back to top level
nil
Mark set
Edebug: my-letf-bug
Go...
Symbol's value as variable is void: new-thing
Go...
edebug-signal: Symbol’s value as variable is void: new-thing
Configured using:
 'configure --with-ns --disable-ns-self-contained'

Configured features:
JPEG RSVG IMAGEMAGICK NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS
NS

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

Major mode: Emacs-Lisp

Minor modes in effect:
  magit-auto-revert-mode: t
  global-git-commit-mode: t
  async-bytecomp-package-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  diff-auto-refine-mode: t
  ivy-mode: t
  buffer-face-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  pyvenv-mode: t
  shell-dirtrack-mode: t
  nameless-mode: t
  beacon-mode: t
  rainbow-mode: t
  column-enforce-mode: t
  volatile-highlights-mode: t
  region-state-mode: t
  ws-butler-global-mode: t
  ws-butler-mode: t
  show-smartparens-global-mode: t
  show-smartparens-mode: t
  smartparens-global-mode: t
  smartparens-global-strict-mode: t
  smartparens-strict-mode: t
  smartparens-mode: t
  which-key-mode: t
  modalka-mode: t
  recentf-mode: t
  global-auto-revert-mode: t
  winner-mode: t
  display-time-mode: t
  savehist-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(iedit iedit-lib eww mm-url url-queue ibuf-ext ibuffer ibuffer-loaddefs
nnir htmlfontify cperl-mode-expansions cperl-mode htmlfontify-loaddefs
imap skeleton tramp-cache python-tests hideshow origami origami-parsers
rx company-capf seq-tests windmove calc calc-loaddefs calc-macs
electric-tests js-mode-expansions js html-mode-expansions
smartparens-html sgml-mode imenu cc-mode-expansions cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
ruby-mode-expansions smartparens-ruby ruby-mode smie elec-pair ert-x
log-view vc vc-dispatcher org-element org-rmail org-mhe org-irc org-info
org-gnus org-docview doc-view image-mode org-bibtex bibtex org-bbdb
org-w3m the-org-mode-expansions org org-macro org-footnote org-pcomplete
org-list org-faces org-entities noutline outline org-version
ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp org-src ob-keys
ob-comint ob-core ob-eval org-compat org-macs org-loaddefs cal-menu
calendar cal-loaddefs shr-color linum magit-blame magit-stash
magit-bisect magit-remote magit-commit magit-sequence magit magit-apply
magit-wip magit-log magit-diff smerge-mode magit-core magit-autorevert
magit-process magit-popup magit-mode magit-git magit-section magit-utils
git-commit log-edit pcvs-util with-editor async-bytecomp async server
mailalias goto-chg shadow emacsbug cl-generic-tests testcover flow-fill
jka-compr shr svg dom browse-url qp nndraft nnmh nnfolder utf-7 epa-file
sort smiley gnus-cite mail-extr gnus-async gnus-bcklg gnus-agent
gnus-srvr gnus-score score-mode nnvirtual nntp gnus-ml gnus-msg
disp-table nndoc gnus-cache gnus-dup gnus-art mm-uu mml2015 mm-view
mml-smime smime dig gnus-sum gnus-group gnus-undo gnus-start gnus-cloud
nnimap nnmail mail-source utf7 netrc nnoo parse-time gnus-spec gnus-int
gnus-range gnus-win gnus nnheader mm-archive message rfc822 mml mml-sec
epa derived epg gnus-util rmail rmail-loaddefs mailabbrev gmm-utils
mailheader crm debbugs-gnu add-log zoom-window highlight-symbol
undo-tree diff eieio-opt speedbar sb-image ezimage dframe tabify
shrink-whitespace dash-at-point visual-regexp expand-region
text-mode-expansions python-el-fgallina-expansions er-basic-expansions
expand-region-core expand-region-custom ielm comment-dwim-2 ert
find-func ewoc debug pp edebug vc-git diff-mode colir flx dired
dired-loaddefs counsel esh-util swiper ivy delsel ffap face-remap
guess-style smtpmail sendmail mail-utils yasnippet highlight-indentation
flymake company help-fns radix-tree elpy pyvenv elpy-refactor
smartparens-python python tramp-sh tramp tramp-compat tramp-loaddefs
trampver shell pcomplete format-spec json map grep compile files-x
cus-edit virtualenvwrapper gud comint nameless lisp-mnt ace-window avy
beacon smex ido deft debbugs soap-client mm-decode mm-bodies mm-encode
warnings rng-xsd rng-dt rng-util xsd-regexp xml rainbow-mode ansi-color
color s hydra lv column-enforce-mode etags xref project
volatile-highlights region-state ws-butler smartparens-config
smartparens thingatpt dash which-key modalka quail
smart-mode-line-dark-theme smart-mode-line advice rich-minority
whiteboard-theme classic-theme recentf tree-widget wid-edit autorevert
filenotify winner ring time cus-start cus-load savehist cap-words
superword subword use-package diminish bind-key easy-mmode finder-inf
edmacro kmacro info network-stream starttls url-http tls gnutls
mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-gw
nsm subr-x puny url-cache url-auth url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-domsuf url-util mailcap cl
package epg-config url-handlers url-parse auth-source cl-seq eieio
eieio-core cl-macs eieio-loaddefs password-cache url-vars seq byte-opt
gv bytecomp byte-compile cl-extra help-mode easymenu cconv cl-loaddefs
pcase cl-lib time-date mule-util tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel term/ns-win ns-win
ucs-normalize term/common-win 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 kqueue cocoa ns multi-tty
make-network-process emacs)

Memory information:
((conses 16 2211048 311623)
 (symbols 48 70123 2418)
 (miscs 40 9605 9204)
 (strings 32 256984 60642)
 (string-bytes 1 8351585)
 (vectors 16 108871)
 (vector-slots 8 2569018 156869)
 (floats 8 6151 2927)
 (intervals 56 214486 9776)
 (buffers 976 131))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24765; Package emacs. (Tue, 25 Apr 2017 15:33:01 GMT) Full text and rfc822 format available.

Message #8 received at 24765 <at> debbugs.gnu.org (full text, mbox):

From: Gemini Lasswell <geminilasswell <at> runbox.com>
To: 24765 <at> debbugs.gnu.org
Subject: Patch (was: bug#24765: 26.0.50;
 Incorrect Edebug spec for cl-letf, cl-letf*)
Date: Tue, 25 Apr 2017 08:28:46 -0700
[Message part 1 (text/plain, inline)]
Here is a patch for the edebug spec of cl-letf* to handle this case.

[0001-lisp-emacs-lisp-cl-macs.el-cl-letf-Fix-Edebug-spec-b.patch (text/plain, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24765; Package emacs. (Sat, 09 Sep 2017 19:20:02 GMT) Full text and rfc822 format available.

Message #11 received at 24765 <at> debbugs.gnu.org (full text, mbox):

From: Gemini Lasswell <gazally <at> runbox.com>
To: 24765 <at> debbugs.gnu.org
Subject: Patch for bug#24765: 26.0.50;
 Incorrect Edebug spec for cl-letf, cl-letf*
Date: Sat, 09 Sep 2017 12:19:04 -0700
[Message part 1 (text/plain, inline)]
Here is the patch for this bug again, against the current master. Does anyone have
any feedback? If not, I will push this in a few days.

[0001-lisp-emacs-lisp-cl-macs.el-cl-letf-Fix-Edebug-spec-b.patch (text/plain, inline)]
From cb71084395df6981901cf33ba2753ee9c7a4caf0 Mon Sep 17 00:00:00 2001
From: Gemini Lasswell <gazally <at> runbox.com>
Date: Tue, 25 Apr 2017 07:42:01 -0700
Subject: [PATCH] * lisp/emacs-lisp/cl-macs.el (cl-letf): Fix Edebug spec
 (bug#24765)

---
 lisp/emacs-lisp/cl-macs.el | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index 20a956b474..e2d35224f0 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -2437,7 +2437,9 @@ cl-letf
 the PLACE is not modified before executing BODY.
 
 \(fn ((PLACE VALUE) ...) BODY...)"
-  (declare (indent 1) (debug ((&rest (gate gv-place &optional form)) body)))
+  (declare (indent 1) (debug ((&rest [&or (symbolp form)
+                                          (gate gv-place &optional form)])
+                              body)))
   (if (and (not (cdr bindings)) (cdar bindings) (symbolp (caar bindings)))
       `(let ,bindings ,@body)
     (cl--letf bindings () () body)))
-- 
2.14.1


Reply sent to Gemini Lasswell <gazally <at> runbox.com>:
You have taken responsibility. (Sat, 16 Sep 2017 14:54:01 GMT) Full text and rfc822 format available.

Notification sent to Gemini Lasswell <gazally <at> runbox.com>:
bug acknowledged by developer. (Sat, 16 Sep 2017 14:54:02 GMT) Full text and rfc822 format available.

Message #16 received at 24765-done <at> debbugs.gnu.org (full text, mbox):

From: Gemini Lasswell <gazally <at> runbox.com>
To: 24765-done <at> debbugs.gnu.org
Subject: Re: bug#24765: Patch for bug#24765: 26.0.50;
 Incorrect Edebug spec for cl-letf, cl-letf*
Date: Sat, 16 Sep 2017 07:52:57 -0700
Patch pushed to emacs-26.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 15 Oct 2017 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 7 years and 250 days ago.

Previous Next


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