emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bootstrap/autoload policy (was Re: regular expressions that match no


From: Stefan Monnier
Subject: Re: Bootstrap/autoload policy (was Re: regular expressions that match nothing)
Date: Wed, 22 May 2019 11:53:10 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

Mattias Engdegård <address@hidden> writes:

> 22 maj 2019 kl. 16.24 skrev Stefan Monnier <address@hidden>:
>> 
>> Hmm... the bootstrap is a funny beast and we additionally impose extra
>> constraints to try and catch some bugs so... without seeing the error's
>> backtrace I don't think I can say much more at this point.
>
> There was no backtrace, but you should be able to reproduce by removing the
> (require 'cl-extra) from rx.el and bootstrap.
> I traced it manually thus (in call order):
>
> loadup.el: (load "emacs-lisp/cl-generic")
> cl-generic.el: toplevel: (cl--generic-prefill-dispatchers 0 (head eql))
> cl-generic.el: cl--generic-prefill-dispatchers: call 
> cl--generic-get-dispatcher
> cl-generic.el: cl--generic-get-dispatcher: call byte-compile
> bytecomp.el: (require 'compile)
> compile.el: (defvar compilation-error-regexp-alist-alist ... (rx...))
> rx.el: call cl-every from call to rx-to-string
> Eager macro-expansion failure: (void-function cl-every)

Ah, I think I know what's going on.  See this part of cl-lib.el:

    (unless (load "cl-loaddefs" 'noerror 'quiet)
      ;; When bootstrapping, cl-loaddefs hasn't been built yet!
      (require 'cl-macs)
      (require 'cl-seq))

Adding `cl-extra` here would likely fix your problem (of course, using
(memq nil (mapcar ...)) is a perfectly fine alternative as well).


        Stefan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]