bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#29919: 26.0.90; Incorrect Edebug spec for cl-macrolet


From: Gemini Lasswell
Subject: bug#29919: 26.0.90; Incorrect Edebug spec for cl-macrolet
Date: Tue, 24 Jul 2018 16:20:42 -0700
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1.50 (gnu/linux)

Gemini Lasswell <gazally@runbox.com> writes:

> Edebug gives an error when trying to instrument a function which uses
> cl-macrolet to define a macro with an argument list containing &rest.
>
> Looks to me like the problem is that the Edebug spec is using (&rest arg)
> when it should be using cl-macro-list, assuming that cl-macrolet
> supports full CL argument lists.

That was one of the problems, and the other problem was that Edebug
would wrap all the arguments to the temporary macros, even those that
are not evaluated, causing breakage. I solved that in the attached patch
by writing Edebug match functions for cl-macrolet which treat the
temporary macros like normal macros without Edebug specs, which means
none of their arguments get wrapped. This fixes the breakage but means
you can't Edebug through those of the arguments which do get evaluated.
To do that we'd have to add the ability to have (declare (debug ...))
forms in the temporary macro bodies so that they could have temporary
Edebug specs, which would mean changing cl-macrolet itself instead of
just its Edebug spec.

Kaushal, I was able to step through org-export-data with this patch in
place.  Let me know if you are able to give it a try.

Attachment: 0001-Fix-Edebug-spec-for-cl-macrolet-bug-29919.patch
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]