unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Native compilation on as default?
@ 2023-06-08  8:44 Andrea Corallo
  2023-06-09 11:23 ` Eli Zaretskii
  0 siblings, 1 reply; 37+ messages in thread
From: Andrea Corallo @ 2023-06-08  8:44 UTC (permalink / raw)
  To: emacs-devel

Hi all,

native compilation was off by default in 28 and same will be for 29.  I
believe the 28 series proved this feature to be stable.

Also I read a number of dristros (Fedora, Debian, openSUSE, Arch,
Gentoo, NixOS, Guix) offer Emacs with native compilation on.

What about having it on as default for emacs 30?  In case two scenarios:

1- On by default when libgccjit is present otherwise off.

2- On by default and if libgccjit is not present we raise a complain at
configure time, the user can either install libgccjit or manually
indicate --with-native-compilation=no.

WDYT?

Best Regards

  Andrea



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-06-08  8:44 Native compilation on as default? Andrea Corallo
@ 2023-06-09 11:23 ` Eli Zaretskii
  2023-06-09 16:56   ` Andrea Corallo
  2023-10-25 14:11   ` Andrea Corallo
  0 siblings, 2 replies; 37+ messages in thread
From: Eli Zaretskii @ 2023-06-09 11:23 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: emacs-devel

> From: Andrea Corallo <acorallo@gnu.org>
> Date: Thu, 08 Jun 2023 04:44:12 -0400
> 
> native compilation was off by default in 28 and same will be for 29.  I
> believe the 28 series proved this feature to be stable.
> 
> Also I read a number of dristros (Fedora, Debian, openSUSE, Arch,
> Gentoo, NixOS, Guix) offer Emacs with native compilation on.
> 
> What about having it on as default for emacs 30?  In case two scenarios:
> 
> 1- On by default when libgccjit is present otherwise off.
> 
> 2- On by default and if libgccjit is not present we raise a complain at
> configure time, the user can either install libgccjit or manually
> indicate --with-native-compilation=no.
> 
> WDYT?

I'd like to wait with this decision until after Emacs 29.1 is out.  We
made several non-trivial changes in native compilation in Emacs 29, so
I'd like to see how it fares and how it is received by the community.

This decision isn't urgent yet, since Emacs 30 will not be released
soon enough to begin worry now.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-06-09 11:23 ` Eli Zaretskii
@ 2023-06-09 16:56   ` Andrea Corallo
  2023-06-09 17:22     ` Eli Zaretskii
  2023-10-25 14:11   ` Andrea Corallo
  1 sibling, 1 reply; 37+ messages in thread
From: Andrea Corallo @ 2023-06-09 16:56 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Andrea Corallo <acorallo@gnu.org>
>> Date: Thu, 08 Jun 2023 04:44:12 -0400
>> 
>> native compilation was off by default in 28 and same will be for 29.  I
>> believe the 28 series proved this feature to be stable.
>> 
>> Also I read a number of dristros (Fedora, Debian, openSUSE, Arch,
>> Gentoo, NixOS, Guix) offer Emacs with native compilation on.
>> 
>> What about having it on as default for emacs 30?  In case two scenarios:
>> 
>> 1- On by default when libgccjit is present otherwise off.
>> 
>> 2- On by default and if libgccjit is not present we raise a complain at
>> configure time, the user can either install libgccjit or manually
>> indicate --with-native-compilation=no.
>> 
>> WDYT?
>
> I'd like to wait with this decision until after Emacs 29.1 is out.  We
> made several non-trivial changes in native compilation in Emacs 29, so
> I'd like to see how it fares and how it is received by the community.
>
> This decision isn't urgent yet, since Emacs 30 will not be released
> soon enough to begin worry now.

Agreed, sounds sensible to me.

Especially in case we go for solution 2 I'd suggest not to wait to
pickup the decision excessively late in the 30 dev cycle anyway, this in
order to be able to evaluate the user acceptance.

I'll ping this discussion in the future then.

Thanks

  Andrea



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-06-09 16:56   ` Andrea Corallo
@ 2023-06-09 17:22     ` Eli Zaretskii
  0 siblings, 0 replies; 37+ messages in thread
From: Eli Zaretskii @ 2023-06-09 17:22 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: emacs-devel

> From: Andrea Corallo <acorallo@gnu.org>
> Cc: emacs-devel@gnu.org
> Date: Fri, 09 Jun 2023 12:56:52 -0400
> 
> Especially in case we go for solution 2 I'd suggest not to wait to
> pickup the decision excessively late in the 30 dev cycle anyway, this in
> order to be able to evaluate the user acceptance.

Right.

> I'll ping this discussion in the future then.

TIA



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-06-09 11:23 ` Eli Zaretskii
  2023-06-09 16:56   ` Andrea Corallo
@ 2023-10-25 14:11   ` Andrea Corallo
  2023-10-25 14:18     ` Eli Zaretskii
  2023-10-26  2:27     ` Richard Stallman
  1 sibling, 2 replies; 37+ messages in thread
From: Andrea Corallo @ 2023-10-25 14:11 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Andrea Corallo <acorallo@gnu.org>
>> Date: Thu, 08 Jun 2023 04:44:12 -0400
>> 
>> native compilation was off by default in 28 and same will be for 29.  I
>> believe the 28 series proved this feature to be stable.
>> 
>> Also I read a number of dristros (Fedora, Debian, openSUSE, Arch,
>> Gentoo, NixOS, Guix) offer Emacs with native compilation on.
>> 
>> What about having it on as default for emacs 30?  In case two scenarios:
>> 
>> 1- On by default when libgccjit is present otherwise off.
>> 
>> 2- On by default and if libgccjit is not present we raise a complain at
>> configure time, the user can either install libgccjit or manually
>> indicate --with-native-compilation=no.
>> 
>> WDYT?
>
> I'd like to wait with this decision until after Emacs 29.1 is out.  We
> made several non-trivial changes in native compilation in Emacs 29, so
> I'd like to see how it fares and how it is received by the community.

Hi Eli,

29.2 pretest out reminded me I promised to ping this thread so here I'm
:)

Best Regards

  Andrea



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-25 14:11   ` Andrea Corallo
@ 2023-10-25 14:18     ` Eli Zaretskii
  2023-10-25 14:42       ` Stefan Kangas
  2023-10-26  2:27     ` Richard Stallman
  1 sibling, 1 reply; 37+ messages in thread
From: Eli Zaretskii @ 2023-10-25 14:18 UTC (permalink / raw)
  To: Andrea Corallo, Stefan Kangas; +Cc: emacs-devel

> From: Andrea Corallo <acorallo@gnu.org>
> Cc: emacs-devel@gnu.org
> Date: Wed, 25 Oct 2023 10:11:36 -0400
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> From: Andrea Corallo <acorallo@gnu.org>
> >> Date: Thu, 08 Jun 2023 04:44:12 -0400
> >> 
> >> native compilation was off by default in 28 and same will be for 29.  I
> >> believe the 28 series proved this feature to be stable.
> >> 
> >> Also I read a number of dristros (Fedora, Debian, openSUSE, Arch,
> >> Gentoo, NixOS, Guix) offer Emacs with native compilation on.
> >> 
> >> What about having it on as default for emacs 30?  In case two scenarios:
> >> 
> >> 1- On by default when libgccjit is present otherwise off.
> >> 
> >> 2- On by default and if libgccjit is not present we raise a complain at
> >> configure time, the user can either install libgccjit or manually
> >> indicate --with-native-compilation=no.
> >> 
> >> WDYT?
> >
> > I'd like to wait with this decision until after Emacs 29.1 is out.  We
> > made several non-trivial changes in native compilation in Emacs 29, so
> > I'd like to see how it fares and how it is received by the community.
> 
> Hi Eli,
> 
> 29.2 pretest out reminded me I promised to ping this thread so here I'm
> :)

Stefan, what is your opinion on this?



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-25 14:18     ` Eli Zaretskii
@ 2023-10-25 14:42       ` Stefan Kangas
  2023-10-25 20:50         ` Andrea Corallo
  0 siblings, 1 reply; 37+ messages in thread
From: Stefan Kangas @ 2023-10-25 14:42 UTC (permalink / raw)
  To: Eli Zaretskii, Andrea Corallo; +Cc: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> 29.2 pretest out reminded me I promised to ping this thread so here I'm
>> :)
>
> Stefan, what is your opinion on this?

I see no reason not to enable native-comp by default in Emacs 30.1.

We have had it as an optional for a full major release already, and it
is enabled by default in several major GNU/Linux distributions.  Some of
us have been using it for a full year or more before that.  It seems
stable enough.

I think we should take the chance to also change the default of
'native-comp-async-report-warnings-errors' to nil.  It is much too
intrusive for general use, and effectively duplicates the warnings users
already see during package installation.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-25 14:42       ` Stefan Kangas
@ 2023-10-25 20:50         ` Andrea Corallo
  2023-10-25 21:22           ` Stefan Kangas
  2023-10-26  4:58           ` Eli Zaretskii
  0 siblings, 2 replies; 37+ messages in thread
From: Andrea Corallo @ 2023-10-25 20:50 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: Eli Zaretskii, emacs-devel

Stefan Kangas <stefankangas@gmail.com> writes:

> Eli Zaretskii <eliz@gnu.org> writes:
>
>>> 29.2 pretest out reminded me I promised to ping this thread so here I'm
>>> :)
>>
>> Stefan, what is your opinion on this?
>
> I see no reason not to enable native-comp by default in Emacs 30.1.
>
> We have had it as an optional for a full major release already, and it
> is enabled by default in several major GNU/Linux distributions.  Some of
> us have been using it for a full year or more before that.  It seems
> stable enough.
>
> I think we should take the chance to also change the default of
> 'native-comp-async-report-warnings-errors' to nil.  It is much too
> intrusive for general use, and effectively duplicates the warnings users
> already see during package installation.

Thinking about this...  IME *the* warning we are interested in from the
async compilation is the:

"the function ‘xxx’ is not known to be defined."

This because typically xxx is not a function but a macro and is unknown
due to a missing require, the file end-up misscompiled and not
functional.

So I think we could have a new mode, still controlled by
native-comp-async-report-warnings-errors, that filters out all the
uninteresting warnings (that the programmer already got during byte
compilation) but still report this important one.

So even if the package developer doesn't use native compilation it can
get the bug report for the issue.

I suspect this might be a good compromise/solution.

WDYT?

  Andrea



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-25 20:50         ` Andrea Corallo
@ 2023-10-25 21:22           ` Stefan Kangas
  2023-10-25 21:33             ` Andrea Corallo
  2023-10-26  4:58           ` Eli Zaretskii
  1 sibling, 1 reply; 37+ messages in thread
From: Stefan Kangas @ 2023-10-25 21:22 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: Eli Zaretskii, emacs-devel

Andrea Corallo <acorallo@gnu.org> writes:

> Thinking about this...  IME *the* warning we are interested in from the
> async compilation is the:
>
> "the function ‘xxx’ is not known to be defined."
>
> This because typically xxx is not a function but a macro and is unknown
> due to a missing require, the file end-up misscompiled and not
> functional.

What is it specifically that makes this into a separate issue for the
native-compiler?  Shouldn't the byte-compiler also warn about a
situation like that?



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-25 21:22           ` Stefan Kangas
@ 2023-10-25 21:33             ` Andrea Corallo
  2023-10-25 22:48               ` Stefan Kangas
  2023-10-26  3:47               ` Dr. Arne Babenhauserheide
  0 siblings, 2 replies; 37+ messages in thread
From: Andrea Corallo @ 2023-10-25 21:33 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: Eli Zaretskii, emacs-devel

Stefan Kangas <stefankangas@gmail.com> writes:

> Andrea Corallo <acorallo@gnu.org> writes:
>
>> Thinking about this...  IME *the* warning we are interested in from the
>> async compilation is the:
>>
>> "the function ‘xxx’ is not known to be defined."
>>
>> This because typically xxx is not a function but a macro and is unknown
>> due to a missing require, the file end-up misscompiled and not
>> functional.
>
> What is it specifically that makes this into a separate issue for the
> native-compiler?  Shouldn't the byte-compiler also warn about a
> situation like that?

Hi Stefan,

doing some work I just re-discovered that a good a explaination of that
was written by Eli in the 'native-comp-async-report-warnings-errors' doc
:)

"
When native compilation happens asynchronously, it can produce
warnings and errors, some of which might not be emitted by a
byte-compilation.  The typical case for that is native-compiling
a file that is missing some ‘require’ of a necessary feature,
while having it already loaded into the environment when
byte-compiling.

