Order of *CENTRAL-REGISTRY* traversal
Nikodemus Siivola <[email protected]>
| Newsgroups | gmane.lisp.steel-bank.devel,gmane.lisp.cclan.general |
|---|---|
| Message-ID | <[email protected]> |
(This is parallel to my earlier note about
SB-EXT:*MODULE-PROVIDER-FUNCTIONS* traversal.)
Currently ASDF traverses *CENTRAL-REGISTRY* head-to-tail: new locations
pushed to the front take precendence and older ones serve as fallbacks.
The behaviour undocumented.
I believe that this is an unfortunate design as it means that a seemingly
innocent PUSH can lead to totally different set of libraries being loaded
as would be without. The system is unstable: a single idiomatic operation
can have large and impossible to predict consequences.
I would like to change ASDF to traverse it tail to head instead, so that
(PUSH <DIR> *CENTRAL-REGISTRY*) can only make a previously failing (OOS
'LOAD-OP :FOO) succeed, but not alter the behaviour of a succeeding
operation.
This _would_ cause migration work for people whose setups deliberately
operate on the head or tail already. However, I doubt this is much
depended on outside personal initialization files since the current
behaviour is not only undocumented but unstable.
Cheers,
-- Nikodemus Schemer: "Buddha is small, clean, and serious."
Lispnik: "Buddha is big, has hairy armpits, and laughs."
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click