GNU bug report logs - #12329
24.1.50; edebug with defun* and defmacro*

Previous Next

Package: emacs;

Reported by: Nic Ferrier <nferrier <at> ferrier.me.uk>

Date: Sun, 2 Sep 2012 00:56:02 UTC

Severity: normal

Found in version 24.1.50

Done: Alan Mackenzie <acm <at> muc.de>

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 12329 in the body.
You can then email your comments to 12329 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#12329; Package emacs. (Sun, 02 Sep 2012 00:56:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Nic Ferrier <nferrier <at> ferrier.me.uk>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 02 Sep 2012 00:56:02 GMT) Full text and rfc822 format available.

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

From: Nic Ferrier <nferrier <at> ferrier.me.uk>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.1.50; edebug with defun* and defmacro*
Date: Sun, 02 Sep 2012 00:35:10 +0100
(require 'cl)
(defun* nic-test-1 (a)
  10)

;; instrument the above function - it will enter the debugger instead of
;; instrumenting, that's wrong

(nic-test-1 20)

;; evaling that will call the function but does not enter the debugger,
;; because the instrumenting didn't work

(cl-defun nic-test-2 (a)
  30)

;; instrumenting that does seem to result in proper instrumentation

(nic-test-2 20)

;; evaling that does not result in the debugger being entered though.


I had a quick look on github, here are the relevant patches that look
like they might be the problem:

https://github.com/emacsmirror/emacs/commit/74e7f3ee6e3147e3c8f570ffeaadb4a9a5504f39
https://github.com/emacsmirror/emacs/commit/498110b9cee6e53cc5339206772b7e0e840b9330


In GNU Emacs 24.1.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.10)
 of 2012-08-29 on nferrier
Windowing system distributor `The X.Org Foundation', version 11.0.11103000
Configured using:
 `configure '--prefix=/home/nferrier/emacs-local''

Important settings:
  value of $LANG: en_GB.UTF-8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  whitespace-mode: t
  eldoc-mode: t
  show-paren-mode: t
  server-mode: t
  rcirc-track-minor-mode: t
  display-time-mode: t
  cua-mode: t
  auto-insert-mode: t
  tooltip-mode: t
  mouse-wheel-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
  hs-minor-mode: t

Recent input:
h a . SPC a n d SPC e d b <backspace> <backspace> <backspace> 
r e p o r t C-h f r e p o r t - <tab> C-g e <backspace> 
- e m a c s - b u g SPC i s SPC b r o k e n , <backspace> 
. <return> C-x o M-x <up> <return> <up> <return> q 
C-x k <return> y e s <return> C-x C-f <escape> <backspace> 
<escape> <backspace> <escape> <backspace> . e m <tab> 
n i <tab> <return> C-s o r g - e m a i l C-a C-x C-f 
C-g C-x o j <tab> i <backspace> m i n e SPC i s . SPC 
m y SPC <escape> <backspace> m y SPC o w n SPC h o 
o k SPC I SPC t h i n k . <return> C-x o C-x C-f p 
<backspace> e l p <tab> o r <tab> <tab> C-g <C-right> 
<C-right> <C-right> <C-right> <C-left> M-x c u s t 
<tab> i <tab> - v a r <tab> <return> m e s s <tab> 
- m o <tab> <return> <tab> <tab> <tab> <tab> <tab> 
<tab> <tab> <tab> <tab> C-k <tab> <return> 1 q <backspace> 
<tab> <return> 1 <tab> q C-x k <return> C-x C-f <up> 
<return> C-s o r g - e m C-s <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <down> <down> <C-right> <C-right> 
<C-right> <C-right> <C-left> C-a <right> <right> C-a 
C-k <C-down-mouse-1> <C-mouse-1> C-k <C-down-mouse-1> 
<C-mouse-1> <up> <down> C-x C-s M-x C-g C-h v <up> 
<return> C-x o <tab> <tab> <tab> <S-iso-lefttab> <return> 
<tab> <tab> <tab> <tab> <tab> <tab> <tab> <tab> <tab> 
<S-iso-lefttab> <return> <return> <tab> C-k <tab> <return> 
1 n i l <tab> <return> 1 q q C-x o C-x k <return> M-x 
<up> <up> <return>