As asynchronous native compilation always starts from a pristine
environment, it is more sensitive to such omissions, and might be
unable to compile such Lisp source files correctly.
"

Essentially if in Emacs one has for any reason the definition of the
macro loaded before invoking the byte-compiler, this will not complain
even if the require is missing.

Bests

  Andrea



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-25 21:33             ` Andrea Corallo
@ 2023-10-25 22:48               ` Stefan Kangas
  2023-10-26  0:32                 ` Po Lu
  2023-10-26  3:47               ` Dr. Arne Babenhauserheide
  1 sibling, 1 reply; 37+ messages in thread
From: Stefan Kangas @ 2023-10-25 22:48 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: Eli Zaretskii, emacs-devel

Andrea Corallo <acorallo@gnu.org> writes:

> doing some work I just re-discovered that a good a explaination of that
> was written by Eli in the 'native-comp-async-report-warnings-errors' doc
> :)
>
> "
> When native compilation happens asynchronously, it can produce
> warnings and errors, some of which might not be emitted by a
> byte-compilation.  The typical case for that is native-compiling
> a file that is missing some ‘require’ of a necessary feature,
> while having it already loaded into the environment when
> byte-compiling.
>
> As asynchronous native compilation always starts from a pristine
> environment, it is more sensitive to such omissions, and might be
> unable to compile such Lisp source files correctly.

Thanks for the reminder.  So I think the plan you outlined previously
sounds good.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-25 22:48               ` Stefan Kangas
@ 2023-10-26  0:32                 ` Po Lu
  2023-10-26  6:39                   ` Eli Zaretskii
  0 siblings, 1 reply; 37+ messages in thread
From: Po Lu @ 2023-10-26  0:32 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: Andrea Corallo, Eli Zaretskii, emacs-devel

Stefan Kangas <stefankangas@gmail.com> writes:

> Andrea Corallo <acorallo@gnu.org> writes:
>
>> doing some work I just re-discovered that a good a explaination of that
>> was written by Eli in the 'native-comp-async-report-warnings-errors' doc
>> :)
>>
>> "
>> When native compilation happens asynchronously, it can produce
>> warnings and errors, some of which might not be emitted by a
>> byte-compilation.  The typical case for that is native-compiling
>> a file that is missing some ‘require’ of a necessary feature,
>> while having it already loaded into the environment when
>> byte-compiling.
>>
>> As asynchronous native compilation always starts from a pristine
>> environment, it is more sensitive to such omissions, and might be
>> unable to compile such Lisp source files correctly.
>
> Thanks for the reminder.  So I think the plan you outlined previously
> sounds good.

I'm not opposed to this in principle, but two precautions are
prerequisite for instituting such a change.  First, the configure script
must arrange for native compilation to be disabled if libgccjit is
unavailable (or else ./configure && make will no longer work); and
second, I think it should be disabled when building from the Git
repository, for native compilation delays making the Lisp directory by a
length of time that is unacceptable for Emacs development.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-25 14:11   ` Andrea Corallo
  2023-10-25 14:18     ` Eli Zaretskii
@ 2023-10-26  2:27     ` Richard Stallman
  2023-10-26  3:55       ` brickviking
  2023-10-26  6:44       ` Eli Zaretskii
  1 sibling, 2 replies; 37+ messages in thread
From: Richard Stallman @ 2023-10-26  2:27 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: eliz, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

Building Emacs with native compilation is a lot more fragile
than without.  Meanwhile, many users don't need it because Emacs
is fast enough for us without it.

Theefore, we should not enable native compilation by default.



-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-25 21:33             ` Andrea Corallo
  2023-10-25 22:48               ` Stefan Kangas
@ 2023-10-26  3:47               ` Dr. Arne Babenhauserheide
  2023-10-26  7:13                 ` Eli Zaretskii
  1 sibling, 1 reply; 37+ messages in thread
From: Dr. Arne Babenhauserheide @ 2023-10-26  3:47 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: Stefan Kangas, Eli Zaretskii, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 722 bytes --]


Andrea Corallo <acorallo@gnu.org> writes:

> As asynchronous native compilation always starts from a pristine
> environment, it is more sensitive to such omissions, and might be
> unable to compile such Lisp source files correctly.
> "
>
> Essentially if in Emacs one has for any reason the definition of the
> macro loaded before invoking the byte-compiler, this will not complain
> even if the require is missing.

Does this mean that previously working Emacs packages or setups may be
broken with native compilation?

Or only that such packages would not get the speed-boost from native
compilation?

