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 15:08:40 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

>> 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 
> No, now the bootstrap just fails earlier:

Welcome to the world of the bootstrap.

> I think the (require 'cl-extra) better stay in rx.el until this mess
> has been sorted out.

Or refrain from using rx's `or` from bytecomp.el, or refrain from calling
byte-compile from cl-generic.el during the bootstrap, or ...

>> (of course, using
>> (memq nil (mapcar ...)) is a perfectly fine alternative as well).
> That's what I always have been using, but given that cl-every and cl-some
> are easier to read, understand, and write, and generally faster, I've sort
> of changed tack.

Either way is fine by me (w.r.t speed, cl-every is usually slower per
iteration, so whether it's overall faster or slower depends on how far
down the list it has to get before it finds a nil).

> Maybe we should add `every' and `some' as builtins?

I prefer not to have an opinion on this ;-)


        Stefan




reply via email to

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