From: Alan Mackenzie <acm@muc.de>
To: Eli Zaretskii <eliz@gnu.org>
Cc: larsi@gnus.org, emacs-devel@gnu.org
Subject: Re: Time to merge scratch/correct-warning-pos into master, perhaps?
Date: Sun, 16 Jan 2022 15:26:44 +0000 [thread overview]
Message-ID: <YeQ5NBz+dYIIcTgu@ACM> (raw)
In-Reply-To: <83k0ezyb68.fsf@gnu.org>
Hello, Eli.
On Sun, Jan 16, 2022 at 17:04:15 +0200, Eli Zaretskii wrote:
> > Date: Sun, 16 Jan 2022 14:45:28 +0000
> > Cc: larsi@gnus.org, emacs-devel@gnu.org
> > From: Alan Mackenzie <acm@muc.de>
> > > Are you saying that the measured slowdown is specific to the
> > > byte-compiler, and will not affect other uses of Lisp, or affect them
> > > much less heavily?
> > Yes. The byte compile, as expected, is more slowed down than other
> > software. On a quick measurement of compiling comp.el, I found a
> > slowdown of around 12%
> That seems to be inconsistent with the 17% slowdown compiling the *.el
> files that Lars measured.
Or measurement error. The coding style is likely to be quite a bit
different between gnus and comp.el.
> > > Because the byte-compiler is just another Lisp program, it doesn't in
> > > general do anything an arbitrary Lisp program won't do.
> > It does. It runs with symbols with position activated, so any operation
> > involving an EQ which doesn't match is going to be significantly slower.
> But EQ is not specific to the byte-compiler, is it?
> > > Can you show a profile where this could be seen quantitatively?
> > I'm not sure I understand. The slowdown in the byte compiler is
> > distributed throughout the Emacs C Code. It doesn't happen at any
> > particular isolated place.
> I thought the slowdown was in Lisp somewhere. If it's in EQ, I'm not
> sure I understand how come the byte-compiler's slowdown is so much
> more significant than in other Lisp code.
The specification of the macro lisp_h_EQ in lisp.h L370 starts off:
#define lisp_h_EQ(x, y) ((XLI ((x)) == XLI ((y))) \
|| (symbols_with_pos_enabled \
.....
If symbols_with_pos_enabled is currently false, EQ need never execute
more than these first two lines. If the variable is true, potentially
each of the other three cases (each variable x and y can be with or
without a position, giving four matching possibilities) needs to be
checked individually, which is slow.
Essentially the same code is coded up as emit_EQ inside comp.c.
--
Alan Mackenzie (Nuremberg, Germany).
next prev parent reply other threads:[~2022-01-16 15:26 UTC|newest]
Thread overview: 150+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-15 18:15 Time to merge scratch/correct-warning-pos into master, perhaps? Alan Mackenzie
2022-01-15 18:24 ` Eli Zaretskii
2022-01-16 8:24 ` Lars Ingebrigtsen
2022-01-16 9:51 ` Po Lu
2022-01-16 13:50 ` Alan Mackenzie
2022-01-16 12:02 ` Lars Ingebrigtsen
2022-01-16 12:06 ` Po Lu
2022-01-16 13:12 ` Lars Ingebrigtsen
2022-01-16 14:02 ` Alan Mackenzie
2022-01-17 0:28 ` Po Lu
2022-01-17 3:28 ` Eli Zaretskii
2022-01-17 3:37 ` Po Lu
2022-01-16 14:00 ` Alan Mackenzie
2022-01-16 12:23 ` Eli Zaretskii
2022-01-16 12:26 ` Lars Ingebrigtsen
2022-01-16 12:36 ` Eli Zaretskii
2022-01-16 14:06 ` Alan Mackenzie
2022-01-16 14:11 ` Lars Ingebrigtsen
2022-01-16 14:21 ` Eli Zaretskii
2022-01-16 14:45 ` Alan Mackenzie
2022-01-16 15:04 ` Eli Zaretskii
2022-01-16 15:26 ` Alan Mackenzie [this message]
2022-01-16 15:43 ` Eli Zaretskii
2022-01-16 15:50 ` Alan Mackenzie
2022-01-16 13:47 ` Alan Mackenzie
2022-01-16 14:10 ` Lars Ingebrigtsen
2022-01-16 14:59 ` Stefan Monnier
2022-01-16 14:57 ` Stefan Monnier
2022-01-16 15:04 ` Lars Ingebrigtsen
2022-01-16 15:37 ` Alan Mackenzie
2022-01-16 15:50 ` Mattias Engdegård
2022-01-16 16:18 ` Alan Mackenzie
2022-01-16 16:52 ` Mattias Engdegård
2022-01-16 17:13 ` Stefan Monnier
2022-01-16 17:24 ` Mattias Engdegård
2022-01-22 12:23 ` Alan Mackenzie
2022-01-22 14:30 ` Lars Ingebrigtsen
2022-01-22 15:09 ` Alan Mackenzie
2022-01-22 15:26 ` Lars Ingebrigtsen
2022-01-22 15:36 ` Eli Zaretskii
2022-01-22 18:30 ` Alan Mackenzie
2022-01-23 12:45 ` Lars Ingebrigtsen
2022-01-22 16:06 ` Mattias Engdegård
2022-01-22 17:02 ` Gregory Heytings
2022-01-22 17:46 ` Eli Zaretskii
2022-01-22 18:01 ` Gregory Heytings
2022-01-22 18:12 ` Eli Zaretskii
2022-01-22 22:36 ` Gregory Heytings
2022-01-22 22:55 ` Alan Mackenzie
2022-01-23 6:16 ` Eli Zaretskii
2022-01-23 21:53 ` Gregory Heytings
2022-01-24 3:37 ` Eli Zaretskii
2022-01-24 15:20 ` Gregory Heytings
2022-01-24 16:47 ` Eli Zaretskii
2022-01-24 20:41 ` Gregory Heytings
2022-01-25 3:34 ` Eli Zaretskii
2022-01-25 8:59 ` Gregory Heytings
2022-01-25 11:27 ` Alan Mackenzie
2022-01-25 13:27 ` Stefan Monnier
2022-01-25 18:27 ` Alan Mackenzie
2022-01-25 19:26 ` Stefan Monnier
2022-01-25 20:58 ` Alan Mackenzie
2022-01-25 21:27 ` Gregory Heytings
2022-01-26 17:32 ` Alan Mackenzie
2022-01-26 18:59 ` Gregory Heytings
2022-01-26 20:26 ` Alan Mackenzie
2022-01-25 22:11 ` Stefan Monnier
2022-01-25 22:42 ` Óscar Fuentes
2022-01-26 1:08 ` Po Lu
2022-01-26 16:56 ` chad
2022-01-26 17:38 ` Eli Zaretskii
2022-01-26 17:58 ` chad
2022-01-26 18:46 ` Gregory Heytings
2022-01-26 19:47 ` Stefan Monnier
2022-01-26 19:59 ` Alan Mackenzie
2022-01-25 21:18 ` Gregory Heytings
2022-01-25 21:38 ` Gregory Heytings
2022-01-25 22:21 ` Stefan Monnier
2022-01-26 18:36 ` Gregory Heytings
2022-02-04 0:11 ` Gregory Heytings
2022-02-04 11:57 ` Alan Mackenzie
2022-02-04 12:06 ` Eli Zaretskii
2022-02-04 18:31 ` Alan Mackenzie
2022-02-04 18:54 ` Eli Zaretskii
2022-02-04 19:33 ` Alan Mackenzie
2022-02-04 19:46 ` Eli Zaretskii
2022-02-04 21:24 ` Alan Mackenzie
2022-02-04 22:24 ` Stefan Monnier
2022-02-04 22:30 ` Stefan Monnier
2022-02-05 7:28 ` Eli Zaretskii
2022-02-05 18:04 ` Stefan Monnier
2022-02-05 18:31 ` Eli Zaretskii
2022-02-05 8:17 ` Eli Zaretskii
2022-02-06 11:50 ` Alan Mackenzie
2022-02-06 11:56 ` Eli Zaretskii
2022-02-06 18:09 ` Alan Mackenzie
2022-02-06 18:39 ` Eli Zaretskii
2022-02-19 16:42 ` Alan Mackenzie
2022-02-19 17:02 ` Eli Zaretskii
2022-02-19 17:43 ` David Engster
2022-02-19 22:10 ` Alan Mackenzie
2022-02-20 5:35 ` David Engster
2022-02-20 19:45 ` Alan Mackenzie
2022-02-20 20:37 ` Stefan Monnier
2022-02-20 20:56 ` Alan Mackenzie
2022-02-20 23:02 ` Stefan Monnier
2022-02-21 0:22 ` Óscar Fuentes
2022-02-21 3:31 ` Eli Zaretskii
2022-02-21 4:04 ` Óscar Fuentes
2022-02-21 12:15 ` Eli Zaretskii
2022-02-21 14:55 ` Óscar Fuentes
2022-02-21 3:29 ` Eli Zaretskii
2022-02-19 19:01 ` Stefan Monnier
2022-02-19 19:30 ` Eli Zaretskii
2022-02-19 22:03 ` Alan Mackenzie
2022-02-25 22:29 ` Alan Mackenzie
2022-02-06 18:40 ` Eli Zaretskii
2022-02-06 19:03 ` Eli Zaretskii
2022-02-07 17:36 ` Andrea Corallo
2022-02-05 6:08 ` Lars Ingebrigtsen
2022-02-05 11:42 ` Alan Mackenzie
2022-02-05 21:31 ` Lars Ingebrigtsen
2022-02-06 7:02 ` Eli Zaretskii
2022-02-06 11:38 ` Alan Mackenzie
2022-02-06 23:14 ` Lars Ingebrigtsen
2022-01-25 21:15 ` Gregory Heytings
2022-01-25 21:30 ` Andrea Corallo
2022-01-26 18:43 ` Gregory Heytings
2022-01-26 21:04 ` Andrea Corallo
[not found] ` <b0265c41-7ead-4913-667-d0e76a35b3ba@heytings.org>
2022-01-25 21:16 ` Gregory Heytings
2022-01-25 12:26 ` Eli Zaretskii
2022-01-26 18:41 ` Gregory Heytings
2022-01-26 18:59 ` Eli Zaretskii
2022-01-26 19:14 ` Stefan Monnier
2022-01-26 19:32 ` Eli Zaretskii
2022-01-26 19:34 ` Alan Mackenzie
2022-01-22 18:35 ` Alan Mackenzie
2022-01-22 18:45 ` Gregory Heytings
2022-01-22 18:50 ` Eli Zaretskii
2022-01-22 20:07 ` Gregory Heytings
2022-01-23 5:32 ` Eli Zaretskii
2022-01-23 21:44 ` Gregory Heytings
2022-01-15 22:57 ` Stefan Monnier
2022-01-16 0:27 ` Brahimi Saifullah
2022-01-16 14:53 ` Alan Mackenzie
2022-01-16 16:45 ` Brahimi Saifullah
2022-01-22 11:41 ` Alan Mackenzie
2022-01-22 23:16 ` Brahimi Saifullah
2022-01-23 14:09 ` Alan Mackenzie
2022-01-17 9:38 ` Andrea Corallo
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=YeQ5NBz+dYIIcTgu@ACM \
--to=acm@muc.de \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=larsi@gnus.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).