Subject: Re: bug#58912: 29.0.50; set-face-attribute call in init.el has no lasting effect

From: Matt Armstrong <[email-masked]>
Date: Sat, 05 Nov 2022 11:50:54 -0700

Eli Zaretskii <[email-masked]> writes:

>> From: Matt Armstrong <[email-masked]>
>> Cc: Dmitry Gutov <[email-masked]>, Eli Zaretskii <[email-masked]>,
>>  [email-masked]
>> Date: Wed, 02 Nov 2022 14:55:18 -0700
>> 
>> Also, I confirmed that moving the "test.el" code into early-init.el is
>> enough to "fix" the problem.
>
> In case there's any doubt, we don't want this kind of solutions to be
> the fix for such problems.  early-init.el should be used for a very
> small number of customizations that must take place early on.  This
> one is not one of them.
>
> Thanks for the other data you collected.

It might be a clue to the bug.  Namely, when the 'default face's family
is set in init.el I see this in the
dynamic-setting-handle-config-changed-event ->
font-setting-change-default-font calls:

3 -> (font-get #<font-object "-SAJA-Cascadia Mono-semilight-normal-normal-*-15-*-*-*-m-0-iso10646-1"> :user-spec)
3 <- font-get: "IBM Plex Mono 11"

When set in early-init.el I see something like this:

3 -> (font-get #<font-object "-SAJA-Cascadia Mono-semilight-normal-normal-*-15-*-*-*-m-0-iso10646-1"> :user-spec)
3 <- font-get: "Cascadia Mono 11"

I don't know what a font-object's :user-spec property is, or why it is
apparently wrong in the first case.