Best wishes,
Arne
-- 
Unpolitisch sein
heißt politisch sein,
ohne es zu merken.
draketo.de

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 1125 bytes --]

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-26  2:27     ` Richard Stallman
@ 2023-10-26  3:55       ` brickviking
  2023-10-26  7:20         ` Eli Zaretskii
  2023-10-26  7:36         ` Colin Baxter
  2023-10-26  6:44       ` Eli Zaretskii
  1 sibling, 2 replies; 37+ messages in thread
From: brickviking @ 2023-10-26  3:55 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1419 bytes --]

On Thu, 26 Oct 2023 at 15:28, Richard Stallman <rms@gnu.org> wrote (in
part):

> Building Emacs with native compilation is a lot more fragile
> than without.  Meanwhile, many users don't need it because Emacs
> is fast enough for us without it.
>
> Theefore, we should not enable native compilation by default.
>



To add to what RMS has stated, I'm on an older machine with not a lot of
room left on the primary partition. I understand that's on me, but I wanted
to add my notes about my local experience.

I compiled Emacs as a test with AOT turned on, and found that it started
creating *.eln files. Lots of them. I recompile Emacs on a fairly regular
basis, and after one compile/install of Emacs, I noted at least an extra
40Mb after about an hour's running with erc, org-mode and ef-themes
(amongst others). On my older 2008-era machine that's starting to really
show its age, the extra .eln files were not really worth it for me. I wish
I had better news, I've been wanting a sped-up emacs for a little while
now. To be fair, I _thought_ I saw a speed increase in what amounts to
display code, but I'm not a programmer, mainly a user.

Is there a facility to purge out-of-date versions of the .eln files for a
version that is installed later, and is that facility easy enough to look
for via C-h f? This might make native compilation easier to swallow.

Regards, brickviking
(Emacs 29.1.90, GTK3, Linux-x86_64)

[-- Attachment #2: Type: text/html, Size: 1829 bytes --]

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-25 20:50         ` Andrea Corallo
  2023-10-25 21:22           ` Stefan Kangas
@ 2023-10-26  4:58           ` Eli Zaretskii
  2023-11-20  9:41             ` Andrea Corallo
  1 sibling, 1 reply; 37+ messages in thread
From: Eli Zaretskii @ 2023-10-26  4:58 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: stefankangas, emacs-devel

> From: Andrea Corallo <acorallo@gnu.org>
> Cc: Eli Zaretskii <eliz@gnu.org>,  emacs-devel@gnu.org
> Date: Wed, 25 Oct 2023 16:50:17 -0400
> 
> So I think we could have a new mode, still controlled by
> native-comp-async-report-warnings-errors, that filters out all the
> uninteresting warnings (that the programmer already got during byte
> compilation) but still report this important one.
> 
> So even if the package developer doesn't use native compilation it can
> get the bug report for the issue.
> 
> I suspect this might be a good compromise/solution.
> 
> WDYT?

Sounds like a plan to me, thanks.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-26  0:32                 ` Po Lu
@ 2023-10-26  6:39                   ` Eli Zaretskii
  0 siblings, 0 replies; 37+ messages in thread
From: Eli Zaretskii @ 2023-10-26  6:39 UTC (permalink / raw)
  To: Po Lu; +Cc: stefankangas, acorallo, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: Andrea Corallo <acorallo@gnu.org>,  Eli Zaretskii <eliz@gnu.org>,
>   emacs-devel@gnu.org
> Date: Thu, 26 Oct 2023 08:32:38 +0800
> 
> I'm not opposed to this in principle, but two precautions are
> prerequisite for instituting such a change.  First, the configure script
> must arrange for native compilation to be disabled if libgccjit is
> unavailable (or else ./configure && make will no longer work)

That goes without saying: we cannot possibly fail a build because a
silly default, can we?

> and second, I think it should be disabled when building from the Git
> repository, for native compilation delays making the Lisp directory
> by a length of time that is unacceptable for Emacs development.

People who work on Emacs development can easily disable native
compilation at configure time, so I don't see any reason to treat a
build from Git specially.  (Also, the fact that someone builds from
Git doesn't necessarily mean he or she is an Emacs developer, not at
all.)

So I think if we decide to make the native-compiling config the
default when libgccjit is available, we could do that as we do with
any other yes-if-available options.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-26  2:27     ` Richard Stallman
  2023-10-26  3:55       ` brickviking
@ 2023-10-26  6:44       ` Eli Zaretskii
  1 sibling, 0 replies; 37+ messages in thread
From: Eli Zaretskii @ 2023-10-26  6:44 UTC (permalink / raw)
  To: rms; +Cc: acorallo, emacs-devel

> From: Richard Stallman <rms@gnu.org>
> Cc: eliz@gnu.org, emacs-devel@gnu.org
> Date: Wed, 25 Oct 2023 22:27:09 -0400
> 
> Building Emacs with native compilation is a lot more fragile
> than without.

I don't think I understand what you mean by "fragile".  It is slower,
but otherwise is stable and reliable.

> Meanwhile, many users don't need it because Emacs is fast enough for
> us without it.

If you don't have libgccjit installed, the default build will not
enable native compilation.  As libgccjit is an optional part of GCC
installation, people who don't care about native compilation should
not be bothered by this default (if we decide to make it the default).

> Theefore, we should not enable native compilation by default.

If the above is the only problem, I see no reason to reject the
proposal based on it alone, since the solution is easy and in most
cases effortless.  On the contrary, people who do want native
compilation should invest some effort into installing libgccjit that
matches their GCC version.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-26  3:47               ` Dr. Arne Babenhauserheide
@ 2023-10-26  7:13                 ` Eli Zaretskii
  0 siblings, 0 replies; 37+ messages in thread
From: Eli Zaretskii @ 2023-10-26  7:13 UTC (permalink / raw)
  To: Dr. Arne Babenhauserheide; +Cc: acorallo, stefankangas, emacs-devel

> From: "Dr. Arne Babenhauserheide" <arne_bab@web.de>
> Cc: Stefan Kangas <stefankangas@gmail.com>, Eli Zaretskii <eliz@gnu.org>,
>  emacs-devel@gnu.org
> Date: Thu, 26 Oct 2023 05:47:15 +0200
> 
> Andrea Corallo <acorallo@gnu.org> writes:
> 
> > As asynchronous native compilation always starts from a pristine
> > environment, it is more sensitive to such omissions, and might be
> > unable to compile such Lisp source files correctly.
> > "
> >
> > Essentially if in Emacs one has for any reason the definition of the
> > macro loaded before invoking the byte-compiler, this will not complain
> > even if the require is missing.
> 
> Does this mean that previously working Emacs packages or setups may be
> broken with native compilation?

I don't see how the text above could be interpreted to mean that some
package will be "broken".  A warning about some symbol being unknown,
or its function slot being void, never prevents Emacs from emitting
valid code, which will DTRT if that symbol or function are known at
run time.

This whole sub-thread is about _warnings_ emitted by async
compilation, which annoy some people, that's all.  Nothing will ever
become "broken" due to a warning, unless it was already broken to
begin with.

> Or only that such packages would not get the speed-boost from native
> compilation?

