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

From: Andrea Corallo <[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.

  Andrea