GNU bug report logs - #41989
28.0.50; Edebug doesn't generate symbols for `cl-flet' etc.

Previous Next

Package: emacs;

Reported by: Philipp <p.stephani2 <at> gmail.com>

Date: Sun, 21 Jun 2020 17:04:02 UTC

Severity: normal

Tags: moreinfo

Found in version 28.0.50

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

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 41989 in the body.
You can then email your comments to 41989 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#41989; Package emacs. (Sun, 21 Jun 2020 17:04:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Philipp <p.stephani2 <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 21 Jun 2020 17:04:02 GMT) Full text and rfc822 format available.

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

From: Philipp <p.stephani2 <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 28.0.50; Edebug doesn't generate symbols for `cl-flet' etc.
Date: Sun, 21 Jun 2020 19:03:13 +0200
Edebug (using C-u C-M-x) a function like the following:

(defun bar ()
  (cl-flet ((foo () 1)) (foo))
  (cl-flet ((foo () 2)) (foo)))

*Messages* will now contain

Edebug: foo [4 times]
Edebug: bar

Note how `foo' has been instrumented 4 times.  A factor of 2 is due to
Bug#41988; another factor of 2 is due to Edebug not generating a unique
symbol.  Edebug should generate symbols such as `bar <at> foo <at> 1' and
`bar <at> foo <at> 2' for these definitions.


In GNU Emacs 28.0.50 (build 55, x86_64-apple-darwin19.4.0, NS appkit-1894.50 Version 10.15.5 (Build 19F101))
 of 2020-06-21
Repository revision: a4d3897d8f0caa54be1e1d081651ed6640b7f25e
Repository branch: master
Windowing system distributor 'Apple', version 10.3.1894
System Description:  Mac OS X 10.15.5

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
C-c C-c is undefined

Configured using:
 'configure --with-modules --without-xml2 --without-pop --with-mailutils
 --enable-gcc-warnings=warn-only --enable-checking=all
 --enable-check-lisp-object-type 'CFLAGS=-ggdb3 -O0''

Configured features:
JPEG TIFF GIF PNG NOTIFY KQUEUE ACL GNUTLS ZLIB TOOLKIT_SCROLL_BARS NS
MODULES THREADS JSON PDUMPER LCMS2 GMP

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

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  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:
(shadow sort mail-extr emacsbug message rmc dired dired-loaddefs rfc822
mml easymenu mml-sec epa epg epg-config gnus-util rmail rmail-loaddefs
text-property-search time-date mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils phst skeleton derived edmacro
kmacro pcase ffap thingatpt url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-domsuf url-util url-parse
auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache json map url-vars mailcap subr-x rx gnutls puny seq
byte-opt gv bytecomp byte-compile cconv dbus xml compile comint
ansi-color ring cl-loaddefs cl-lib tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel term/ns-win ns-win
ucs-normalize mule-util term/common-win tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core term/tty-colors frame minibuffer 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 composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
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 threads kqueue cocoa ns
lcms2 multi-tty make-network-process emacs)

Memory information:
((conses 16 69645 6201)
 (symbols 48 8651 1)
 (strings 32 23551 1776)
 (string-bytes 1 768535)
 (vectors 16 14139)
 (vector-slots 8 172489 7086)
 (floats 8 25 30)
 (intervals 56 207 0)
 (buffers 992 10))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#41989; Package emacs. (Sun, 02 Aug 2020 15:43:01 GMT) Full text and rfc822 format available.

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

From: Philipp Stephani <p.stephani2 <at> gmail.com>
To: 41989 <at> debbugs.gnu.org
Subject: Re: bug#41989: 28.0.50;
 Edebug doesn't generate symbols for `cl-flet' etc.
Date: Sun, 2 Aug 2020 17:42:12 +0200
Am So., 21. Juni 2020 um 19:04 Uhr schrieb Philipp <p.stephani2 <at> gmail.com>:
>
>
> Edebug (using C-u C-M-x) a function like the following:
>
> (defun bar ()
>   (cl-flet ((foo () 1)) (foo))
>   (cl-flet ((foo () 2)) (foo)))
>
> *Messages* will now contain
>
> Edebug: foo [4 times]
> Edebug: bar
>
> Note how `foo' has been instrumented 4 times.  A factor of 2 is due to
> Bug#41988; another factor of 2 is due to Edebug not generating a unique
> symbol.  Edebug should generate symbols such as `bar <at> foo <at> 1' and
> `bar <at> foo <at> 2' for these definitions.
>


I've partially fixed this with commit d8ab98843e. It's not completely
fixed because Edebug doesn't yet detect the outer definition and adds
it to the inner symbol.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#41989; Package emacs. (Mon, 01 Mar 2021 15:47:02 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Philipp Stephani <p.stephani2 <at> gmail.com>
Cc: 41989 <at> debbugs.gnu.org
Subject: Re: bug#41989: 28.0.50; Edebug doesn't generate symbols for
 `cl-flet' etc.
