unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Problem with file-local variables in uni-special-lowercase.el
@ 2022-01-01  9:00 Eli Zaretskii
  2022-01-01 11:05 ` Eli Zaretskii
  2022-01-01 13:07 ` Po Lu
  0 siblings, 2 replies; 11+ messages in thread
From: Eli Zaretskii @ 2022-01-01  9:00 UTC (permalink / raw)
  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.




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Problem with file-local variables in uni-special-lowercase.el
  2022-01-01  9:00 Problem with file-local variables in uni-special-lowercase.el Eli Zaretskii
@ 2022-01-01 11:05 ` Eli Zaretskii
  2022-01-01 17:57   ` Stefan Monnier
  2022-01-01 13:07 ` Po Lu
  1 sibling, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2022-01-01 11:05 UTC (permalink / raw)
  To: emacs-devel

> Date: Sat, 01 Jan 2022 11:00:08 +0200
> From: Eli Zaretskii <eliz@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:

FWIW, it seems to start happening as soon as charprop.el is
regenerated, whenever the new charprop.el is reloaded by the
byte-compilation process.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Problem with file-local variables in uni-special-lowercase.el
  2022-01-01  9:00 Problem with file-local variables in uni-special-lowercase.el Eli Zaretskii
  2022-01-01 11:05 ` Eli Zaretskii
@ 2022-01-01 13:07 ` Po Lu
  2022-01-01 15:09   ` Philipp Stephani
  1 sibling, 1 reply; 11+ messages in thread
From: Po Lu @ 2022-01-01 13:07 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> 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:

+1, it would be nice if someone fixed this.  I don't know what's going
on, unfortunately.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Problem with file-local variables in uni-special-lowercase.el
  2022-01-01 13:07 ` Po Lu
@ 2022-01-01 15:09   ` Philipp Stephani
  2022-01-02  0:10     ` Po Lu
  0 siblings, 1 reply; 11+ messages in thread
From: Philipp Stephani @ 2022-01-01 15:09 UTC (permalink / raw)
  To: Po Lu; +Cc: Eli Zaretskii, Emacs developers

Am Sa., 1. Jan. 2022 um 14:09 Uhr schrieb Po Lu <luangruo@yahoo.com>:
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> > 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:
>
> +1, it would be nice if someone fixed this.  I don't know what's going
> on, unfortunately.
>

This appears to happen frequently for me as well. Running 'make
gen-clean' in admin/unidata typically fixes it temporarily.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Problem with file-local variables in uni-special-lowercase.el
  2022-01-01 11:05 ` Eli Zaretskii
@ 2022-01-01 17:57   ` Stefan Monnier
  2022-01-01 18:15     ` Eli Zaretskii
  0 siblings, 1 reply; 11+ messages in thread
From: Stefan Monnier @ 2022-01-01 17:57 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 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:
>
> FWIW, it seems to start happening as soon as charprop.el is
> regenerated, whenever the new charprop.el is reloaded by the
> byte-compilation process.

Can you provide a recipe to reproduce the problem?


        Stefan




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Problem with file-local variables in uni-special-lowercase.el
  2022-01-01 17:57   ` Stefan Monnier
@ 2022-01-01 18:15     ` Eli Zaretskii
  2022-01-01 18:49       ` Eli Zaretskii
  2022-01-01 22:52       ` Stefan Monnier
  0 siblings, 2 replies; 11+ messages in thread
From: Eli Zaretskii @ 2022-01-01 18:15 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: emacs-devel@gnu.org
> Date: Sat, 01 Jan 2022 12:57:19 -0500
> 
> >> 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:
> >
> > FWIW, it seems to start happening as soon as charprop.el is
> > regenerated, whenever the new charprop.el is reloaded by the
> > byte-compilation process.
> 
> Can you provide a recipe to reproduce the problem?

"touch" every file in the working tree, then say "make".

