Re: Re: [cclan-list] Order of *CENTRAL-REGISTRY* traversal
Nikodemus Siivola <[email protected]>
| Newsgroups | gmane.lisp.steel-bank.devel,gmane.lisp.cclan.general |
|---|---|
| Message-ID | <[email protected]> |
On Wed, 7 Dec 2005, Max-Gerd Retzlaff wrote:
> | (push #p"lispdir:systems;" asdf:*central-registry*)
> | (push #p"sbcldir:systems;" asdf:*central-registry*)
> | (push #p"coding:systems;" asdf:*central-registry*)
Are you intentionally overriding the SBCL-provided directories
in *central-registry*?
In any case it seems to me that changing the way *central-registry*
works is a bad idea and a good way to increase the amount of pain
in the world.
So, I revise my position completely (always good for a laugh):
1) Keep *central-registry* and *module-provider-functions* traversal
as is.
2) Make ASDF add its provider function the _end_ of *m-p-f*, so that ASDF
modules will not accidentally override contribs. (Not all contribs
have .asd files.)
3) Add sysdef-contrib-search-function to the head of
*system-definition-search-functions* that looks in
(MERGE-PATHNAMES "systems/" (TRUENAME (POSIX-GETENV "SBCL_HOME")))
-- and remove the corresponding entry from *central-registry*.
This is also needed with 2) for consistency between (OOS 'LOAD-OP X)
and (REQUIRE X).
4) Document all of this properly.
End result: current overriding behaviour for user-space components, but
overriding a contrib takes extra work: you need to add new functions to
*m-p-f* and *s-d-s-f* to do that, instead of just pushing on
*central-registry*.
How does that sound?
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