On 11/23/10 Nov 23 -11:54 PM, Faré wrote:
On 23 November 2010 23:24, Robert Goldman rpgoldman@sift.info wrote:
This branch has patches that add the :here directive to Faré's configuration DSL. This allows for configuration files to have contents like:
(:source-registry (:tree (:here "src/lisp/")) (:tree (:here "extlib/lisp")) (:directory (:here "outlier/")))
I like the idea, and your patch looks mostly good, but 1- you should probably be using (default-directory) instead of *default-pathname-defaults*
I will modify the code accordingly.
2- why not bind *default-pathname-defaults* instead of a new variable? NB: that would change the meaning of default-directory - may or may not be a good thing.
I'd rather not do that, unless you think it's really important. I like having the distinctive *here-directory* special because it's guaranteed not to mutate parts of the state that I don't understand. I am not confident that by modifying *d-p-d* I won't break something elsewhere.
I could be persuaded to kill the new variable in favor of using *d-p-d*, but I'm not persuaded yet...
3- you can wrap the whole body of process-source-registry (pathname &key ...) in a (let ((*proper-variable* (pathname-directory-pathname pathname))) ...)
I wasn't confident of what would happen in the third branch of the COND --- the one with
(inherit-source-registry inherit :register register)
if I did that. If you're sure I won't mess something up that way, I'll make the change. I'm looking at the test suite, and I'm pretty sure I could bork ASDF by messing up I-S-R without the test suite noticing.
When you merge into master, don't forget to bump up the version number.
Will do.
Happy Thanksgiving! Good luck on your travels!
R