Subject: Re: bug#47161: 28.0.50; [feature/native-comp] Failure to native-compile bytecomp.el etc.

From: Eli Zaretskii <[email-masked]>
Date: Tue, 16 Mar 2021 14:50:53 +0200

> From: Andrea Corallo <[email-masked]>
> Cc: [email-masked]
> Date: Mon, 15 Mar 2021 20:05:10 +0000
> 
> >     ELC      emacs-lisp/byte-opt.elc
> >   Compiler-macro error for cl--block-wrapper: (error "(setf seq-elt) is already defined as something else than a generic function")
> >   Eager macro-expansion failure: (error "(setf seq-elt) is already defined as something else than a generic function")
> >
> > What causes this?
> 
> ATM I've no idea, but it doesn't look to me evidently related to native
> compilation.  How can I reproduce it?

What I did was modified byte-opt.el, saved, and said "make".

> Also, shouldn't byte-opt.el be native compiled as it's in COMPILE_FIRST?

That bothers me as well.  It happens from time to time: for example,
I've just updated from Git, which brought modified bytecomp.el and
comp.el, both in COMPILE_FIRST.  And yet this is what I see when I say
"make":

  make -C lisp all
  make[1]: Entering directory `/d/gnu/git/emacs/native-comp/lisp'
  make -C ../leim all EMACS="../src/emacs.exe"
  make -C ../admin/grammars all EMACS="../../src/emacs.exe"
  make[2]: Entering directory `/d/gnu/git/emacs/native-comp/admin/grammars'
  make[2]: Nothing to be done for `all'.
  make[2]: Leaving directory `/d/gnu/git/emacs/native-comp/admin/grammars'
  make[2]: Entering directory `/d/gnu/git/emacs/native-comp/leim'
  make[2]: Nothing to be done for `all'.
  make[2]: Leaving directory `/d/gnu/git/emacs/native-comp/leim'
  make[2]: Entering directory `/d/gnu/git/emacs/native-comp/lisp'
    ELC      emacs-lisp/bytecomp.elc
  make[2]: Leaving directory `/d/gnu/git/emacs/native-comp/lisp'
  make[2]: Entering directory `/d/gnu/git/emacs/native-comp/lisp'
    ELC      emacs-lisp/comp.elc
  make[2]: Leaving directory `/d/gnu/git/emacs/native-comp/lisp'
  make[2]: Entering directory `/d/gnu/git/emacs/native-comp/lisp'
  make[2]: Nothing to be done for `compile-targets'.
  make[2]: Leaving directory `/d/gnu/git/emacs/native-comp/lisp'

Why not "ELC+ELN"?

Note that this happens when we do "make -C lisp all" from the src
directory.