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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.