Subject: bug#52945: closed (Re: bug#52945: 29.0.50; Recursive load of uni-special-lowercase.el)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 02 Jan 2022 07:27:02 +0000

Your bug report

#52945: 29.0.50; Recursive load of uni-special-lowercase.el

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
52945: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=52945
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#52945: 29.0.50; Recursive load of uni-special-lowercase.el
From: Stefan Monnier <[email-masked]>
To: [email-masked]
Date: Sun, 02 Jan 2022 02:26:19 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

> There's some strange problem with this file: when building Emacs after
> it is updated, byte-compilation of various Lisp files fails with error
> message like this:

Indeed I can reproduce it with:

    make
    touch lisp/international/{ucs-normalize,charprop,uni-special-lowercase}.el
    make

It seems it is newly introduced by the symbol-shorthands
code, which apparently uses just enough more of the `hack-local-variables`
machinery to trigger it.

Not sure what's the best fix for it, but I installed a patch into
`emacs-28` which seems to work around the problem.
Maybe we should drop the lazy loading feature of lisp/international/uni-*
since those files end up preloaded anyway.

        Stefan

Subject: 29.0.50; Recursive load of uni-special-lowercase.el
From: Stefan Monnier <[email-masked]>
To: [email-masked]
Date: Sun, 02 Jan 2022 02:18:41 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Package: Emacs
Version: 29.0.50

Report by Eli to `emacs-devel`:

There's some strange problem with this file: when building Emacs after
it is updated, byte-compilation of various Lisp files fails with error
message like this:

  File local-variables error: (error Recursive load
/home/eliz/git/emacs/branch/lisp/international/uni-special-lowercase.el
/home/eliz/git/emacs/branch/lisp/international/uni-special-lowercase.el
/home/eliz/git/emacs/branch/lisp/international/uni-special-lowercase.el
/home/eliz/git/emacs/branch/lisp/international/uni-special-lowercase.el
/home/eliz/git/emacs/branch/lisp/international/uni-special-lowercase.el)

  In toplevel form:
  international/mule.el:1833:8: Error: Recursive load:
"/home/eliz/git/emacs/branch/lisp/international/uni-special-lowercase.el",
"/home/eliz/git/emacs/branch/lisp/international/uni-special-lowercase.el",
"/home/eliz/git/emacs/branch/lisp/international/uni-special-lowercase.el",
"/home/eliz/git/emacs/branch/lisp/international/uni-special-lowercase.el",
"/home/eliz/git/emacs/branch/lisp/international/uni-special-lowercase.el",
"/home/eliz/git/emacs/branch/lisp/international/uni-special-uppercase.el"
  Makefile:290: recipe for target '../lisp/international/mule.elc' failed

I guess we try to lower-case some parts of the file-local variables
section, and that causes recursive load or something?

I couldn't get around this except by removing the file-local vars from
the file.