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

From: Alan Third <[email-masked]>
Date: Thu, 5 Oct 2023 14:51:58 +0100

On Thu, Oct 05, 2023 at 01:12:10PM +0200, Gerd Möllmann wrote:
> Alan Third <[email-masked]> writes:
> 
> > On Thu, Oct 05, 2023 at 10:52:21AM +0200, Gerd Möllmann wrote:
> >> Conclusion so far, for me,
> >> 
> >> - don't selocale in ns_init_locale, only setenv LANG, or set LC_CTYPE,
> >>   maybe.
> >
> > setlocale in ns_init_locale is only there to check if the locale is
> > valid, it resets it back to its initial value at the end.
> 
> That's okay.  What I meant was setting the old locale at the end.

I've managed to reproduce this, and the time difference on my machine
is ridiculous. From 4 seconds without the setlocale calls to 24
seconds with.

And that's with a legitimate, installed, locale ID in both cases.

I wonder if this is why some people report Emacs 29 on macOS to be
noticeably slower. They, of course, blame the graphics changes, but
with that sort of variation in time...

> > Out of interest, when is it slow? Is it when we have an invalid locale
> > ID?
> 
> That's an interesting question--whatever I do on master, it's almost
> equally slow :-).
> 
> It would be nice if I could get at least the right character encoding on
> my system...  On the plus side, I at least know now what's happening,
> although I don't know what to do.

Indeed. I'm tempted to say we should revert the change since I now
suspect I misunderstood how setlocale works when I wrote this and I'm
not sure it's actually improving anything.

OTOH, it would be good if we could get this to actually work and
generate correct locale ID's for the system... But then, I don't know
what *is* a correct locale ID for a system like yours...

> Aprt from that, I'm currently trying to get profiling working on my old
> Macbook Pro, to compare the profiles of the 2 commits on emacs-29 which
> show the difference.  That could maybe answer your question.
> 
> Buhut... I can't currently get Instruments to work, which might be
> related to the fact that I've updated my unsupported by Apple Macbook to
> Sonoma with OCLP.  Buhut -- maybe the new thunderbolt/magsafe cable for
> my display arrives soon, so that I can use my Mac mini again.  A lot of
> construction sites ahead :-).

I couldn't even get the old commit to build, I had to use the current
master and just revert to see the difference. So best of luck! :)
-- 
Alan Third