Not even that.  Only if the native compilation _errors_out_, you will
get the lack of speed-boost, because the .eln file will not be
written.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-26  3:55       ` brickviking
@ 2023-10-26  7:20         ` Eli Zaretskii
  2023-10-26  7:36         ` Colin Baxter
  1 sibling, 0 replies; 37+ messages in thread
From: Eli Zaretskii @ 2023-10-26  7:20 UTC (permalink / raw)
  To: brickviking; +Cc: emacs-devel

> From: brickviking <brickviking@gmail.com>
> Date: Thu, 26 Oct 2023 16:55:08 +1300
> 
> To add to what RMS has stated, I'm on an older machine with not a lot of room left on the primary
> partition. I understand that's on me, but I wanted to add my notes about my local experience.
> 
> I compiled Emacs as a test with AOT turned on, and found that it started creating *.eln files. Lots of
> them. I recompile Emacs on a fairly regular basis, and after one compile/install of Emacs, I noted at
> least an extra 40Mb after about an hour's running with erc, org-mode and ef-themes (amongst
> others). On my older 2008-era machine that's starting to really show its age, the extra .eln files were
> not really worth it for me. I wish I had better news, I've been wanting a sped-up emacs for a little while
> now. To be fair, I _thought_ I saw a speed increase in what amounts to display code, but I'm not a
> programmer, mainly a user.

As with any optional Emacs feature, even those which are ON by
default, disabling them is easy if for some reason you don't want it.
In this case, in addition to --without-native-compilation, you can
simply make sure libgccjit is not available on your system, and then
native compilation will be disabled in your build.

So I see no problems here that would unnecessarily inconvenience users
of old/slow systems.

> Is there a facility to purge out-of-date versions of the .eln files for a version that is installed later, and
> is that facility easy enough to look for via C-h f? This might make native compilation easier to
> swallow.

See the command native-compile-prune-cache, which is new in Emacs 29.

For *.eln files that are installed under /usr/local, you will need to
uninstall the old Emacs version or manually delete its versioned
subdirectories.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-26  3:55       ` brickviking
  2023-10-26  7:20         ` Eli Zaretskii
@ 2023-10-26  7:36         ` Colin Baxter
  2023-10-26  9:41           ` Andrea Corallo
  1 sibling, 1 reply; 37+ messages in thread
From: Colin Baxter @ 2023-10-26  7:36 UTC (permalink / raw)
  To: brickviking; +Cc: emacs-devel

>>>>> brickviking  <brickviking@gmail.com> writes:

    > On Thu, 26 Oct 2023 at 15:28, Richard Stallman <rms@gnu.org> wrote
    > (in part):

    >> Building Emacs with native compilation is a lot more fragile than
    >> without.  Meanwhile, many users don't need it because Emacs is
    >> fast enough for us without it.
    >> 
    >> Theefore, we should not enable native compilation by default.
    >> 



    > To add to what RMS has stated, I'm on an older machine with not a
    > lot of room left on the primary partition. I understand that's on
    > me, but I wanted to add my notes about my local experience.

    > I compiled Emacs as a test with AOT turned on, and found that it
    > started creating *.eln files. Lots of them. I recompile Emacs on a
    > fairly regular basis, and after one compile/install of Emacs, I
    > noted at least an extra 40Mb after about an hour's running with
    > erc, org-mode and ef-themes (amongst others). On my older 2008-era
    > machine that's starting to really show its age, the extra .eln
    > files were not really worth it for me. I wish I had better news,
    > I've been wanting a sped-up emacs for a little while now. To be
    > fair, I _thought_ I saw a speed increase in what amounts to
    > display code, but I'm not a programmer, mainly a user.

    > Is there a facility to purge out-of-date versions of the .eln
    > files for a version that is installed later, and is that facility
    > easy enough to look for via C-h f? This might make native
    > compilation easier to swallow.

    > Regards, brickviking (Emacs 29.1.90, GTK3, Linux-x86_64)

I would like to second this. I too run old machines - 15 years old , but
still giving good service. I have tried native compilation on one, and
noticed only the presence of a large number of extra files with no
change in performance. I'm not a developer and don't do anything fancy
on emacs.

Po makes a very good point. I compile from git and only one machine has
the necessary library (or libraries?)

Best wishes,

Colin Baxter.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-26  7:36         ` Colin Baxter
@ 2023-10-26  9:41           ` Andrea Corallo
  2023-10-26 12:07             ` Colin Baxter
  0 siblings, 1 reply; 37+ messages in thread
From: Andrea Corallo @ 2023-10-26  9:41 UTC (permalink / raw)
  To: Colin Baxter; +Cc: brickviking, emacs-devel

Colin Baxter <m43cap@yandex.com> writes:

>>>>>> brickviking  <brickviking@gmail.com> writes:
>
>     > On Thu, 26 Oct 2023 at 15:28, Richard Stallman <rms@gnu.org> wrote
>     > (in part):
>
>     >> Building Emacs with native compilation is a lot more fragile than
>     >> without.  Meanwhile, many users don't need it because Emacs is
>     >> fast enough for us without it.
>     >> 
>     >> Theefore, we should not enable native compilation by default.
>     >> 
>
>
>
>     > To add to what RMS has stated, I'm on an older machine with not a
>     > lot of room left on the primary partition. I understand that's on
>     > me, but I wanted to add my notes about my local experience.
>
>     > I compiled Emacs as a test with AOT turned on, and found that it
>     > started creating *.eln files. Lots of them. I recompile Emacs on a
>     > fairly regular basis, and after one compile/install of Emacs, I
>     > noted at least an extra 40Mb after about an hour's running with
>     > erc, org-mode and ef-themes (amongst others). On my older 2008-era
>     > machine that's starting to really show its age, the extra .eln
>     > files were not really worth it for me. I wish I had better news,
>     > I've been wanting a sped-up emacs for a little while now. To be
>     > fair, I _thought_ I saw a speed increase in what amounts to
>     > display code, but I'm not a programmer, mainly a user.
>
>     > Is there a facility to purge out-of-date versions of the .eln
>     > files for a version that is installed later, and is that facility
>     > easy enough to look for via C-h f? This might make native
>     > compilation easier to swallow.
>
>     > Regards, brickviking (Emacs 29.1.90, GTK3, Linux-x86_64)
>
> I would like to second this. I too run old machines - 15 years old , but
> still giving good service. I have tried native compilation on one, and
> noticed only the presence of a large number of extra files with no
> change in performance. I'm not a developer and don't do anything fancy
> on emacs.
>
> Po makes a very good point. I compile from git and only one machine has
> the necessary library (or libraries?)
>
> Best wishes,
>
> Colin Baxter.


Hi Colin,

again, the proposal (see original message) is to have it on by default
*only* when libgccjit is available.  I bet you don't have it installed
on those machines as AFAIK the only SW in production that uses it is
Emacs.

BR

  Andrea



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-26  9:41           ` Andrea Corallo
@ 2023-10-26 12:07             ` Colin Baxter
  2023-10-26 12:14               ` Andrea Corallo
                                 ` (2 more replies)
  0 siblings, 3 replies; 37+ messages in thread
From: Colin Baxter @ 2023-10-26 12:07 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: brickviking, emacs-devel

