Subject: Re: bug#71934: 31.0.50; edebug--called-interactively-skip vs. new fun objects
From: Stefan Monnier <[email-masked]>
To: Michael Heerdegen <[email-masked]>
Cc: [email-masked]
Date: Fri, 05 Jul 2024 00:24:55 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

>> I pushed a patch to `emacs-30` which should fix this.
>> Can you confirm it fixes it in your real use case as well?
> Thanks.  Other use cases are fixed as well

Thank you, closing.

>  but advices are broken :-(
[...]
> (advice-add 'f :around (defun my-f--around-ad (f &rest args) (apply f args)))

AFAIK that's not new.

> Hitting [print] says nil.  AFAIU this should also work transparently,
> right?  The breakage seems to date further back in this case.

It should work for most advices but not for `:around` advice, because
fundamentally, it's virtually impossible to recognize this

    (apply f args)

as being an "interactive call".

> And i have another request: could you please search for the few other
> occurrences of the symbol 'closure' in the Emacs Elisp code base?
> I guess in most cases there is a need to update these places, too.

I already did.
There's one case on `comp.el` which may require some update, but I don't
understand the code enough to know what it intends to do.
It seems to match both `lambda` and `closure`, hence function *values*,
but somehow it doesn't try and handle byte-code functions which are far
more common function values, so maybe the `closure` is just irrelevant
and the code is expected to match source code expressions (whose
evaluation will return functions)?

        Stefan