Subject: 24.3.50; regressions: 1) Redefining a function should cancel `debug-on-entry', 2) doc

From: "Drew Adams" <[email-masked]>
Date: Sun, 2 Dec 2012 11:47:06 -0800

1.
 
emacs -Q

(defun foo (&optional n)
  (interactive "p")
  (forward-char n))
 
M-x debug-on-entry RET foo RET
 
M-x foo ; enters the debugger
 
Then C-M-x on the defun above, to redefine foo.
 
M-x foo ; STILL enters the debugger

You can even add a doc string or make another change, then C-M-x, and you will
STILL enter the debugger when `foo' is invoked.
 
Redefining foo should cancel the `debug-on-entry'.  See (elisp)
`Function Debugging':
 
  *Warning:* if you redefine a function after using `debug-on-entry'
  on it, the code to enter the debugger is discarded by the
  redefinition.  In effect, redefining the function cancels the
  break-on-entry feature for that function.
 
This feature has now been broken.  Please restore it.
 
It is a hell of a lot easier to hit C-M-x on foo's definition than it is
to do `M-x cancel-debug-on-entry RET foo RET'.

2. In the Elisp manual, this should NOT be a *Warning*.  This is an
intentional, longstanding FEATURE, not something bad to be warned about.
 
And this WAS NOT a *Warning* but a simple *Note*, prior to Emacs 22.  This
mania of introducing "*WARNING*" everywhere really should stop.
 
This occurrence is a second regression.  "*Note*", and its attendant
sanity, should be restored here.
 
It would not be surprising if some misguided soul removed this feature
of debug cancellation by function redefinition precisely because of a
misunderstanding introduced by this *Warning*, thinking that this is not
a feature but something bad - a bug to be "fixed".
 
Far from being warned, as if this were about some bug workaround, users
should be positively informed about this feature.  That's what the
original *Note* was for: to draw their attention to this positively, not
to warn them about it as if it were something to avoid.

In GNU Emacs 24.3.50.1 (i386-mingw-nt5.1.2600)
 of 2012-11-19 on MS-W7-DANI
Bzr revision: 110950 [email-masked]
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
 `configure --with-gcc (4.7) --no-opt --enable-checking --cflags
 -Ic:/emacs/libs/libXpm-3.5.10/include -Ic:/emacs/libs/libXpm-3.5.10/src
 -Ic:/emacs/libs/libpng-1.2.37-lib/include -Ic:/emacs/libs/zlib-1.2.5
 -Ic:/emacs/libs/giflib-4.1.4-1-lib/include
 -Ic:/emacs/libs/jpeg-6b-4-lib/include
 -Ic:/emacs/libs/tiff-3.8.2-1-lib/include
 -Ic:/emacs/libs/libxml2-2.7.8-w32-bin/include/libxml2
 -Ic:/emacs/libs/gnutls-3.0.9-w32-bin/include
 -Ic:/emacs/libs/libiconv-1.9.2-1-lib/include'