unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#24765: 26.0.50; Incorrect Edebug spec for cl-letf, cl-letf*
@ 2016-10-22 16:17 Gemini Lasswell
  2017-04-25 15:28 ` bug#24765: Patch (was: bug#24765: 26.0.50; Incorrect Edebug spec for cl-letf, cl-letf*) Gemini Lasswell
  0 siblings, 1 reply; 4+ messages in thread
From: Gemini Lasswell @ 2016-10-22 16:17 UTC (permalink / raw)
  To: 24765

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))





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#24765: Patch (was: bug#24765: 26.0.50; Incorrect Edebug spec for cl-letf, cl-letf*)
  2016-10-22 16:17 bug#24765: 26.0.50; Incorrect Edebug spec for cl-letf, cl-letf* Gemini Lasswell
@ 2017-04-25 15:28 ` Gemini Lasswell
  2017-09-09 19:19   ` bug#24765: Patch for bug#24765: 26.0.50; Incorrect Edebug spec for cl-letf, cl-letf* Gemini Lasswell
  0 siblings, 1 reply; 4+ messages in thread
From: Gemini Lasswell @ 2017-04-25 15:28 UTC (permalink / raw)
  To: 24765

[-- Attachment #1: Type: text/plain, Size: 70 bytes --]

Here is a patch for the edebug spec of cl-letf* to handle this case.


[-- Attachment #2: 0001-lisp-emacs-lisp-cl-macs.el-cl-letf-Fix-Edebug-spec-b.patch --]
[-- Type: text/plain, Size: 1026 bytes --]

From 91091616d994675b2aad28df2031426611273692 Mon Sep 17 00:00:00 2001
From: Gemini Lasswell <gazally@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 db1518ce61..20bd92361b 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -2445,7 +2445,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.12.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* bug#24765: Patch for bug#24765: 26.0.50; Incorrect Edebug spec for cl-letf, cl-letf*
  2017-04-25 15:28 ` bug#24765: Patch (was: bug#24765: 26.0.50; Incorrect Edebug spec for cl-letf, cl-letf*) Gemini Lasswell
@ 2017-09-09 19:19   ` Gemini Lasswell
  2017-09-16 14:52     ` Gemini Lasswell
  0 siblings, 1 reply; 4+ messages in thread
From: Gemini Lasswell @ 2017-09-09 19:19 UTC (permalink / raw)
  To: 24765

[-- Attachment #1: Type: text/plain, Size: 138 bytes --]

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.


[-- Attachment #2: 0001-lisp-emacs-lisp-cl-macs.el-cl-letf-Fix-Edebug-spec-b.patch --]
[-- Type: text/plain, Size: 1026 bytes --]

From cb71084395df6981901cf33ba2753ee9c7a4caf0 Mon Sep 17 00:00:00 2001
From: Gemini Lasswell <gazally@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


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* bug#24765: Patch for bug#24765: 26.0.50; Incorrect Edebug spec for cl-letf, cl-letf*
  2017-09-09 19:19   ` bug#24765: Patch for bug#24765: 26.0.50; Incorrect Edebug spec for cl-letf, cl-letf* Gemini Lasswell
@ 2017-09-16 14:52     ` Gemini Lasswell
  0 siblings, 0 replies; 4+ messages in thread
From: Gemini Lasswell @ 2017-09-16 14:52 UTC (permalink / raw)
  To: 24765-done

Patch pushed to emacs-26.





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-09-16 14:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-22 16:17 bug#24765: 26.0.50; Incorrect Edebug spec for cl-letf, cl-letf* Gemini Lasswell
2017-04-25 15:28 ` bug#24765: Patch (was: bug#24765: 26.0.50; Incorrect Edebug spec for cl-letf, cl-letf*) Gemini Lasswell
2017-09-09 19:19   ` bug#24765: Patch for bug#24765: 26.0.50; Incorrect Edebug spec for cl-letf, cl-letf* Gemini Lasswell
2017-09-16 14:52     ` Gemini Lasswell

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).