Date: Mon, 01 Mar 2021 16:46:00 +0100
Philipp Stephani <p.stephani2 <at> gmail.com> writes:

>> Edebug (using C-u C-M-x) a function like the following:
>>
>> (defun bar ()
>>   (cl-flet ((foo () 1)) (foo))
>>   (cl-flet ((foo () 2)) (foo)))
>>
>> *Messages* will now contain
>>
>> Edebug: foo [4 times]
>> Edebug: bar
>>
>> Note how `foo' has been instrumented 4 times.  A factor of 2 is due to
>> Bug#41988; another factor of 2 is due to Edebug not generating a unique
>> symbol.  Edebug should generate symbols such as `bar <at> foo <at> 1' and
>> `bar <at> foo <at> 2' for these definitions.
>
> I've partially fixed this with commit d8ab98843e. It's not completely
> fixed because Edebug doesn't yet detect the outer definition and adds
> it to the inner symbol.

I'm not quite sure what the status is here now.  I tried `C-u C-M-x'-ing
it now and got:

Edebug: foo <at> cl-flet <at> 118
Edebug: foo <at> cl-flet <at> 119
Edebug: bar
bar

Which seems correct.  And stepping through the function also works.  So
is there more to be done here?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Added tag(s) moreinfo. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Mon, 01 Mar 2021 15:47:03 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#41989; Package emacs. (Mon, 01 Mar 2021 16:00:02 GMT) Full text and rfc822 format available.

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

From: Philipp Stephani <p.stephani2 <at> gmail.com>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 41989 <at> debbugs.gnu.org
Subject: Re: bug#41989: 28.0.50;
 Edebug doesn't generate symbols for `cl-flet' etc.
Date: Mon, 1 Mar 2021 16:59:40 +0100
Am Mo., 1. März 2021 um 16:46 Uhr schrieb Lars Ingebrigtsen <larsi <at> gnus.org>:
>
> Philipp Stephani <p.stephani2 <at> gmail.com> writes:
>
> >> Edebug (using C-u C-M-x) a function like the following:
> >>
> >> (defun bar ()
> >>   (cl-flet ((foo () 1)) (foo))
> >>   (cl-flet ((foo () 2)) (foo)))
> >>
> >> *Messages* will now contain
> >>
> >> Edebug: foo [4 times]
> >> Edebug: bar
> >>
> >> Note how `foo' has been instrumented 4 times.  A factor of 2 is due to
> >> Bug#41988; another factor of 2 is due to Edebug not generating a unique
> >> symbol.  Edebug should generate symbols such as `bar <at> foo <at> 1' and
> >> `bar <at> foo <at> 2' for these definitions.
> >
> > I've partially fixed this with commit d8ab98843e. It's not completely
> > fixed because Edebug doesn't yet detect the outer definition and adds
> > it to the inner symbol.
>
> I'm not quite sure what the status is here now.  I tried `C-u C-M-x'-ing
> it now and got:
>
> Edebug: foo <at> cl-flet <at> 118
> Edebug: foo <at> cl-flet <at> 119
> Edebug: bar
> bar
>
> Which seems correct.  And stepping through the function also works.  So
> is there more to be done here?

It would be nice to include the outer function ("bar") in the
generated symbol, e.g. "bar <at> foo <at> cl-flet <at> 118" or similar.
But that would really be the icing on the cake, and it's not necessary
to avoid duplicate symbols. So more of a nice to have; feel free to
close this bug if it's too hard to implement.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#41989; Package emacs. (Tue, 02 Mar 2021 06:59:01 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Philipp Stephani <p.stephani2 <at> gmail.com>
Cc: 41989 <at> debbugs.gnu.org, Stefan Monnier <monnier <at> iro.umontreal.ca>
Subject: Re: bug#41989: 28.0.50; Edebug doesn't generate symbols for
 `cl-flet' etc.
Date: Tue, 02 Mar 2021 07:57:55 +0100
Philipp Stephani <p.stephani2 <at> gmail.com> writes:

>> I'm not quite sure what the status is here now.  I tried `C-u C-M-x'-ing
>> it now and got:
>>
>> Edebug: foo <at> cl-flet <at> 118
>> Edebug: foo <at> cl-flet <at> 119
>> Edebug: bar
>> bar
>>
>> Which seems correct.  And stepping through the function also works.  So
>> is there more to be done here?
>
> It would be nice to include the outer function ("bar") in the
> generated symbol, e.g. "bar <at> foo <at> cl-flet <at> 118" or similar.
> But that would really be the icing on the cake, and it's not necessary
> to avoid duplicate symbols. So more of a nice to have; feel free to
> close this bug if it's too hard to implement.

