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

From: "Y. E." <[email-masked]>
Date: Thu, 09 Sep 2021 22:19:06 +0300

Hello,

I've been using (load-theme 'misterioso t) in early-init.el successfully
up until around one month ago. After that, I had to start calling load-theme
for the second time in init.el to fix appearance of wrong faces.

**How to Reproduce**

1. Backup `~/.emacs.d/'.
2. Create `~/.emacs.d/early-init.el' with `(load-theme 'misterioso t)' in it.
3. Start Emacs.
4. Run `M-x list-faces-display`.
5. Make new frame `C-x 5 2'.
6. Run `M-x list-faces-display' in the second frame.
7. Compare `*Faces*' buffer contents in the first and the second frames.
   - The correct 'misterioso theme faces are shown in the second buffer.
   - For example, compare `completions-common-part'.

Then go back to the first frame and run/evaluate `(load-theme 'misterioso)'.
The faces are going to be fixed in the first frame after that.

It _seems_ to me the issue _might be_ caused by the interference of the "user theme"
mentioned in `(emacs) 49.1.8 Creating Custom Themes'.
[This insinuation was caused by seeing `user' theme as one of the options
on `M-x enable-theme' with `fido-mode' enabled,
which, supposedly, might be a bug on its own.]

Thank you.

In GNU Emacs 28.0.50 (build 11, x86_64-apple-darwin18.7.0, NS appkit-1671.60 Version 10.14.6 (Build 18G9216))
 of 2021-09-05 built on local
Repository revision: 3d0276e98bd2e31c45592def9f53da031a1ae277
Repository branch: master

Configured using:
 'configure LDFLAGS=-L/usr/local/opt/flex/lib
 CPPFLAGS=-I/usr/local/opt/flex/include'

Configured features:
ACL GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY KQUEUE NS PDUMPER
PNG THREADS TIFF TOOLKIT_SCROLL_BARS ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Org

Minor modes in effect:
  flyspell-mode: t
  windmove-mode: t
  global-goto-address-mode: t
  goto-address-mode: t
  company-mode: t
  icomplete-mode: t
  fido-mode: t
  savehist-mode: t
  desktop-save-mode: t
  delete-selection-mode: t
  global-hi-lock-mode: t
  hi-lock-mode: t
  electric-pair-mode: t
  show-paren-mode: t
  global-auto-revert-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-save-visited-mode: t

Load-path shadows:
None found.

Features:
(shadow sort display-fill-column-indicator mail-extr emacsbug
flymake-proc flymake compile warnings flyspell ol-eww eww xdg url-queue
mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-search
eieio-opt cl-extra help-mode speedbar ezimage dframe gnus-art mm-uu
mml2015 mm-view mml-smime smime dig gnus-sum shr kinsoku svg dom
gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap
nnmail mail-source utf7 netrc nnoo parse-time gnus-spec gnus-int
gnus-range gnus-win gnus nnheader ol-docview doc-view jka-compr
image-mode exif ol-bibtex bibtex iso8601 ol-bbdb ol-w3m windmove
cus-edit cus-load wid-edit bookmark pp vc-git diff-mode vc-dispatcher
goto-addr thingatpt ox-odt rng-loc rng-uri rng-parse rng-match rng-dt
rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex
ox-icalendar ox-html table ox-ascii ox-publish ox org-element avl-tree
generator whitespace company-dabbrev-code company-dabbrev company pcase
smtpmail sendmail rmailout rmailmm message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived gnus-util text-property-search mm-decode
mm-bodies mm-encode mailabbrev gmm-utils mailheader mail-parse rfc2231
rmailsum rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils org ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-macro org-footnote org-src ob-comint org-pcomplete pcomplete comint
ansi-color ring org-list org-faces org-entities time-date noutline
outline easy-mmode org-version ob-emacs-lisp ob-core ob-eval org-table
ol org-keys org-compat advice org-macs org-loaddefs format-spec
find-func cal-menu calendar cal-loaddefs icomplete ido savehist
minibuf-eldef desktop frameset ispell rx epg rfc6068 epg-config delsel
hi-lock elec-pair paren autorevert filenotify edmacro kmacro info
package browse-url url url-proxy url-privacy url-expand url-methods
url-history url-cookie url-domsuf url-util mailcap url-handlers
url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache json subr-x map url-vars seq byte-opt gv bytecomp
byte-compile cconv cl-loaddefs cl-lib misterioso-theme iso-transl
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode elisp-mode lisp-mode prog-mode register page
tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar
mouse jit-lock font-lock syntax font-core term/tty-colors frame
minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite charscript charprop case-table epa-hook jka-cmpr-hook help
simple abbrev obarray cl-preloaded nadvice button loaddefs faces
cus-face macroexp files window text-properties overlay sha1 md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote threads kqueue cocoa ns lcms2 multi-tty make-network-process
emacs)

Memory information:
((conses 16 273685 17345)
 (symbols 48 26762 3)
 (strings 32 94932 6500)
 (string-bytes 1 3122713)
 (vectors 16 49630)
 (vector-slots 8 526459 11142)
 (floats 8 307 553)
 (intervals 56 469 88)
 (buffers 992 13))