GNU bug report logs - #56988
Add call-interactively to "never optimize" list for native compilation

Previous Next

Package: emacs;

Reported by: Lynn Winebarger <owinebar <at> gmail.com>

Date: Fri, 5 Aug 2022 01:38:02 UTC

Severity: normal

Done: Andrea Corallo <acorallo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 56988 in the body.
You can then email your comments to 56988 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#56988; Package emacs. (Fri, 05 Aug 2022 01:38:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Lynn Winebarger <owinebar <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 05 Aug 2022 01:38:02 GMT) Full text and rfc822 format available.

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

From: Lynn Winebarger <owinebar <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Add call-interactively to "never optimize" list for native compilation
Date: Thu, 4 Aug 2022 21:37:13 -0400
[Message part 1 (text/plain, inline)]
Version 28.1:
Since dumping an Emacs with ~500 core libraries in addition to the 100+
from loadup (596 NCUs in the dump), I noticed huge numbers of async jobs
compiling trampolines for call-interactively.  Adding call-interactively -
and funcall-interactively for good measure - to the customization variable
for functions to never optimize, as well as to the hard-coded list in
advice--add-function, then recompiling and dumping resolved the issue.

Lynn
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56988; Package emacs. (Fri, 05 Aug 2022 10:08:01 GMT) Full text and rfc822 format available.

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

From: Andrea Corallo <akrl <at> sdf.org>
To: Lynn Winebarger <owinebar <at> gmail.com>
Cc: 56988 <at> debbugs.gnu.org
Subject: Re: bug#56988: Add call-interactively to "never optimize" list for
 native compilation
Date: Fri, 05 Aug 2022 10:07:46 +0000
Lynn Winebarger <owinebar <at> gmail.com> writes:

> Version 28.1:
> Since dumping an Emacs with ~500 core libraries in addition to the 100+ from loadup (596 NCUs in the dump), I noticed
> huge numbers of async jobs compiling trampolines for call-interactively.  Adding call-interactively - and
> funcall-interactively for good measure - to the customization variable for functions to never optimize, as well as to the
> hard-coded list in advice--add-function, then recompiling and dumping resolved the issue.

Hi Lynn,

I think we want to keep on optimizing `call-interactively' as changing
this policy this could have a negative performance impact in certain
scenarios.

Perhaps should be investigated why on the process you are engineering
this is happening, and modify it so that only one trampoline is
compiled.

Best Regards

  Andrea




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56988; Package emacs. (Fri, 05 Aug 2022 12:14:02 GMT) Full text and rfc822 format available.

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

From: Lynn Winebarger <owinebar <at> gmail.com>
To: Andrea Corallo <akrl <at> sdf.org>
Cc: 56988 <at> debbugs.gnu.org
Subject: Re: bug#56988: Add call-interactively to "never optimize" list for
 native compilation
Date: Fri, 5 Aug 2022 08:13:26 -0400
[Message part 1 (text/plain, inline)]
On Fri, Aug 5, 2022, 6:07 AM Andrea Corallo <akrl <at> sdf.org> wrote:

> Lynn Winebarger <owinebar <at> gmail.com> writes:
>
> > Version 28.1:
> > Since dumping an Emacs with ~500 core libraries in addition to the 100+
> from loadup (596 NCUs in the dump), I noticed
> > huge numbers of async jobs compiling trampolines for
> call-interactively.  Adding call-interactively - and
> > funcall-interactively for good measure - to the customization variable
> for functions to never optimize, as well as to the
> > hard-coded list in advice--add-function, then recompiling and dumping
> resolved the issue.
>
> Hi Lynn,
>
> I think we want to keep on optimizing `call-interactively' as changing
> this policy this could have a negative performance impact in certain
> scenarios.
>
> Perhaps should be investigated why on the process you are engineering
> this is happening, and modify it so that only one trampoline is
> compiled.


Isn't call-interactively only used in the context of requesting user
input?  That would seem unlikely to benefit from optimization.
Something in one those additional core libraries being dumped is adding
advice to call-interactively.  One of the ways it started is by opening
customize on a group that autoloads a library that hasn't been native
compiled.  That starts the async process for the compiler.  This will
happen just running emacs with whatever library is advising
call-interactively in a problematic way in the dump.  It's not part of my
build process unless I use one of those builds with the additional
libraries as the compiler.
I'm noting it as a bug because it will bite anyone who includes these
additional libraries in the dump as a regular user, not because it impacts
my build process.  I know that's not frequently the case now, but it should
be eventually.

