As discussed briefly on #lisp a week or two ago:
As a replacement for the proposals in my earlier email on REQUIRE and ASDF
I'm suggesting a more conservative option to altering the behaviour of
traverse *MODULE-PROVIDER-FUNCTIONS* in reverse order.
This change guarantees that if (REQUIRE X) would succeed before (REQUIRE
Y) it will also do so after --and with the same result--, assuming that Y
is well-behaved and adds providers only to the front of *M-P-F*.
This solves a real problem for me: how to add a provider to an ASDF-less
core so that this provider would trump the ASDF-one even after ASDF is
An even more conservative alternative is to alter ASDF to add its provider
to the end of the list. However I believe that most people PUSHing to the
front of the list do not actually intend to potentially override existing
providers, but to add a new fallback, and using the reverse-order would
Patch attached for clarity. Unless hue or cry is heard I'll merge this
next weekend (10-11 of Dec).
-- Nikodemus Schemer: "Buddha is small, clean, and serious."
Lispnik: "Buddha is big, has hairy armpits, and laughs."