From: Richard M K. <kr...@pr...> - 2008-09-04 17:19:32
|
"Faré" writes: > 2008/9/4 Richard M Kreuter <kr...@pr...>: > > > > Oh. I thought you were reasoning that because practical portability > > nowadays means porting among Lisps on platforms that all treat #\/ > > as a directory separator, ASDF might as well do so, too. > > and treat any character escaping (or lack thereof) portably across > implementations. So that I can have a module named "foo/quux-V1.234" > or a file component named "bar_fly/baz-1.234" (implicitly .lisp, > :newest) and it will do the right thing. Fair enough. As I said, I don't object to your way of doing things, but I think I can think of 3 ways to acheive the desired effect without your patch: (1) Use modules for subdirectories, unless you need files in one directory depending on files in another (IIRC, intercomponent dependencies are effectively scoped to the component's containing module.) (2) Supply a :pathname argument to the component's initializer, and use sharp-dot to parse the string as you desire, e.g., (defsystem foo :components ((:file "bar" :pathname #.(my-string-parser "foo/bar/baz-1.2.3")))) (3) Subclass SOURCE-FILE with a class that accepts an initarg for a file specification string which you can then parse your own way no later than COMPONENT-RELATIVE-PATHNAME. -- Richard, who isn't even a cCLan committer, and so should probably be ignored |