GNU bug report logs - #71934
31.0.50; edebug--called-interactively-skip vs. new fun objects

Previous Next

Package: emacs;

Reported by: Michael Heerdegen <michael_heerdegen <at> web.de>

Date: Thu, 4 Jul 2024 05:12:02 UTC

Severity: normal

Found in version 31.0.50

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


Message #58 received at 71934 <at> debbugs.gnu.org (full text, mbox):

From: Andrea Corallo <acorallo <at> gnu.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Michael Heerdegen <michael_heerdegen <at> web.de>, acm <at> muc.de,
 monnier <at> iro.umontreal.ca, 71934 <at> debbugs.gnu.org
Subject: Re: comp--spill-lap-function and closure (wad: bug#71934: 31.0.50;
 edebug--called-interactively-skip vs. new fun objects)
Date: Sat, 06 Jul 2024 04:06:25 -0400
Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: Michael Heerdegen <michael_heerdegen <at> web.de>
>> Cc: Stefan Monnier <monnier <at> iro.umontreal.ca>,  Andrea Corallo
>>  <acorallo <at> gnu.org>,  Eli Zaretskii <eliz <at> gnu.org>,  71934 <at> debbugs.gnu.org
>> Date: Sat, 06 Jul 2024 03:06:24 +0200
>> 
>> Alan Mackenzie <acm <at> muc.de> writes:
>> 
>> > > > All very clever arguments, no doubt, but in the end it means you
>> > > > cannot native compile foo.
>> >
>> > > To obey the docstring, ....
>> >
>> > Forget that doc string, just do what is right, expected, and convenient
>> > for Emacs users, and adjust the doc string afterwards.
>> 
>> We are actually trying to do that, but we don't understand the code
>> because of the lacking or wrong documentation.
>
> I don't understand this difficulty.  Andrea, who wrote that function
> (and everything around it) is here, and is very helpful.  How come
> this lack of understanding, let alone lack of documentation, is still
> with us?

Must say I'm really lost in this thread.

First I don't understand the functionality that got lost.

Second the method "comp-spill-lap-function ((form list))" never served the
case (native-compile 'foo) but rather (native-compile '(lambda () 3)).

(Now if the form (closure () 3) does not exist in elisp as valid form
this might translate in 1 line fix in 'comp-spill-lap-function ((form
list))' but let discuss this aside and is not about a lost
functionality).

(native-compile 'foo) is served by 'comp--spill-lap-function ((function-name symbol))'.

Also:

(native-compile 'foo) works (as always did) and even what Alan added
(native compiling lambdas in function native compiled by symbol name)
that is:

(defun foo () "foo doc string"
       (lambda () "lambda doc string" 3))

(subr-native-elisp-p (funcall (native-compile 'foo)))

Still works for me on master.

So I must be really missing something in this discussion.

Let us please stick to exactly what worked in which version and what
does not in which other version, if we identify a case will be easy to
fix.

And even more importantly, I'll make sure we have a test that covers
that case so we can't have any other regression (assuming we had one).

Thanks

  Andrea




This bug report was last modified 314 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.