Subject: 28.2; Auctex fails to load properly

From: Roger Lipsett <[email-masked]>
Date: Mon, 24 Jul 2023 11:08:24 -0400

I recently switched from an Intel Mac to an Apple Silicon mac, and
Auctex no longer loads properly.

If I start an emacs server, set debug-on-error to t, and try to load a .tex
file, I get the
following, and the first line below continues until I get the message
"error lisp nesting exceeds 'max-lisp-eval-depth'".
  internal--fill-string-single-line("Use the command `TeX-Omega-mode' to
change this va...")
  internal--fill-string-single-line("Use the command `TeX-Omega-mode' to
change this va...")
  internal--fill-string-single-line("Use the command `TeX-Omega-mode' to
change this va...")
  internal--format-docstring-line("Use the command `%s' to change this
variable." TeX-Omega-mode)
  #f(compiled-function (arg1 arg2 &rest rest) "Define a new minor mode
MODE.\nThis defines the toggle command MODE and (by default) a control
variable\nMODE (you can override this with the :variable keyword, see
below).\nDOC is the documentation for the mode toggle command.\n\nThe
defined mode command takes one optional (prefix) argument.\nInteractively
with no prefix argument, it toggles the mode.\nA prefix argument enables
the mode if the argument is positive,\nand disables it otherwise.\n\nWhen
called from Lisp, the mode command toggles the mode if the\nargument is
`toggle', disables the mode if the argument is a\nnon-positive integer, and
enables the mode otherwise (including\nif the argument is omitted or nil or
a positive integer).\n\nIf DOC is nil, give the mode command a basic
doc-string\ndocumenting what its argument does.  If the word \"ARG\" does
not\nappear in DOC, a paragraph is added to DOC explaining\nusage of the
mode argument.\n\nBODY contains code to execute each time the mode is
enabled or disabled.\n  It is executed after toggling the mode, and before
running MODE-hook.\n  Before the actual body code, you can write keyword
arguments, i.e.\n  alternating keywords and values.  If you provide BODY,
then you must\n  provide at least one keyword argument (e.g. `:lighter
nil`).\n  The following special keywords are supported (other keywords are
passed\n  to `defcustom' if the minor mode is global):\n\n:global
GLOBAL\11If non-nil specifies that the minor mode is not meant to
be\n\11\11buffer-local, so don't make the variable MODE
buffer-local.\n\11\11By default, the mode is buffer-local.\n:init-value
VAL\11the initial value of the mode's variable.\n\11\11Note that the minor
mode function won't be called by setting\n\11\11this option, so the value
*reflects* the minor mode's natural\n\11\11initial state, rather than
*setting* it.\n\11\11In the vast majority of cases it should be
nil.\n\11\11Not used if you also specify :variable.\n:lighter SPEC\11Text
displayed in the mode line when the mode is on.\n:keymap MAP\11Keymap bound
to the mode keymap.  Defaults to `MODE-map'.\n                If non-nil,
it should be an unquoted variable name (whose value\n                is a
keymap), or an expression that returns either a keymap or\n\11\11a list of
(KEY . BINDING) pairs where KEY and BINDING are\n\11\11suitable for
`define-key'.  If you supply a KEYMAP argument\n\11\11that is not a symbol,
this macro defines the variable MODE-map\n\11\11and gives it the value that
KEYMAP specifies.\n:interactive VAL  Whether this mode should be a command
or not.  The default\n                is to make it one; use nil to avoid
that.  If VAL is a list,\n                it's interpreted as a list of
major modes this minor mode\n                is useful in.\n:variable
PLACE\11The location to use instead of the variable MODE to
store\n\11\11the state of the mode.\11This can be simply a
different\n\11\11named variable, or a generalized variable.\n\11\11PLACE
can also be of the form (GET . SET), where GET is\n\11\11an expression that
returns the current state, and SET is\n\11\11a function that takes one
argument, the new state, which should\n                be assigned to
PLACE.  If you specify a :variable, this function\n                does not
define a MODE variable (nor any of the terms used\n\11\11in
:variable).\n:after-hook     A single Lisp form which is evaluated after
the mode hooks\n                have been run.  It should not be
quoted.\n\nFor example, you could write\n  (define-minor-mode foo-mode \"If
enabled, foo on you!\"\n    :lighter \" Foo\" :require \\='foo :global t
:group \\='hassle :version \"27.5\"\n    ...BODY CODE...)\n\nFor backward
compatibility with the Emacs<21 calling convention,\nthe keywords can also
be preceded by the obsolete triplet\nINIT-VALUE LIGHTER KEYMAP." #<bytecode
0x1bb50d2338ff34ff>)(TeX-Omega-mode "Minor mode for using the Omega
engine." :init-value nil :lighter nil :keymap nil :group 'TeX-command
(TeX-engine-set (if TeX-Omega-mode 'omega 'default)))
  (define-minor-mode TeX-Omega-mode "Minor mode for using the Omega
engine." :init-value nil :lighter nil :keymap nil :group 'TeX-command
(TeX-engine-set (if TeX-Omega-mode 'omega 'default)))
  eval-buffer(#<buffer  *load*> nil
"/Users/rlipsett/.emacs.d/elpa/auctex-13.2.1/tex.el" nil t)  ; Reading at
buffer position 69136

load-with-code-conversion("/Users/rlipsett/.emacs.d/elpa/auctex-13.2.1/tex.el"
"/Users/rlipsett/.emacs.d/elpa/auctex-13.2.1/tex.el" nil t)
  TeX-tex-mode()
  apply(TeX-tex-mode nil)
  tex-mode()
  set-auto-mode-0(tex-mode nil)
  set-auto-mode--apply-alist((("\\.js\\'" . js2-mode) ("\\.mjs\\'" .
javascript-mode) ("\\.hva\\'" . latex-mode) ("\\.d[i]?\\'" . d-mode)
("\\.gpg\\(~\\|\\.~[0-9]+~\\)?\\'" nil epa-file) ("\\.elc\\'" .
elisp-byte-code-mode) ("\\.zst\\'" nil jka-compr) ("\\.dz\\'" nil
jka-compr) ("\\.xz\\'" nil jka-compr) ("\\.lzma\\'" nil jka-compr)
("\\.lz\\'" nil jka-compr) ("\\.g?z\\'" nil jka-compr) ("\\.bz2\\'" nil
jka-compr) ("\\.Z\\'" nil jka-compr) ("\\.vr[hi]?\\'" . vera-mode)
("\\(?:\\.\\(?:rbw?\\|ru\\|rake\\|thor\\|jbuilder\\|rabl\\|ge..." .
ruby-mode) ("\\.re?st\\'" . rst-mode) ("\\.py[iw]?\\'" . python-mode)
("\\.m\\'" . octave-maybe-mode) ("\\.less\\'" . less-css-mode)
("\\.scss\\'" . scss-mode) ("\\.awk\\'" . awk-mode)
("\\.\\(u?lpc\\|pike\\|pmod\\(\\.in\\)?\\)\\'" . pike-mode) ("\\.idl\\'" .
idl-mode) ("\\.java\\'" . java-mode) ("\\.m\\'" . objc-mode) ("\\.ii\\'" .
c++-mode) ("\\.i\\'" . c-mode) ("\\.lex\\'" . c-mode) ("\\.y\\(acc\\)?\\'"
. c-mode) ("\\.h\\'" . c-or-c++-mode) ("\\.c\\'" . c-mode)
("\\.\\(CC?\\|HH?\\)\\'" . c++-mode) ("\\.[ch]\\(pp\\|xx\\|\\+\\+\\)\\'" .
c++-mode) ("\\.\\(cc\\|hh\\)\\'" . c++-mode) ("\\.\\(bat\\|cmd\\)\\'" .
bat-mode) ("\\.[sx]?html?\\(\\.[a-zA-Z_]+\\)?\\'" . mhtml-mode)
("\\.svgz?\\'" . image-mode) ("\\.svgz?\\'" . xml-mode) ("\\.x[bp]m\\'" .
image-mode) ("\\.x[bp]m\\'" . c-mode) ("\\.p[bpgn]m\\'" . image-mode)
("\\.tiff?\\'" . image-mode) ("\\.gif\\'" . image-mode) ("\\.png\\'" .
image-mode) ("\\.jpe?g\\'" . image-mode) ("\\.te?xt\\'" . text-mode)
("\\.[tT]e[xX]\\'" . tex-mode) ("\\.ins\\'" . tex-mode) ("\\.ltx\\'" .
latex-mode) ...) nil nil)
  set-auto-mode()
  normal-mode(t)
  after-find-file(nil t)
  find-file-noselect-1(#<buffer lucy.tex> "~/lucy.tex" nil nil "~/lucy.tex"
(5780809 16777233))
  find-file-noselect("~/lucy.tex" nil nil t)
  find-file("~/lucy.tex" t)
  funcall-interactively(find-file "~/lucy.tex" t)
  call-interactively(find-file nil nil)
  command-execute(find-file)

If I also set debug-on-signal and try to byte-compile tex.el, which is
where the previous error seemed to occur, I get the following:

Debugger entered--Lisp error: (void-variable ansi-color-faces-vector)
  default-toplevel-value(ansi-color-faces-vector)
  custom-initialize-reset(ansi-color-faces-vector (funcall
#'#f(compiled-function () #<bytecode 0x1ca1c2cd84e54>)))
  custom-declare-variable(ansi-color-faces-vector (funcall
#'#f(compiled-function () #<bytecode 0x1ca1c2cd84e54>)) "Faces used for SGR
control sequences determining a..." :type (vector face face face face face
face face face) :group ansi-colors)

byte-code("\300\301\302\303\304\305\306\307&\7\210\310\311\312\313\306\301\304\314&\7\210\310\315\316\317\306\301\304\314&\7\210\310\320\321\322\306\301\304\314&\7\210\310\323\324\325\306\301..."
[custom-declare-group ansi-colors nil "Translating SGR control sequences to
faces.\nThis t..." :version "21.1" :group processes custom-declare-face
ansi-color-bold ((t :inherit 'bold)) "Face used to render bold text."
"28.1" ansi-color-faint ((t :weight light)) "Face used to render faint
text." ansi-color-italic ((t :inherit 'italic)) "Face used to render italic
text." ansi-color-underline ((t :inherit 'underline)) "Face used to render
underlined text." ansi-color-slow-blink ((t :box (:line-width -1))) "Face
used to render slowly blinking text." ansi-color-fast-blink ((t :box
(:line-width -1))) "Face used to render rapidly blinking text."
ansi-color-inverse ((t :inverse-video t)) "Face used to render inverted
video text." ansi-color-black ((t :foreground "black" :background "black"))
"Face used to render black color code." ansi-color-red ((t :foreground
"red3" :background "red3")) "Face used to render red color code."
ansi-color-green ((t :foreground "green3" :background "green3")) "Face used
to render green color code." ansi-color-yellow ((t :foreground "yellow3"
:background "yellow3")) "Face used to render yellow color code."
ansi-color-blue ((t :foreground "blue2" :background "blue2")) "Face used to
render blue color code." ansi-color-magenta ((t :foreground "magenta3"
:background "magenta3")) "Face used to render magenta color code."
ansi-color-cyan ...] 10)
  require(ansi-color)

byte-code("\300\301!\210\300\302!\210\300\303!\210\304\305\306\307\310\311%\210\304\312\306\313\310\305%\207"
[require ring ansi-color regexp-opt custom-declare-group comint nil
"General command interpreter in a window stuff." :group processes
comint-completion "Completion facilities in comint."] 6)
  require(comint)

byte-code("\300\301!\210\300\302!\210\300\303!\210\304\305\306\307\310\311\310\312&\7\210\313\314\315\316\317DD\320\321\322%\210\313\323\315\316\324DD\325\321\322%\210\313\326\315..."
[require tool-bar comint text-property-search custom-declare-group
compilation nil "Run compiler as inferior of Emacs, parse error mes..."
:group tools processes custom-declare-variable compilation-mode-hook
funcall function #f(compiled-function () #<bytecode 0x1f400016fe914>) "List
of hook functions run by `compilation-mode'." :type hook
compilation-start-hook #f(compiled-function () #<bytecode 0x1f400016fe914>)
"Hook run after starting a new compilation process...."
compilation-window-height #f(compiled-function () #<bytecode
0x1f400016fe914>) "Number of lines in a compilation window.\nIf nil, u..."
(choice (const :tag "Default" nil) integer)
compilation-transform-file-match-alist #f(compiled-function () #<bytecode
0x1f400016fe914>) "Alist of regexp/replacements to alter file names i..."
(repeat (list regexp (choice (const :tag "No replacement" nil) string)))
:version "27.1"] 8)
  compilation-mode()
  emacs-lisp-compilation-mode()
  byte-compile-log-file()
  byte-compile-from-buffer(#<buffer  *Compiler Input*>)
  byte-compile-file("~/.emacs.d/elpa/auctex-13.2.1/tex.el" nil)
  funcall-interactively(byte-compile-file
"~/.emacs.d/elpa/auctex-13.2.1/tex.el" nil)
  call-interactively(byte-compile-file record nil)
  command-execute(byte-compile-file record)
  execute-extended-command(nil "byte-compile-file" "byte-comp")
  funcall-interactively(execute-extended-command nil "byte-compile-file"
"byte-comp")
  call-interactively(execute-extended-command nil nil)
  command-execute(execute-extended-command)

In GNU Emacs 28.2 (build 1, aarch64-apple-darwin21.1.0, NS appkit-2113.00
Version 12.0.1 (Build 21A559))
 of 2023-02-22 built on armbob.lan
Windowing system distributor 'Apple', version 10.3.2299
System Description:  macOS 13.4

Configured using:
 'configure --with-ns '--enable-locallisppath=/Library/Application
 Support/Emacs/${version}/site-lisp:/Library/Application
 Support/Emacs/site-lisp' --with-modules --with-x-toolkit=no'

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

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

Major mode: Lisp Interaction

Minor modes in effect:
  delete-selection-mode: t
  global-tab-line-mode: t
  tab-line-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-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
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/Users/rlipsett/.emacs.d/elpa/transient-20230201.1644/transient hides
/Applications/Emacs.app/Contents/Resources/lisp/transient

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util rmail
rmail-loaddefs text-property-search time-date mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils powerline
advice powerline-separators color powerline-themes s xref-js2 vc
vc-dispatcher js2-mode etags fileloop generator xref project ring js
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs imenu server finder-inf edmacro kmacro delsel tab-line
cus-load tex-site 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 iso-transl
tooltip eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode 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 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 emoji-zwj 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 multi-tty
make-network-process emacs)

Memory information:
((conses 16 335644 12711)
 (symbols 48 21993 6)
 (strings 32 108510 1385)
 (string-bytes 1 2885279)
 (vectors 16 35868)
 (vector-slots 8 456841 13447)
 (floats 8 137 35)
 (intervals 56 228 0)
 (buffers 992 11))