Subject: Re: bug#67696: 30.0.50; Help deal with multiple versions in load-path

From: Stefan Kangas <[email-masked]>
Date: Sun, 17 Dec 2023 09:21:39 -0800

Stefan Monnier <[email-masked]> writes:

> Another option is to tweak `require` directly: the new function works
> basically "identically" to `require` expect for the added checks.
[...]
> But yes, we could change `require` to behave more like
> `require-with-check`.  The downside is that it's more risky, and it may
> come with a performance cost (it means that calling `require` repeatedly
> isn't as cheap as `(memq F features)`).

Right.  On the other hand, perhaps hitting the file system is to some
extent expected once you start asking for libraries to be loaded.  You
only get the best case `(memq F features)' if that evaluates to `t'.

Personally, I don't have a good view of how common these problems are.
Perhaps they are relatively uncommon, and it's too much to ask all users
of `require' to pay a cost for added correctness in unusual cases.