unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: rms@gnu.org
Cc: emacs-devel@gnu.org
Subject: Re: Should native compilation be enabled by default?
Date: Tue, 05 Mar 2024 14:24:06 +0200	[thread overview]
Message-ID: <86zfvclvdl.fsf@gnu.org> (raw)
In-Reply-To: <E1rhLhI-0004Oq-5j@fencepost.gnu.org> (message from Richard Stallman on Mon, 04 Mar 2024 22:42:32 -0500)

> From: Richard Stallman <rms@gnu.org>
> Cc: emacs-devel@gnu.org
> Date: Mon, 04 Mar 2024 22:42:32 -0500
> 
>   > > Enabling native compilation has disadvantages as well as advantages.
> 
>   > What are the disadvantages?
> 
> If Emacs compilation by default causes native compilation, it will be
> slower.

This is true, but the slowdown is IME insignificant on a reasonably
modern system.  And if Emacs is installed from a distro (which AFAIU
is what most users do nowadays), the slowdown doesn't exist at all,
because the *.eln files come prebuilt with the binaries.

> It will also be more fragile.  Byte-compilation is a self-contained
> Emacs feature, and aside from occasional bugs that affect specific
> code, it never breaks.  On general principles we can see that native
> compilation is likely to go wrong because something has disappeared,
> or because of bugs in other programs that you wouldnt otherwise ever
> use.

That was a valid consideration when native compilation was first added
to Emacs 28.  Which is why we kept it off by default for 2 major
releases.  Now we have enough experience to tell that the problems,
such as they were, are all but solved, and native compilation is
nowadays no more fragile than byte compilation, what with all the
improvements and optimizations introduced lately into the byte
compiler.

> Native compilation is useful mainly for power users who want
> to run Lisp programs that normally are too slow.

I disagree, based on my experience.  I see a significant speedup when
using Rmail for just reading email, something that I cannot
characterize as "power use" of Emacs.  Even restarting a large Emacs
session by restoring from a desktop file is noticeably faster.  I
don't think having a lot of buffers in a long-running session
qualifies me as a "power user" just because of this factor.

And there are other significant speed advantages.

> The people who participate in emacs-devel tend to be power users.
> What they think is not a good guide to what is useful for most users.
> To find that out, we should poll the users.

Which is why we didn't decide on the default before collecting a lot
of experience and processing the bug reports we had about the related
issues.  Having solved them, I think we can be quite sure users aren't
unhappy with native compilation, quite the contrary.



  parent reply	other threads:[~2024-03-05 12:24 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-29 10:56 Native compilation on as default? Andrea Corallo
2024-02-29 13:39 ` Eli Zaretskii
2024-02-29 15:07   ` Andrea Corallo
2024-02-29 16:26     ` Eli Zaretskii
2024-03-02  3:08 ` Should native compilation be enabled by default? Richard Stallman
2024-03-02  7:16   ` Eli Zaretskii
2024-03-05  3:42     ` Richard Stallman
2024-03-05  4:51       ` T.V Raman
2024-03-05  9:31         ` Andrea Corallo
2024-03-05 15:02           ` T.V Raman
2024-03-05 15:39             ` Andrea Corallo
2024-03-05 16:01               ` T.V Raman
2024-03-05 17:03                 ` Andrea Corallo
2024-03-05 15:59             ` Suhail Singh
2024-03-05 16:46               ` T.V Raman
2024-03-05 12:25         ` Eli Zaretskii
2024-03-05 15:04           ` T.V Raman
2024-03-05 15:51             ` Eli Zaretskii
2024-03-05 16:03               ` T.V Raman
2024-03-05 16:37                 ` Eli Zaretskii
2024-03-05 16:11             ` Andrea Corallo
2024-03-05 16:47               ` T.V Raman
2024-03-05  9:57       ` Andrea Corallo
2024-03-08  2:29         ` Richard Stallman
2024-03-08  8:13           ` Eli Zaretskii
2024-03-05 12:24       ` Eli Zaretskii [this message]
2024-03-08  2:29         ` Richard Stallman
2024-03-08  8:28           ` Eli Zaretskii
2024-03-08  2:29         ` Richard Stallman
2024-03-05 20:42       ` Björn Bidar
2024-03-14 17:15         ` Emanuel Berg
2024-03-15 12:44           ` Colin Baxter
2024-03-15 16:01             ` Ihor Radchenko
2024-03-15 13:14               ` Colin Baxter
2024-03-15 13:29                 ` Colin Baxter
2024-03-15 13:53                   ` Corwin Brust
2024-03-15 15:08                     ` Colin Baxter
2024-03-15 15:13                       ` Emanuel Berg
2024-03-15 15:15                   ` Eli Zaretskii
2024-03-15 16:26                     ` Colin Baxter
2024-03-15 17:08                       ` Andrea Corallo
2024-03-15 20:35                         ` Emanuel Berg
2024-03-16  8:26                           ` Eli Zaretskii
2024-03-15 15:21                   ` Emanuel Berg
2024-03-15 16:24                     ` Andrea Corallo
2024-03-15 16:47                       ` Emanuel Berg
2024-03-15 15:13                 ` Eli Zaretskii
     [not found]       ` <87a5ncfm1r.fsf@>
2024-03-08  2:29         ` Richard Stallman
2024-03-08  8:06           ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=86zfvclvdl.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=rms@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).