GNU bug report logs -
#29919
26.0.90; Incorrect Edebug spec for cl-macrolet
Previous Next
Reported by: Gemini Lasswell <gazally <at> runbox.com>
Date: Sun, 31 Dec 2017 21:37:02 UTC
Severity: normal
Tags: fixed
Merged with 30348
Found in versions 26.0.90, 26.0.91
Fixed in version 27.1
Done: Gemini Lasswell <gazally <at> runbox.com>
Bug is archived. No further changes may be made.
Full log
Message #10 received at 29919 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Gemini Lasswell <gazally <at> 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.
[0001-Fix-Edebug-spec-for-cl-macrolet-bug-29919.patch (text/plain, attachment)]
This bug report was last modified 6 years and 353 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.