unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#41989: 28.0.50; Edebug doesn't generate symbols for `cl-flet' etc.
@ 2020-06-21 17:03 Philipp
  2020-08-02 15:42 ` Philipp Stephani
  0 siblings, 1 reply; 8+ messages in thread
From: Philipp @ 2020-06-21 17:03 UTC (permalink / raw)
  To: 41989


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@foo@1' and
`bar@foo@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))





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

* bug#41989: 28.0.50; Edebug doesn't generate symbols for `cl-flet' etc.
  2020-06-21 17:03 bug#41989: 28.0.50; Edebug doesn't generate symbols for `cl-flet' etc Philipp
@ 2020-08-02 15:42 ` Philipp Stephani
  2021-03-01 15:46   ` Lars Ingebrigtsen
  0 siblings, 1 reply; 8+ messages in thread
From: Philipp Stephani @ 2020-08-02 15:42 UTC (permalink / raw)
  To: 41989

Am So., 21. Juni 2020 um 19:04 Uhr schrieb Philipp <p.stephani2@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@foo@1' and
> `bar@foo@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.





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

* bug#41989: 28.0.50; Edebug doesn't generate symbols for `cl-flet' etc.
  2020-08-02 15:42 ` Philipp Stephani
@ 2021-03-01 15:46   ` Lars Ingebrigtsen
  2021-03-01 15:59     ` Philipp Stephani
  0 siblings, 1 reply; 8+ messages in thread
From: Lars Ingebrigtsen @ 2021-03-01 15:46 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: 41989

Philipp Stephani <p.stephani2@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@foo@1' and
>> `bar@foo@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@cl-flet@118
Edebug: foo@cl-flet@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





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

* bug#41989: 28.0.50; Edebug doesn't generate symbols for `cl-flet' etc.
  2021-03-01 15:46   ` Lars Ingebrigtsen
@ 2021-03-01 15:59     ` Philipp Stephani
  2021-03-02  6:57       ` Lars Ingebrigtsen
  0 siblings, 1 reply; 8+ messages in thread
From: Philipp Stephani @ 2021-03-01 15:59 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 41989

Am Mo., 1. März 2021 um 16:46 Uhr schrieb Lars Ingebrigtsen <larsi@gnus.org>:
>
> Philipp Stephani <p.stephani2@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@foo@1' and
> >> `bar@foo@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@cl-flet@118
> Edebug: foo@cl-flet@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@foo@cl-flet@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.





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

* bug#41989: 28.0.50; Edebug doesn't generate symbols for `cl-flet' etc.
  2021-03-01 15:59     ` Philipp Stephani
@ 2021-03-02  6:57       ` Lars Ingebrigtsen
  2021-03-02 13:58         ` Stefan Monnier
  0 siblings, 1 reply; 8+ messages in thread
From: Lars Ingebrigtsen @ 2021-03-02  6:57 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: 41989, Stefan Monnier

Philipp Stephani <p.stephani2@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@cl-flet@118
>> Edebug: foo@cl-flet@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@foo@cl-flet@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





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

* bug#41989: 28.0.50; Edebug doesn't generate symbols for `cl-flet' etc.
  2021-03-02  6:57       ` Lars Ingebrigtsen
@ 2021-03-02 13:58         ` Stefan Monnier
  2021-03-03 14:49           ` Lars Ingebrigtsen
  0 siblings, 1 reply; 8+ messages in thread
From: Stefan Monnier @ 2021-03-02 13:58 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 41989, Philipp Stephani

>>> 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@cl-flet@118
>>> Edebug: foo@cl-flet@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@foo@cl-flet@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






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

* bug#41989: 28.0.50; Edebug doesn't generate symbols for `cl-flet' etc.
  2021-03-02 13:58         ` Stefan Monnier
@ 2021-03-03 14:49           ` Lars Ingebrigtsen
  2021-03-03 16:45             ` Stefan Monnier
  0 siblings, 1 reply; 8+ messages in thread
From: Lars Ingebrigtsen @ 2021-03-03 14:49 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 41989, Philipp Stephani

Stefan Monnier <monnier@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@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





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

* bug#41989: 28.0.50; Edebug doesn't generate symbols for `cl-flet' etc.
  2021-03-03 14:49           ` Lars Ingebrigtsen
@ 2021-03-03 16:45             ` Stefan Monnier
  0 siblings, 0 replies; 8+ messages in thread
From: Stefan Monnier @ 2021-03-03 16:45 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 41989, Philipp Stephani

> The names don't matter much -- except as a (somewhat minor) readability
> thing in backtraces or the like.  @bar@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






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

end of thread, other threads:[~2021-03-03 16:45 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-21 17:03 bug#41989: 28.0.50; Edebug doesn't generate symbols for `cl-flet' etc Philipp
2020-08-02 15:42 ` Philipp Stephani
2021-03-01 15:46   ` Lars Ingebrigtsen
2021-03-01 15:59     ` Philipp Stephani
2021-03-02  6:57       ` Lars Ingebrigtsen
2021-03-02 13:58         ` Stefan Monnier
2021-03-03 14:49           ` Lars Ingebrigtsen
2021-03-03 16:45             ` Stefan Monnier

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