Recent messages:
Apply settings and save for future sessions.
Hide the value of this option.
M-TAB: complete field; RET: enter value
Hide the value of this option.
M-TAB: complete field; RET: enter value
Change the state of this item.
custom-variable-mark-to-save: Saving message-mode-hook: Empty sexp -- use `nil'?
Change the state of this item.
Saving file /home/nferrier/.emacs.d/nic-custom.el...
Wrote /home/nferrier/.emacs.d/nic-custom.el [2 times]

Load-path shadows:
None found.

Features:
(shadow sort flyspell ispell cus-edit wid-edit mail-extr emacsbug
message format-spec rfc822 mml mml-sec mm-decode mm-bodies mailabbrev
gmm-utils mailheader sendmail mail-utils browse-url thingatpt imenu
parse-time multi-isearch jka-compr pp edebug elnode-tests fakir cl-macs
gv cl cl-lib face-remap dired-aux vc-git help-mode view network-stream
starttls tls hideshow disp-table whitespace ert find-func ewoc debug
eldoc load-dir bigint-autoloads dotassoc-autoloads edit-list-autoloads
esxml-autoloads gist-autoloads gh-autoloads groovy-mode-autoloads
js2-mode-autoloads legalese-autoloads load-dir-autoloads
logito-autoloads magit-autoloads markdown-mode-autoloads
mongo-elnode-autoloads elnode-autoloads elnode elnode-db json url-util
mailcap mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums
creole-autoloads fakir-autoloads mongo-autoloads org-presie-autoloads
eimp-autoloads pcache-autoloads finder-inf rainbow-mode-autoloads
shell-switcher-autoloads web-autoloads wgrep-autoloads wikidoc-autoloads
package paren server rcirc ring time cua-base autoinsert cus-start
cus-load nic-custom dired-x easymenu dired uniquify ffap url-parse
auth-source eieio gnus-util mm-util mail-prsvr password-cache url-vars
edmacro kmacro byte-opt warnings bytecomp byte-compile cconv macroexp
advice help-fns advice-preload time-date tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment lisp-mode register page menu-bar
rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax
facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak
czech european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces
cus-face files text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget hashtable-print-readable backquote
make-network-process dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)




Reply sent to Alan Mackenzie <acm <at> muc.de>:
You have taken responsibility. (Thu, 24 Dec 2015 18:45:02 GMT) Full text and rfc822 format available.

Notification sent to Nic Ferrier <nferrier <at> ferrier.me.uk>:
bug acknowledged by developer. (Thu, 24 Dec 2015 18:45:02 GMT) Full text and rfc822 format available.

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

From: Alan Mackenzie <acm <at> muc.de>
To: Nic Ferrier <nferrier <at> ferrier.me.uk>
Cc: 12329-done <at> debbugs.gnu.org
Subject: Re: bug#12329: 24.1.50; edebug with defun* and defmacro*
Date: Thu, 24 Dec 2015 18:46:50 +0000
Hello, Nic.

I know it's over three years ago, but .....

On Sun, Sep 02, 2012 at 12:35:10AM +0100, Nic Ferrier wrote:

> (require 'cl)
> (defun* nic-test-1 (a)
>   10)

> ;; instrument the above function - it will enter the debugger instead of
> ;; instrumenting, that's wrong

I don't have an Emacs 24.1, and have difficulty building one.  So I've
tried these things out on 23.2 and 24.2.  My comments below apply
equally to both versions.

When I try to instrument the `defun*' form without having done the
`require', the instrumentation process does indeed enter edebug as
though it were a defvar.  After doing the `require', it instruments the
`defun*' properly.

> (nic-test-1 20)

> ;; evaling that will call the function but does not enter the debugger,
> ;; because the instrumenting didn't work

On evaluating (symbol-function 'nic-test-1), I get this form:

    (lambda (a) (block nic-test-1 (edebug-enter (quote nic-test-1) (list a) (function (lambda nil 10)))))

, which shows that the original form _has_ been instrumented.  This is
not apparent on running it, though, because there is no "stop point"
anywhere in the function for edbug to stop at.  When "10" is replaced by
"a", the instrumented form looks like:

   (lambda (a) (block nic-test-2 (edebug-enter (quote nic-test-2) (list a) (function (lambda nil (edebug-after 0 0 a))))))

; on running this, edebug does stop inside the function, just after
evaluating "a". 

> (cl-defun nic-test-2 (a)
>   30)

> ;; instrumenting that does seem to result in proper instrumentation

> (nic-test-2 20)

> ;; evaling that does not result in the debugger being entered though.


> I had a quick look on github, here are the relevant patches that look
> like they might be the problem:

> https://github.com/emacsmirror/emacs/commit/74e7f3ee6e3147e3c8f570ffeaadb4a9a5504f39
> https://github.com/emacsmirror/emacs/commit/498110b9cee6e53cc5339206772b7e0e840b9330

Sadly, these patches are now lost forever.  :-(.  This is an example of
why 40 hex-digit hashes are a poor identifier.  With a savannah (bzr)
revision number, or a date together with commit message text, they could
have been found easily.

> In GNU Emacs 24.1.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.10)
>  of 2012-08-29 on nferrier
> Windowing system distributor `The X.Org Foundation', version 11.0.11103000
> Configured using:
>  `configure '--prefix=/home/nferrier/emacs-local''

[ .... ]

There may have been a bug here, in Emacs 24.1.  I don't think there was
in either 23.2 or 24.2.  So I'm closing this bug.

-- 
Alan Mackenzie (Nuremberg, Germany).




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 22 Jan 2016 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 9 years and 155 days ago.

Previous Next


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