Subject: bug#71805: master: New interpreted function format prevents native compilation.

From: Alan Mackenzie <[email-masked]>
Date: Thu, 27 Jun 2024 16:00:58 +0000

Hello, Emacs.

With a recent master repo (likely also the emacs-30 branch):
(i) mkdir ~/cc-mode.hg.
(ii) chdir ~/cc-mode.hg.
(iii) Copy cc-mode.hg.tar.gz from this bug report to ~/cc-mode.hg.
(iv) tar -zxf cc-mode.tar.gz.
The CC Mode source files should now be in the current directory.

(v) emacs -Q -batch -f batch-byte-compile *.el
The CC Mode .elc files should now be present.

(vi) emacs -Q.
(vii) M-: (push "~/cc-mode.hg" load-path).
(viii) M-x load-library RET cc-mode RET.
(ix) (After a brief wait) C-x b *Async-native-compile-log* RET.

(x) Search the buffer for "#" with C-s or C-r.  This will find the error
line

/home/awk/cc-mode.hg/cc-fonts.el: Error Wrong type argument: listp, #[(form) (`(cdr (backquote-process ,form))) nil]

(where "awk" is your user name).

The native compiler has thus failed to compile cc-fonts.el, this being
something to do with the new interpreted form

    #[(form) (`(cdr (backquote-process ,form))) nil]

being somewhere where a list form is expected.

Possibly of interest: (defun (form) (`(cdr (backquote-process ,form)))
nil] looks like a failed expansion of backquote (see
lisp/emacs-lisp/backquote.el).

-- 
Alan Mackenzie (Nuremberg, Germany).