Subject: bug#47025: 28.0.50; [feature/native-comp] pcase is preloaded, but not eln-compiled

From: Eli Zaretskii <[email-masked]>
Date: Wed, 10 Mar 2021 15:10:02 +0200

> From: Andrea Corallo <[email-masked]>
> Cc: [email-masked]
> Date: Tue, 09 Mar 2021 20:21:21 +0000
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > I've noticed that the native-comp branch preloads pcase:
> >
> >   Loading files (native compiled elisp)...
> >   Loading emacs-lisp/macroexp (native compiled elisp)...
> >   Loading emacs-lisp/pcase...
> >   Loading emacs-lisp/macroexp (native compiled elisp)...
> >
> > whereas on master this doesn't happen.  Why is that?
> 
> Mmhh, I think is because of this from loadup.el:
> 
> ====
> (load "emacs-lisp/macroexp")
> (if (byte-code-function-p (symbol-function 'macroexpand-all))
>     nil
>   ;; Since loaddefs is not yet loaded, macroexp's uses of pcase will simply
>   ;; fail until pcase is explicitly loaded.  This also means that we have to
>   ;; disable eager macro-expansion while loading pcase.
>   (let ((macroexp--pending-eager-loads '(skip))) (load "emacs-lisp/pcase"))
>   ;; Re-load macroexp so as to eagerly macro-expand its uses of pcase.
>   (let ((max-lisp-eval-depth (* 2 max-lisp-eval-depth)))
>     (load "emacs-lisp/macroexp")))
> ====
> 
> > need to preload pcase?
> 
> I fear I don't have an answer as ATM I don't uderstand why it should be
> different compared to master.

Stefan, any ideas why this happens on the native-comp branch but not
on master?