>>>>> Andrea Corallo <acorallo@gnu.org> writes:

    > Colin Baxter <m43cap@yandex.com> writes:
    >>>>>>> brickviking <brickviking@gmail.com> writes:
    >> 
    >> > On Thu, 26 Oct 2023 at 15:28, Richard Stallman <rms@gnu.org>
    >> wrote > (in part):
    >> 
    >> >> Building Emacs with native compilation is a lot more fragile
    >> than >> without.  Meanwhile, many users don't need it because
    >> Emacs is >> fast enough for us without it.
    >> >> 
    >> >> Theefore, we should not enable native compilation by default.
    >> >> 
    >> 
    >> 
    >> 
    >> > To add to what RMS has stated, I'm on an older machine with not
    >> a > lot of room left on the primary partition. I understand
    >> that's on > me, but I wanted to add my notes about my local
    >> experience.
    >> 
    >> > I compiled Emacs as a test with AOT turned on, and found that
    >> it > started creating *.eln files. Lots of them. I recompile
    >> Emacs on a > fairly regular basis, and after one compile/install
    >> of Emacs, I > noted at least an extra 40Mb after about an hour's
    >> running with > erc, org-mode and ef-themes (amongst others). On
    >> my older 2008-era > machine that's starting to really show its
    >> age, the extra .eln > files were not really worth it for me. I
    >> wish I had better news, > I've been wanting a sped-up emacs for a
    >> little while now. To be > fair, I _thought_ I saw a speed
    >> increase in what amounts to > display code, but I'm not a
    >> programmer, mainly a user.
    >> 
    >> > Is there a facility to purge out-of-date versions of the .eln >
    >> files for a version that is installed later, and is that facility
    >> > easy enough to look for via C-h f? This might make native >
    >> compilation easier to swallow.
    >> 
    >> > Regards, brickviking (Emacs 29.1.90, GTK3, Linux-x86_64)
    >> 
    >> I would like to second this. I too run old machines - 15 years
    >> old , but still giving good service. I have tried native
    >> compilation on one, and noticed only the presence of a large
    >> number of extra files with no change in performance. I'm not a
    >> developer and don't do anything fancy on emacs.
    >> 
    >> Po makes a very good point. I compile from git and only one
    >> machine has the necessary library (or libraries?)
    >> 
    >> Best wishes,
    >> 
    >> Colin Baxter.


    > Hi Colin,

    > again, the proposal (see original message) is to have it on by
    > default *only* when libgccjit is available.  I bet you don't have
    > it installed on those machines as AFAIK the only SW in production
    > that uses it is Emacs.

Well, I do have libjccjit-6-dev on a machine running Debian 9.13. This
is the machine on which I did try native compilation. As I said, I could
see zero change in performance of my emacs (30.0.50). There's also
libjccjit-8 on another machine of mine running Debian 10.13.

I now always compile with "--with-native-compilation=no". Are you saying
that this configure option will not in the future be sufficient and I
will have to make sure there's no libjccjit versions on the system?

Best wishes, Colin.




^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-26 12:07             ` Colin Baxter
@ 2023-10-26 12:14               ` Andrea Corallo
  2023-10-26 13:02               ` Eli Zaretskii
  2023-10-26 14:22               ` Emanuel Berg
  2 siblings, 0 replies; 37+ messages in thread
From: Andrea Corallo @ 2023-10-26 12:14 UTC (permalink / raw)
  To: Colin Baxter; +Cc: brickviking, emacs-devel

Colin Baxter <m43cap@yandex.com> writes:

[...]

> I now always compile with "--with-native-compilation=no". Are you saying
> that this configure option will not in the future be sufficient and I
> will have to make sure there's no libjccjit versions on the system?

No, "--with-native-compilation=no" will be sufficient, you'll have to
change nothing in how you build your Emacs.

Best Regards

  Andrea



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-26 12:07             ` Colin Baxter
  2023-10-26 12:14               ` Andrea Corallo
@ 2023-10-26 13:02               ` Eli Zaretskii
  2023-10-27  7:08                 ` Colin Baxter
  2023-10-26 14:22               ` Emanuel Berg
  2 siblings, 1 reply; 37+ messages in thread
From: Eli Zaretskii @ 2023-10-26 13:02 UTC (permalink / raw)
  To: m43cap; +Cc: acorallo, brickviking, emacs-devel

> From: Colin Baxter <m43cap@yandex.com>
> Cc: brickviking <brickviking@gmail.com>,  emacs-devel@gnu.org
> Date: Thu, 26 Oct 2023 13:07:52 +0100
> 
> I now always compile with "--with-native-compilation=no". Are you saying
> that this configure option will not in the future be sufficient and I
> will have to make sure there's no libjccjit versions on the system?

It will continue being sufficient.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-26 12:07             ` Colin Baxter
  2023-10-26 12:14               ` Andrea Corallo
  2023-10-26 13:02               ` Eli Zaretskii
@ 2023-10-26 14:22               ` Emanuel Berg
  2023-10-27 14:41                 ` Gregor Zattler
  2 siblings, 1 reply; 37+ messages in thread
From: Emanuel Berg @ 2023-10-26 14:22 UTC (permalink / raw)
  To: emacs-devel

Colin Baxter wrote:

> Well, I do have libjccjit-6-dev on a machine running Debian
> 9.13. This is the machine on which I did try native
> compilation. As I said, I could see zero change in
> performance of my emacs (30.0.50). There's also libjccjit-8
> on another machine of mine running Debian 10.13.

Strange you do not experience it being faster, maybe a more
recent Debian could be the explanation. I just upgraded my
stable Debian and am now on Debian 12.2, so 9.13 and 10.13 are
quite old, on the other hand we have the same GNU Emacs
30.0.50 so it can't be that :)

libgccjit-12-dev

gcc (Debian 12.2.0-14) 12.2.0

So maybe one should aim for the twelve then.

-- 
underground experts united
https://dataswamp.org/~incal




^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-26 13:02               ` Eli Zaretskii
@ 2023-10-27  7:08                 ` Colin Baxter
  0 siblings, 0 replies; 37+ messages in thread
From: Colin Baxter @ 2023-10-27  7:08 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: acorallo, brickviking, emacs-devel

>>>>> Eli Zaretskii <eliz@gnu.org> writes:
    >> 
    >> I now always compile with "--with-native-compilation=no". Are you
    >> saying that this configure option will not in the future be
    >> sufficient and I will have to make sure there's no libjccjit
    >> versions on the system?

    > It will continue being sufficient.


Thank you - thanks Andrea.