Ah, right.  Yes, that does sound like an even better way to name these
flets -- easier to identify in backtraces and the like (but I guess
normally the backtrace would also tell you the enclosing function, so
perhaps the utility would be limited)...

Perhaps Stefan M has an opinion here?  Added to the CCs.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#41989; Package emacs. (Tue, 02 Mar 2021 13:59:02 GMT) Full text and rfc822 format available.

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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 41989 <at> debbugs.gnu.org, Philipp Stephani <p.stephani2 <at> gmail.com>
Subject: Re: bug#41989: 28.0.50; Edebug doesn't generate symbols for
 `cl-flet' etc.
Date: Tue, 02 Mar 2021 08:58:08 -0500
>>> I'm not quite sure what the status is here now.  I tried `C-u C-M-x'-ing
>>> it now and got:
>>>
>>> Edebug: foo <at> cl-flet <at> 118
>>> Edebug: foo <at> cl-flet <at> 119
>>> Edebug: bar
>>> bar
>>>
>>> Which seems correct.  And stepping through the function also works.  So
>>> is there more to be done here?
>>
>> It would be nice to include the outer function ("bar") in the
>> generated symbol, e.g. "bar <at> foo <at> cl-flet <at> 118" or similar.
>> But that would really be the icing on the cake, and it's not necessary
>> to avoid duplicate symbols. So more of a nice to have; feel free to
>> close this bug if it's too hard to implement.
>
> Ah, right.  Yes, that does sound like an even better way to name these
> flets -- easier to identify in backtraces and the like (but I guess
> normally the backtrace would also tell you the enclosing function, so
> perhaps the utility would be limited)...
>
> Perhaps Stefan M has an opinion here?  Added to the CCs.

[ I recently worked on this part of Edebug, which incidentally lead me
  to fix bug#41988.  ]

I think it wouldn't be very hard to add the outer function(s) name(s),
but it wouldn't remove the need for the "@NNN" to make the functions
unique.  Also I'm still not quite sure why those names matter, to be
honest, so the motivation to improve the behavior is fairly low.


        Stefan





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#41989; Package emacs. (Wed, 03 Mar 2021 14:50:02 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 41989 <at> debbugs.gnu.org, Philipp Stephani <p.stephani2 <at> gmail.com>
Subject: Re: bug#41989: 28.0.50; Edebug doesn't generate symbols for
 `cl-flet' etc.
Date: Wed, 03 Mar 2021 15:49:07 +0100
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:

> I think it wouldn't be very hard to add the outer function(s) name(s),
> but it wouldn't remove the need for the "@NNN" to make the functions
> unique.  Also I'm still not quite sure why those names matter, to be
> honest, so the motivation to improve the behavior is fairly low.

The names don't matter much -- except as a (somewhat minor) readability
thing in backtraces or the like.  @bar <at> foo would point the reader of the
backtrace to the right place...

But that seems of quite limited practical value, so I'm closing this
bug report.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




bug closed, send any further explanations to 41989 <at> debbugs.gnu.org and Philipp <p.stephani2 <at> gmail.com> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Wed, 03 Mar 2021 14:50:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#41989; Package emacs. (Wed, 03 Mar 2021 16:47:02 GMT) Full text and rfc822 format available.

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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 41989 <at> debbugs.gnu.org, Philipp Stephani <p.stephani2 <at> gmail.com>
Subject: Re: bug#41989: 28.0.50; Edebug doesn't generate symbols for
 `cl-flet' etc.
Date: Wed, 03 Mar 2021 11:45:54 -0500
> The names don't matter much -- except as a (somewhat minor) readability
> thing in backtraces or the like.  @bar <at> foo would point the reader of the
> backtrace to the right place...
>
> But that seems of quite limited practical value, so I'm closing this
> bug report.

I don't think those Edebug names appear in backtraces.


        Stefan





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 01 Apr 2021 11:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 26 days ago.

Previous Next


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