Subject: Re: bug#79353: 31.0.50; Eager macro expansion errors when building master

From: JD Smith <[email-masked]>
Date: Tue, 2 Sep 2025 12:56:34 -0400

> On Sep 2, 2025, at 10:23 AM, Gerd Möllmann <[email-masked]> wrote:
> 
> JD Smith <[email-masked]> writes:
> 
>> I guess I don't understand where this is coming from then.  What if you take out the condition-case and let it generate a backtrace?
> 
> I get the attached compilation log, with a backtrace
> 
> <compilation.log>

Thanks.  Looks like auth-source is the culprit to me.  Maybe give it a require 'cl-extra (with a note like Stefan's) and try?

  signal(error ("Eager macro-expansion failure: (error \"Eager macro-expansion failure: (void-function cl-subseq)\")"))
  error("Eager macro-expansion failure: %S" (error "Eager macro-expansion failure: (void-function cl-subseq)"))
  (condition-case err (let ((macroexp--pending-eager-loads (cons load-file-name macroexp--pending-eager-loads))) (if full-p (macroexpand--all-toplevel form) (macroexpand form))) ((debug error) (error "Eager macro-expansion failure: %S" err) form))
  (cond ((eq 'skip (car macroexp--pending-eager-loads)) form) ((and load-file-name (member load-file-name macroexp--pending-eager-loads)) (let* ((bt (delq nil (mapcar #'macroexp--trim-backtrace-frame (macroexp--backtrace)))) (elem (list 'load (file-name-nondirectory load-file-name))) (tail (member elem (cdr (member elem bt))))) (if tail (setcdr tail (list '…))) (if (eq (car-safe (car bt)) 'macroexpand-all) (setq bt (cdr bt))) (if macroexp--debug-eager (debug 'eager-macroexp-cycle) (error "Eager macro-expansion skipped due to cycle:\n  %s" (mapconcat #'prin1-to-string (nreverse bt) " => "))) (setq macroexp--pending-eager-loads (cons 'skip macroexp--pending-eager-loads)) form)) (t (condition-case err (let ((macroexp--pending-eager-loads (cons load-file-name macroexp--pending-eager-loads))) (if full-p (macroexpand--all-toplevel form) (macroexpand form))) ((debug error) (error "Eager macro-expansion failure: %S" err) form))))
  internal-macroexpand-for-load((eval-when-compile (require 'epg)) nil)
  eval-buffer(#<buffer  *load*-798440> nil "/Users/gerd/emacs/github/master/lisp/auth-source.el" nil t)
  (if eval-function (funcall eval-function buffer (if dump-mode file fullname)) (eval-buffer buffer nil (if dump-mode file fullname) nil t))
  (let ((read-symbol-shorthands shorthands)) (if eval-function (funcall eval-function buffer (if dump-mode file fullname)) (eval-buffer buffer nil (if dump-mode file fullname) nil t)))
  load-with-code-conversion("/Users/gerd/emacs/github/master/lisp/auth-source.el" "/Users/gerd/emacs/github/master/lisp/auth-source.el" nil t)
  require(auth-source)