[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#41988: 28.0.50; Edebug unconditionally instruments definitions with
From: |
Alan Mackenzie |
Subject: |
bug#41988: 28.0.50; Edebug unconditionally instruments definitions with &define specs |
Date: |
21 Jun 2020 23:48:16 -0000 |
User-agent: |
tin/2.4.4-20191224 ("Millburn") (FreeBSD/11.3-RELEASE-p9 (amd64)) |
Hello, Philipp.
In article <mailman.222.1592758804.2574.bug-gnu-emacs@gnu.org> you wrote:
> As an example, edebug-instrument (C-u C-M-x) the following definition:
> (defun bar ()
> (cl-flet ((foo () 1))
> (foo)))
> The *Messages* buffer now says
> Edebug: foo [2 times]
> Edebug: bar
> Note the '[2 times]'. I believe this is because `edebug-match-&define'
> calls `edebug-make-form-wrapper' unconditionally. The Edebug spec for
> `cl-flet' has two `&or' branches that both use `&define', so if the
> first one doesn't match it will still create a definition using
> `edebug-make-form-wrapper'. Probably `edebug-match-&define' should only
> invoke `edebug-make-form-wrapper' if the specification actually matches.
I don't understand why this is a bug. What precisely is wrong with the
messages displayed in *Messages*? Or is it something else which is
wrong?
After instrumenting bar, can you actually step through it with edebug?
(I can't try it out myself, since I can't discern from the documentation
what, precisely, cl-flet is supposed to do.)
> 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
[ .... ]
--
Alan Mackenzie (Nuremberg, Germany).