It might also work to delete all the lisp/international/uni-*.el files
and lisp/international/charprop.el, then say "make".



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Problem with file-local variables in uni-special-lowercase.el
  2022-01-01 18:15     ` Eli Zaretskii
@ 2022-01-01 18:49       ` Eli Zaretskii
  2022-01-01 22:52       ` Stefan Monnier
  1 sibling, 0 replies; 11+ messages in thread
From: Eli Zaretskii @ 2022-01-01 18:49 UTC (permalink / raw)
  To: monnier; +Cc: emacs-devel

> Date: Sat, 01 Jan 2022 20:15:07 +0200
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: emacs-devel@gnu.org
> 
> "touch" every file in the working tree

I meant every one of the versioned files.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Problem with file-local variables in uni-special-lowercase.el
  2022-01-01 18:15     ` Eli Zaretskii
  2022-01-01 18:49       ` Eli Zaretskii
@ 2022-01-01 22:52       ` Stefan Monnier
  2022-01-02  5:13         ` Stefan Monnier
  2022-01-02  6:56         ` Eli Zaretskii
  1 sibling, 2 replies; 11+ messages in thread
From: Stefan Monnier @ 2022-01-01 22:52 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 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:
>> >
>> > FWIW, it seems to start happening as soon as charprop.el is
>> > regenerated, whenever the new charprop.el is reloaded by the
>> > byte-compilation process.

[ Apparently `uni-special-lowercase.el` and its friends are preloaded
  in the dump (even though they don't appear in `loadup.el`).  ]

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

The patch below seems to circumvent the problem.


        Stefan


diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index de1331e12a9..8b61a88f136 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -2958,8 +2958,14 @@ define-char-code-property
     (or (stringp table)
 	(error "Not a char-table nor a file name: %s" table)))
   (if (stringp table) (setq table (purecopy table)))
-  (setf (alist-get name char-code-property-alist) table)
-  (put name 'char-code-property-documentation (purecopy docstring)))
+  (if (and (stringp table)
+           (char-table-p (alist-get name char-code-property-alist)))
+      ;; The table is already setup and we're apparently trying to
+      ;; undo that, probably because `charprop.el' is being re-loaded.
+      ;; Just skip it.
+      nil
+    (setf (alist-get name char-code-property-alist) table)
+    (put name 'char-code-property-documentation (purecopy docstring))))
 
 (defvar char-code-property-table
   (make-char-table 'char-code-property-table)




^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: Problem with file-local variables in uni-special-lowercase.el
  2022-01-01 15:09   ` Philipp Stephani
@ 2022-01-02  0:10     ` Po Lu
  0 siblings, 0 replies; 11+ messages in thread
From: Po Lu @ 2022-01-02  0:10 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: Eli Zaretskii, Emacs developers

Philipp Stephani <p.stephani2@gmail.com> writes:

> This appears to happen frequently for me as well. Running 'make
> gen-clean' in admin/unidata typically fixes it temporarily.

FWIW, I only saw it after the copyright dates were all updated.
Bootstrapping twice fixed it for me.

Thanks.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Problem with file-local variables in uni-special-lowercase.el
  2022-01-01 22:52       ` Stefan Monnier
@ 2022-01-02  5:13         ` Stefan Monnier
  2022-01-02  6:56         ` Eli Zaretskii
  1 sibling, 0 replies; 11+ messages in thread
From: Stefan Monnier @ 2022-01-02  5:13 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

> The patch below seems to circumvent the problem.

Oh and I can reproduce it with:

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


-- Stefan




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Problem with file-local variables in uni-special-lowercase.el
  2022-01-01 22:52       ` Stefan Monnier
  2022-01-02  5:13         ` Stefan Monnier
@ 2022-01-02  6:56         ` Eli Zaretskii
  1 sibling, 0 replies; 11+ messages in thread
From: Eli Zaretskii @ 2022-01-02  6:56 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: emacs-devel@gnu.org
> Date: Sat, 01 Jan 2022 17:52:16 -0500
> 
> I suspect this problem is newly introduced by the symbol-shorthands
> code, which apparently uses just enough more of the `hack-local-variables`
> machinery to trigger it.

Makes sense.

> The patch below seems to circumvent the problem.

Thanks, please install on the emacs-28 branch.



^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2022-01-02  6:56 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-01  9:00 Problem with file-local variables in uni-special-lowercase.el Eli Zaretskii
2022-01-01 11:05 ` Eli Zaretskii
2022-01-01 17:57   ` Stefan Monnier
2022-01-01 18:15     ` Eli Zaretskii
2022-01-01 18:49       ` Eli Zaretskii
2022-01-01 22:52       ` Stefan Monnier
2022-01-02  5:13         ` Stefan Monnier
2022-01-02  6:56         ` Eli Zaretskii
2022-01-01 13:07 ` Po Lu
2022-01-01 15:09   ` Philipp Stephani
2022-01-02  0:10     ` Po Lu

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).