Re: master 94646751192: compile.el: Fix last change
Stefan Monnier <[email protected]>
| Newsgroups | gmane.emacs.devel |
|---|---|
| Message-ID | <[email protected]> |
Ulrich Müller [2026-08-18 22:22:31] wrote:
>>>>>> On Tue, 18 Aug 2026, Stefan Monnier wrote:
>
>>> * lisp/progmodes/compile.el
>>> (compilation-error-regexp-alist-alist): ?\N{BULLET} cannot be used
>>> during bootstrap.
>
>> Hmm... why is this code loaded during bootstrap?
>
> With master at commit 5e706878229fc7a3b57be0930ad28210733a30a3, the
> build failed like this:
>
> ./temacs --batch -l loadup --temacs=pbootstrap \
> --bin-dest '/usr/bin/' --eln-dest '/usr/lib64/emacs/32.0.50/'
> Loading loadup.el (source)...
> Dump mode: pbootstrap
> [...]
> Loading /tmp/portage/app-editors/emacs-32.0.9999/work/emacs/lisp/progmodes/elisp-mode.el (source)...
>
> Error: error ("Eager macro-expansion failure: (file-missing \"Cannot open load file\" \"No such file or directory\" \"charprop\")")
> signal(error ("Eager macro-expansion failure: (file-missing \"Cannot open load file\" \"No such file or directory\" \"charprop\")"))
> error("Eager macro-expansion failure: %S" (file-missing "Cannot open load file" "No such file or directory" "charprop"))
> [...]
>
> "git bisect" pointed to commit 946467511922f9b5918b29cb807835459dd86dea,
> and the added character reference by Unicode name in compile.el was the
> obvious culprit.
>
> Not sure how this problem in compile.el caused a failure when loading
> elisp-mode.el.
Hmm... adding an `(error "Foo")` at the beginning of `compile.el` shows:
[...]
require(compile)
eval-buffer(#<buffer *load*-618840> nil ".../lisp/progmodes/flymake.el" nil t)
[...]
autoload-do-load((autoload "flymake" "Log, at level LEVEL, the message MSG formatted with ARGS.\nLEVEL is passed to `display-warning', which is used to display\nthe warning. If this form is included in a file,\nthe generated warning contains an indication of the file that\ngenerated it.\n\n(fn LEVEL MSG &rest ARGS)" nil t) flymake-log macro)
[...]
macroexpand-1((flymake-log :warning "byte-compile process %s obsolete" proc) nil)
[...]
So it's because `elisp-mode.el` has a call to the autoloaded macro
`flymake-log` defined in `flymake.el` which in turn requires
`compile.el` ("for some faces", apparently). 🙁
=== Stefan