From: Eli Zaretskii <eliz@gnu.org>
To: Alan Third <alan@idiocy.org>
Cc: gerd.moellmann@gmail.com, gregory@heytings.org,
65908@debbugs.gnu.org, stefankangas@gmail.com,
ccsmile2008@outlook.com
Subject: bug#65908: 29.1.50; Emacs 29 regresses on macOS
Date: Thu, 05 Oct 2023 08:41:28 +0300 [thread overview]
Message-ID: <83v8bl4odz.fsf@gnu.org> (raw)
In-Reply-To: <ZR3WJh2UeLms7rlb@idiocy.org> (message from Alan Third on Wed, 4 Oct 2023 22:16:22 +0100)
> Date: Wed, 4 Oct 2023 22:16:22 +0100
> From: Alan Third <alan@idiocy.org>
> Cc: Stefan Kangas <stefankangas@gmail.com>,
> Gregory Heytings <gregory@heytings.org>, 65908@debbugs.gnu.org,
> Eli Zaretskii <eliz@gnu.org>, ccsmile2008@outlook.com
>
> On Wed, Oct 04, 2023 at 02:43:05PM +0200, Gerd Möllmann wrote:
> > Gerd Möllmann <gerd.moellmann@gmail.com> writes:
> >
> > > Stefan Kangas <stefankangas@gmail.com> writes:
> > >
> > >>> I try to update the list of failing commits monthly.
> > >>
> > >> Thanks for maintaining that script. We need more people showing that
> > >> kind of initiative and drive.
> > >
> > > +1
> > >
> > > And, three weeks later, the culprit is
> > >
> > > commit 058c012f73d4abe014ace44b46c23babd48aebbc (HEAD)
> > > Author: Alan Third <alan@idiocy.org>
> > > Date: Sun Nov 14 15:09:43 2021 +0000
> > >
> > > Only set LANG if the ID is valid
> > >
> > > * src/nsterm.m (ns_init_locale): Check the provided locale identifier
> > > is available before trying to use it.
> > >
> > > But don't ask me how that comes into play here because that function
> > > seems to be called from main only. Maybe it's because LANG is now not
> > > always set, but used somewhere else?
>
> AFAIK LANG isn't used by Emacs at all. That code is just there to help
> set up a default environment for running shell commands.
>
> > As an experiment, I evaluated this in *scratch*:
> >
> > (setenv "LANG" "")
> > (setenv "LC_COLLATE" "C")
> > (setenv "LC_CTYPE" "UTF-8")
> > (setenv "LC_MESSAGES" "C")
> > (setenv "LC_MONETARY" "C")
> > (setenv "LC_NUMERIC" "C")
> > (setenv "LC_TIME" "C")
> >
> > which is the output of 'locale' in a terminal, translated to Elisp.
> > With these settings, the slowdown is gone, without changing the code.
>
> So is Emacs run in the terminal with a LANG of something like
> en_GB.UTF-8 slower too? Because iirc my mac's terminal doesn't default
> to 'C' and I don't see anything GUI specific in the test code...
>
> FWIW I don't see any meaningful difference using different locale
> settings on my Debian box, which makes me wonder if there is some
> low-level darwin code that reads the locale from the environment. Any
> idea if it's loading the files or stepping through the defuns that's
> slower, or both?
>
> Long story short: I have no idea what's going on here.
Crystal ball says that the UTF-8 locale turns on some expensive
processing where it doesn't happen with the C locale. One potential
place is case-insensitive comparisons and such likes.
Selectively setting only some of the LC_* variables limits the
expensive processing only to some operations.
In general, Emacs only needs to locale's settings to decide which
locale-environment and language-environment to turn on, all the rest
we do by ourselves.
next prev parent reply other threads:[~2023-10-05 5:41 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-13 6:47 bug#65908: 29.1.50; Emacs 29 regresses on macOS Zhang Haijun
2023-10-04 5:44 ` Gerd Möllmann
2023-10-04 7:38 ` Eli Zaretskii
2023-10-04 7:50 ` Gerd Möllmann
2023-10-04 8:29 ` Stefan Kangas
2023-10-04 8:32 ` Gerd Möllmann
2023-10-04 9:02 ` Gregory Heytings
2023-10-04 9:12 ` Gerd Möllmann
2023-10-04 9:12 ` Stefan Kangas
2023-10-04 10:55 ` Gerd Möllmann
2023-10-04 12:43 ` Gerd Möllmann
2023-10-04 21:16 ` Alan Third
2023-10-05 5:41 ` Eli Zaretskii [this message]
2023-10-05 5:55 ` Gerd Möllmann
2023-10-05 6:08 ` Eli Zaretskii
2023-10-05 8:52 ` Gerd Möllmann
2023-10-05 9:48 ` Alan Third
2023-10-05 11:12 ` Gerd Möllmann
2023-10-05 13:18 ` Gerd Möllmann
2023-10-05 16:11 ` Eli Zaretskii
2023-10-05 16:33 ` Alan Third
2023-10-05 16:38 ` Gerd Möllmann
2023-10-05 17:02 ` Eli Zaretskii
2023-10-05 17:15 ` Alan Third
2023-10-05 13:51 ` Alan Third
2023-10-05 14:01 ` Gerd Möllmann
2023-10-05 14:09 ` Gerd Möllmann
2023-10-05 14:58 ` Alan Third
2023-10-05 15:11 ` Gerd Möllmann
2023-10-05 16:29 ` Eli Zaretskii
2023-10-05 16:39 ` Gerd Möllmann
2023-10-05 17:06 ` Eli Zaretskii
2023-10-05 18:08 ` Stefan Kangas
2023-10-05 13:56 ` Gerd Möllmann
2023-10-05 16:19 ` Eli Zaretskii
2023-10-05 16:26 ` Alan Third
2023-10-05 16:43 ` Gerd Möllmann
2023-10-05 16:36 ` Gerd Möllmann
2023-10-05 17:04 ` Eli Zaretskii
2023-10-05 17:15 ` Gerd Möllmann
2023-10-05 18:25 ` Alan Third
2023-10-05 18:33 ` Gerd Möllmann
2023-10-05 18:46 ` Gerd Möllmann
2023-10-05 8:58 ` Gregory Heytings
2023-10-05 9:03 ` Gregory Heytings
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=83v8bl4odz.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=65908@debbugs.gnu.org \
--cc=alan@idiocy.org \
--cc=ccsmile2008@outlook.com \
--cc=gerd.moellmann@gmail.com \
--cc=gregory@heytings.org \
--cc=stefankangas@gmail.com \
/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).