: sds I, for one, am severely disappointed with the size of asdf.
To be frank, so am I. I hate it every time I add a line.
But I couldn't find any other way to make it seamlessly configurable across 13 implementations that we support over 4 families of OSes.
Which is quite a few more than were fully supported before I started. I'm not even sure CLISP was supported back then, by lack of long-form define-method-combination.
Now that you told me that Fare reimplemented pathnames, I am starting to understand why.
I conspicuously did NOT "reimplement pathnames". But I certainly did build a lot of abstractions on top of them, for the sake of portability and robustness. Just take a look at subdirectories, merge-pathnames* or truenamize.
A brief look at asdf.lisp appalled me.
And it appals me, too. You're welcome to do better.
I even tried to simplify it a little bit, e.g.:
diff -r 0195ae274543 modules/asdf/asdf.lisp --- a/modules/asdf/asdf.lisp Fri May 20 15:45:46 2011 -0400 +++ b/modules/asdf/asdf.lisp Fri May 20 16:40:47 2011 -0400 @@ -387,6 +387,8 @@ a list for each collection, in order. (foo (first x)) (bar (second x)))) Returns two values: (A B C) and (1 2 3)."
- #+clisp `(ext:with-collect ,collectors . ,body)
- #-clisp
(let ((vars (mapcar #'(lambda (x) (gensym (symbol-name x))) collectors)) (initial-values (mapcar (constantly nil) collectors))) `(let ,(mapcar #'list vars initial-values)
but soon gave up.
You add two lines. How is that a simplification? Does it provide a big performance boost on CLISP to justify two lines of code? Or does it fix some strange corner case? That said, if you insist that it does matter, I will gladly take your word for it and apply that patch.
I do welcome actual simplifications to the code. So far as I know there is no superfluous line of code in ASDF — and if you find one, I'll be glad to remove it or refactor it away.
By all means, if you think you're able to support ASDF better than I do, and make it work on all the implementations that it does work — go ahead and do it! You may find, as I did, and still do to this date, that's it easier said than done.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Don't expect coherence from a loosely-defined group of people. Even individuals have trouble with coherence. Argue issues. Change incentives.