Colin Baxter.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-26 14:22               ` Emanuel Berg
@ 2023-10-27 14:41                 ` Gregor Zattler
  0 siblings, 0 replies; 37+ messages in thread
From: Gregor Zattler @ 2023-10-27 14:41 UTC (permalink / raw)
  To: Emanuel Berg, emacs-devel

Hi Emanuel, Colin, emacs developers,
* Emanuel Berg <incal@dataswamp.org> [2023-10-26; 16:22 +02]:
> Colin Baxter wrote:
>> Well, I do have libjccjit-6-dev on a machine running Debian
>> 9.13. This is the machine on which I did try native
>> compilation. As I said, I could see zero change in
>> performance of my emacs (30.0.50). There's also libjccjit-8
>> on another machine of mine running Debian 10.13.
>
> Strange you do not experience it being faster, maybe a more
> recent Debian could be the explanation. I just upgraded my
> stable Debian and am now on Debian 12.2, so 9.13 and 10.13 are
> quite old, on the other hand we have the same GNU Emacs
> 30.0.50 so it can't be that :)
>
> libgccjit-12-dev
>
> gcc (Debian 12.2.0-14) 12.2.0
>
> So maybe one should aim for the twelve then.

I started using native compilation with Debian 11 /
libgccjit-8-dev and the effect was just notable to me.

But since I upgraded to Debian 12 / libgccjit-12-dev
Emacs feels much more snappy, also starts faster.  Even
the compilation process is faster than under Debian 11.

Thanks, Andrea.

Ciao; Gregor



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-10-26  4:58           ` Eli Zaretskii
@ 2023-11-20  9:41             ` Andrea Corallo
  2023-11-20 12:20               ` Eli Zaretskii
  0 siblings, 1 reply; 37+ messages in thread
From: Andrea Corallo @ 2023-11-20  9:41 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: stefankangas, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Andrea Corallo <acorallo@gnu.org>
>> Cc: Eli Zaretskii <eliz@gnu.org>,  emacs-devel@gnu.org
>> Date: Wed, 25 Oct 2023 16:50:17 -0400
>> 
>> So I think we could have a new mode, still controlled by
>> native-comp-async-report-warnings-errors, that filters out all the
>> uninteresting warnings (that the programmer already got during byte
>> compilation) but still report this important one.
>> 
>> So even if the package developer doesn't use native compilation it can
>> get the bug report for the issue.
>> 
>> I suspect this might be a good compromise/solution.
>> 
>> WDYT?
>
> Sounds like a plan to me, thanks.

While adding this entry in TODO came to my mind this thread.

What is the the outcome? Are we fine in activating native comp by
default when libgccjit is available?

Thanks

  Andrea



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-11-20  9:41             ` Andrea Corallo
@ 2023-11-20 12:20               ` Eli Zaretskii
  2023-11-20 22:21                 ` Emanuel Berg
  2023-11-21 10:38                 ` Andrea Corallo
  0 siblings, 2 replies; 37+ messages in thread
From: Eli Zaretskii @ 2023-11-20 12:20 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: stefankangas, emacs-devel

> From: Andrea Corallo <acorallo@gnu.org>
> Cc: stefankangas@gmail.com,  emacs-devel@gnu.org
> Date: Mon, 20 Nov 2023 04:41:05 -0500
> 
> What is the the outcome? Are we fine in activating native comp by
> default when libgccjit is available?

I think so, yes.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-11-20 12:20               ` Eli Zaretskii
@ 2023-11-20 22:21                 ` Emanuel Berg
  2023-11-21 10:39                   ` Andrea Corallo
  2023-11-21 10:38                 ` Andrea Corallo
  1 sibling, 1 reply; 37+ messages in thread
From: Emanuel Berg @ 2023-11-20 22:21 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii wrote:

>> What is the the outcome? Are we fine in activating native
>> comp by default when libgccjit is available?
>
> I think so, yes.

Do we have an idea what to do with the pop-up warnings, won't
that be intimidating for persons unfamiliar with the whole
native compile thing?

-- 
underground experts united
https://dataswamp.org/~incal




^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-11-20 12:20               ` Eli Zaretskii
  2023-11-20 22:21                 ` Emanuel Berg
@ 2023-11-21 10:38                 ` Andrea Corallo
  1 sibling, 0 replies; 37+ messages in thread
From: Andrea Corallo @ 2023-11-21 10:38 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: stefankangas, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Andrea Corallo <acorallo@gnu.org>
>> Cc: stefankangas@gmail.com,  emacs-devel@gnu.org
>> Date: Mon, 20 Nov 2023 04:41:05 -0500
>> 
>> What is the the outcome? Are we fine in activating native comp by
>> default when libgccjit is available?
>
> I think so, yes.

Should be done with 3328c327254 thanks.

  Andrea



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2023-11-20 22:21                 ` Emanuel Berg
@ 2023-11-21 10:39                   ` Andrea Corallo
  0 siblings, 0 replies; 37+ messages in thread
From: Andrea Corallo @ 2023-11-21 10:39 UTC (permalink / raw)
  To: emacs-devel

Emanuel Berg <incal@dataswamp.org> writes:

> Eli Zaretskii wrote:
>
>>> What is the the outcome? Are we fine in activating native
>>> comp by default when libgccjit is available?
>>
>> I think so, yes.
>
> Do we have an idea what to do with the pop-up warnings, won't
> that be intimidating for persons unfamiliar with the whole
> native compile thing?

This has been discussed in this very thread, si also the recent entry in
TODO related to this.

