Subject: bug#50491: 28.0.50; load-theme in early-init does not fully loads/enables expected faces

From: [email-masked]
Date: Fri, 10 Sep 2021 19:32:40 +0300

> > `(emacs)49.4.6 The Early Init File' says:
> > "you can customize variables that affect frame appearance"
> > and
> > "customizations related to GUI features will not work reliably"
> >
> > "frame appearance" and "GUI features" to my _naїve_ eyes _seem_
> > a bit contradictory.
> > Could probably documentation be clarified saying more on what exactly
> > is (not)supported in the early-init file?

> I'm not sure this is feasible in practice.  The general advice is not
> to customize in early-init stuff that can be customized in init.el.
> Any more detailed description runs the risk of describing side-effects
> of implementation details, which are therefore "subject to change
> without notice".

Yes, I understand.

Let's look at it at a bit different angle then,
to make sure there's really nothing to change in the documentation:

The documentation page 49.4.6 mentions that in early-init.el
we can customize two things:
1. "frame appearance".
2. "package initialization process".

After that, documentation goes into details on which exactly variables
can (for example) be customized for the goal of "package initialization
process". (4 variables are mentioned.)

Then it is said that "GUI features will not work reliably in early-init",
which leaves in me (then, potentially, in somebody else too) a cognitive
dis-balance (confusion), by contrasting with the phrase "frame appearance"
from the previous paragraph.

So I suggest considering (one of) the following changes:

- Clarify what "frame appearance" means (to distinguish from - probably
more abstract - term "GUI").

- Change word "appearance" to whatever is appropriate but doesn't
cause "GUI" connotations.

- Maybe provide a couple of example variables for "frame appearance",
similar to "package initialization process" examples. (If possible, of course).
  - My own assumption was I could "safely" use `default-frame-alist' and
  `initial-frame-alist' in early-init, but now I'm not sure.

- Or even remove "frame appearance" mentioning if it shouldn't be there
due to the reasoning given in the previous email (cited above).

- Maybe list all the variables that are surely supported and say more
definitively that anything not on that list are "subject to change
without notice".

Thank you for your work and for looking into it.

YE