Lynn
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56988; Package emacs. (Fri, 05 Aug 2022 12:19:01 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Lynn Winebarger <owinebar <at> gmail.com>
Cc: 56988 <at> debbugs.gnu.org, Andrea Corallo <akrl <at> sdf.org>
Subject: Re: bug#56988: Add call-interactively to "never optimize" list for
 native compilation
Date: Fri, 05 Aug 2022 14:18:47 +0200
Lynn Winebarger <owinebar <at> gmail.com> writes:

> Isn't call-interactively only used in the context of requesting user
> input?  That would seem unlikely to benefit from optimization.

Some interactive specs are pretty involved, and definitely benefit from
being compiled, so we're not going to stop doing that.





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56988; Package emacs. (Fri, 05 Aug 2022 12:35:01 GMT) Full text and rfc822 format available.

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

From: Lynn Winebarger <owinebar <at> gmail.com>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 56988 <at> debbugs.gnu.org, Andrea Corallo <akrl <at> sdf.org>
Subject: Re: bug#56988: Add call-interactively to "never optimize" list for
 native compilation
Date: Fri, 5 Aug 2022 08:33:42 -0400
[Message part 1 (text/plain, inline)]
On Fri, Aug 5, 2022, 8:18 AM Lars Ingebrigtsen <larsi <at> gnus.org> wrote:

> Lynn Winebarger <owinebar <at> gmail.com> writes:
>
> > Isn't call-interactively only used in the context of requesting user
> > input?  That would seem unlikely to benefit from optimization.
>
> Some interactive specs are pretty involved, and definitely benefit from
> being compiled, so we're not going to stop doing that.
>

Maybe it's only an issue in the "advice" case?  I can try removing it from
the customization variable but leave it in the hard coded list in the
advice--add-function code, if that would make a difference.

Lynn
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#56988; Package emacs. (Sun, 07 Aug 2022 11:33:02 GMT) Full text and rfc822 format available.

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

From: Lynn Winebarger <owinebar <at> gmail.com>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 56988 <at> debbugs.gnu.org, Andrea Corallo <akrl <at> sdf.org>
Subject: Re: bug#56988: Add call-interactively to "never optimize" list for
 native compilation
Date: Sun, 7 Aug 2022 07:32:24 -0400
[Message part 1 (text/plain, inline)]
On Fri, Aug 5, 2022, 8:18 AM Lars Ingebrigtsen <larsi <at> gnus.org> wrote:

> Lynn Winebarger <owinebar <at> gmail.com> writes:
>
> > Isn't call-interactively only used in the context of requesting user
> > input?  That would seem unlikely to benefit from optimization.
>
> Some interactive specs are pretty involved, and definitely benefit from
> being compiled, so we're not going to stop doing that.


Another possibility would be to ensure there is a standard pdmp file to use
for compiling, regardless of what is being used for the session calling the
compiler.  I know that is not an issue at the moment, but I'm the canary in
the coal mine for when dumping additional native compiled units.  That
feature is way too nice for someone to not get it in the trunk at some
point.

Lynn
[Message part 2 (text/html, inline)]

Reply sent to Andrea Corallo <acorallo <at> gnu.org>:
You have taken responsibility. (Wed, 07 Jun 2023 21:19:03 GMT) Full text and rfc822 format available.

Notification sent to Lynn Winebarger <owinebar <at> gmail.com>:
bug acknowledged by developer. (Wed, 07 Jun 2023 21:19:03 GMT) Full text and rfc822 format available.

Message #25 received at 56988-done <at> debbugs.gnu.org (full text, mbox):

From: Andrea Corallo <acorallo <at> gnu.org>
To: Lynn Winebarger <owinebar <at> gmail.com>
Cc: Lars Ingebrigtsen <larsi <at> gnus.org>, Andrea Corallo <akrl <at> sdf.org>,
 56988-done <at> debbugs.gnu.org
Subject: Re: bug#56988: Add call-interactively to "never optimize" list for
 native compilation
Date: Wed, 07 Jun 2023 17:18:51 -0400
Hello all,

I'm closing this bug as not reproducible on our codebase.

Best Regards

  Andrea




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 06 Jul 2023 11:24:10 GMT) Full text and rfc822 format available.

This bug report was last modified 288 days ago.

Previous Next


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