BR

  Andrea



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
@ 2024-02-29 10:56 Andrea Corallo
  2024-02-29 13:39 ` Eli Zaretskii
  0 siblings, 1 reply; 37+ messages in thread
From: Andrea Corallo @ 2024-02-29 10:56 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Andrea Corallo, stefankangas, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Andrea Corallo <acorallo@gnu.org>
>> Cc: Eli Zaretskii <eliz@gnu.org>,  emacs-devel@gnu.org
>> Date: Wed, 25 Oct 2023 16:50:17 -0400
>> 
>> So I think we could have a new mode, still controlled by
>> native-comp-async-report-warnings-errors, that filters out all the
>> uninteresting warnings (that the programmer already got during byte
>> compilation) but still report this important one.
>> 
>> So even if the package developer doesn't use native compilation it can
>> get the bug report for the issue.
>> 
>> I suspect this might be a good compromise/solution.
>> 
>> WDYT?
>
> Sounds like a plan to me, thanks.

Back on this,

Okay I've implemented the functionality with 8e5baaddec2.

I was in doubt of adding a new value to
'native-comp-async-report-warnings-errors' or add a new knob, but what
we report seemed to me orthogonal to how we do it, so I went for the
second option introducing
'native-comp-async-report-warnings-errors-kind'.

I we decide it's not optimal I don't feel strong about it and I'm happy
to change the approach.

Anyway with this change as per default we report only important warnings
and (all) errors, and we do it presenting the *Warnings* buffer to the
user (which I believe this is the behavior we wanted).

Indeed if something can be improved in the nomenclature or the doc feel
free to do it or come with suggestions.

Thanks!

  Andrea



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2024-02-29 10:56 Andrea Corallo
@ 2024-02-29 13:39 ` Eli Zaretskii
  2024-02-29 15:07   ` Andrea Corallo
  0 siblings, 1 reply; 37+ messages in thread
From: Eli Zaretskii @ 2024-02-29 13:39 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: stefankangas, emacs-devel

> From: Andrea Corallo <acorallo@gnu.org>
> Cc: Andrea Corallo <acorallo@gnu.org>,  stefankangas@gmail.com,
>   emacs-devel@gnu.org
> Date: Thu, 29 Feb 2024 05:56:31 -0500
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > Sounds like a plan to me, thanks.
> 
> Back on this,
> 
> Okay I've implemented the functionality with 8e5baaddec2.

Thanks, I renamed the variable, to make it a bit less of mouthful, and
also added a NEWS entry.

> Anyway with this change as per default we report only important warnings
> and (all) errors, and we do it presenting the *Warnings* buffer to the
> user (which I believe this is the behavior we wanted).

Thanks.  Let's see if people are happy with these two levels, or we
need more.

> Indeed if something can be improved in the nomenclature or the doc feel
> free to do it or come with suggestions.

Done.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2024-02-29 13:39 ` Eli Zaretskii
@ 2024-02-29 15:07   ` Andrea Corallo
  2024-02-29 16:26     ` Eli Zaretskii
  0 siblings, 1 reply; 37+ messages in thread
From: Andrea Corallo @ 2024-02-29 15:07 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: stefankangas, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Andrea Corallo <acorallo@gnu.org>
>> Cc: Andrea Corallo <acorallo@gnu.org>,  stefankangas@gmail.com,
>>   emacs-devel@gnu.org
>> Date: Thu, 29 Feb 2024 05:56:31 -0500
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> > Sounds like a plan to me, thanks.
>> 
>> Back on this,
>> 
>> Okay I've implemented the functionality with 8e5baaddec2.
>
> Thanks, I renamed the variable, to make it a bit less of mouthful, and
> also added a NEWS entry.
>
>> Anyway with this change as per default we report only important warnings
>> and (all) errors, and we do it presenting the *Warnings* buffer to the
>> user (which I believe this is the behavior we wanted).
>
> Thanks.  Let's see if people are happy with these two levels, or we
> need more.
>
>> Indeed if something can be improved in the nomenclature or the doc feel
>> free to do it or come with suggestions.
>
> Done.

Wonderful thanks.

I'm wondering if we could use the NEWS entry (or something else) to
suggest all the users who set in the past
'native-comp-async-report-warnings-errors' to nil or silent to give it a
try with the new default configuration.  What we report now should be
most likely cured or reported.

Regards

  Andrea



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Native compilation on as default?
  2024-02-29 15:07   ` Andrea Corallo
@ 2024-02-29 16:26     ` Eli Zaretskii
  0 siblings, 0 replies; 37+ messages in thread
From: Eli Zaretskii @ 2024-02-29 16:26 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: stefankangas, emacs-devel

> From: Andrea Corallo <acorallo@gnu.org>
> Cc: stefankangas@gmail.com,  emacs-devel@gnu.org
> Date: Thu, 29 Feb 2024 10:07:00 -0500
> 
> I'm wondering if we could use the NEWS entry (or something else) to
> suggest all the users who set in the past
> 'native-comp-async-report-warnings-errors' to nil or silent to give it a
> try with the new default configuration.

Done, thanks.



^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2024-02-29 16:26 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-08  8:44 Native compilation on as default? Andrea Corallo
2023-06-09 11:23 ` Eli Zaretskii
2023-06-09 16:56   ` Andrea Corallo
2023-06-09 17:22     ` Eli Zaretskii
2023-10-25 14:11   ` Andrea Corallo
2023-10-25 14:18     ` Eli Zaretskii
2023-10-25 14:42       ` Stefan Kangas
2023-10-25 20:50         ` Andrea Corallo
2023-10-25 21:22           ` Stefan Kangas
2023-10-25 21:33             ` Andrea Corallo
2023-10-25 22:48               ` Stefan Kangas
2023-10-26  0:32                 ` Po Lu
2023-10-26  6:39                   ` Eli Zaretskii
2023-10-26  3:47               ` Dr. Arne Babenhauserheide
2023-10-26  7:13                 ` Eli Zaretskii
2023-10-26  4:58           ` Eli Zaretskii
2023-11-20  9:41             ` Andrea Corallo
2023-11-20 12:20               ` Eli Zaretskii
2023-11-20 22:21                 ` Emanuel Berg
2023-11-21 10:39                   ` Andrea Corallo
2023-11-21 10:38                 ` Andrea Corallo
2023-10-26  2:27     ` Richard Stallman
2023-10-26  3:55       ` brickviking
2023-10-26  7:20         ` Eli Zaretskii
2023-10-26  7:36         ` Colin Baxter
2023-10-26  9:41           ` Andrea Corallo
2023-10-26 12:07             ` Colin Baxter
2023-10-26 12:14               ` Andrea Corallo
2023-10-26 13:02               ` Eli Zaretskii
2023-10-27  7:08                 ` Colin Baxter
2023-10-26 14:22               ` Emanuel Berg
2023-10-27 14:41                 ` Gregor Zattler
2023-10-26  6:44       ` Eli Zaretskii
  -- strict thread matches above, loose matches on Subject: below --
2024-02-29 10:56 Andrea Corallo
2024-02-29 13:39 ` Eli Zaretskii
2024-02-29 15:07   ` Andrea Corallo
2024-02-29 16:26     ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).