Subject: Re: bug#65908: 29.1.50; Emacs 29 regresses on macOS

From: Gerd Möllmann <[email-masked]>
Date: Wed, 04 Oct 2023 14:43:05 +0200

Gerd Möllmann <[email-masked]> writes:

> Stefan Kangas <[email-masked]> 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 <[email-masked]>
> 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?
>
> Added Alan Third to the CC.

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.