Skip to content

Work around the Emacs 31 posification bug and test on 31.1 - #4193

Merged
bbatsov merged 2 commits into
masterfrom
emacs-31-posification
Sep 10, 2026
Merged

bbatsov merged 2 commits into
masterfrom
emacs-31-posification

Conversation

@bbatsov

@bbatsov bbatsov commented Sep 10, 2026

Copy link
Copy Markdown
Member

On Emacs 31.1 the first eldev -p test after any source change failed nine specs with invalid-function cl-block and the rerun passed. The byte compiler stamps positions onto compiler-macro results in place, which corrupts queue-create's stored inline body once the package has been compiled in-process; Emacs bug#79599 added a switch for it, which the Eldev file now turns off. The packaged copy also no longer picks up macOS AppleDouble files. Emacs 31.1 joins the CI matrix, which is where this should have shown up.

Emacs 31 stamps source positions onto compiler-macro expansions in
place. For an argument-less cl-defsubst the expansion is the stored
inline body itself, so once anything calling queue-create has been
byte-compiled in a process, every later macroexpand-all of it sees a
positioned cl-block symbol it doesn't recognize as a macro. Eldev's
packaged mode compiles CIDER right before loading the specs, which made
the first `eldev -p test` after any source change fail nine specs with
`invalid-function cl-block`, and the rerun pass. Emacs bug#79599 covers
this and added the switch we now flip off.

While here, tell bsdtar not to add AppleDouble entries: on macOS the
packaged copy of the project picked up over a hundred `._*.el` files
that Eldev then byte-compiled as Lisp.
It has been the stable release for a while and CI stopped at 30.2, which
is how the posification failure in packaged test runs went unnoticed.
@bbatsov
bbatsov merged commit 777a495 into master Sep 10, 2026
25 of 26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant