Thanks for the response. I have a test. I'm just making sure it works on all the implementations, and then I will push it as a new ASDF version.
Let me know if/when you are thinking of slurping this into the new CMUCL release, and I will make a patch release of ASDF for you. Going forward, I'd prefer to see implementations bundle an official ASDF release, instead of some random git state.... Cheers, r On 12/31/15 Dec 31 -3:54 PM, Raymond Toy wrote: >>>>>> "Robert" == Robert Goldman <rpgold...@sift.net> writes: > > Robert> On 12/20/15 Dec 20 -12:14 PM, Raymond Toy wrote: > >>>>>>> "Robert" == Robert Goldman > >>>>>>> <rpgold...@sift.net> writes: > >> > > I thought I had sent a response to this, but I guess not. > > Robert> I think what we want is this, right? > > Robert> (defun test () (pathname-match-p > Robert> (uiop/common-lisp:user-homedir-pathname) (first > Robert> (ext:search-list (cl:user-homedir-pathname))))) > > Robert> that fails on master, and passes with your patch. > > Yeah, that's the correct version. > > Robert> It's not particularly clear to anyone who's not familiar > Robert> with CMUCL. Is there a way to illustrate the issue > Robert> without reference to EXT:SEARCH-LIST? Or can you provide > > The whole issue is the search-list and how pathname-match-p doesn't > handle it. > > Here's a separate example of the issue. > > (setf (search-list "tmp:") '("/tmp/")) > > (pathname-match-p #p"/tmp/foo.lisp" "tmp:foo.lisp") gives an error. > > But if you had a logical-pathname host "temp", then > > (pathname-match-p #p"/tmp/foo.lisp" "temp:*.lisp") doesn't signal an > error. It actually returns nil, which doesn't seem quite right if > there's a translation ("*.lisp" "/tmp/*.lisp"). > > Ugh. I hate pathname issues. > > Robert> comment for this? If I just drop this form into the test > Robert> suite, I foresee it creating great confusion for some poor > Robert> shlub (possibly me) who reads in > 6 months from now.... > > A comment is that asdf doesn't want to use search-lists for > user-homedir-pathname, Convert it to a physical pathaname. > > Robert> It seems like we're doing *SOMETHING* with > Robert> USER-HOMEDIR-PATHNAME followed by merging that causes > Robert> PATHNAME-MATCH-P in this function to error out. > > Robert> But to be honest, I have no idea what's going wrong, or > Robert> why it's ASDF's fault. If you merge a pathname with > Robert> USER-HOMEDIR-PATHNAME's return value, it seems to me you > Robert> ought to be able to call PATHNAME-MATCH-P on the result. > > Yes, and indeed (merge-pathnames "foo.lisp" (user-homedir-pathname)) > returns "home:foo.lisp" as expected. But pathname-match-p doesn't > like search-lists. I guess that's cmucl's fault. > > Robert> It seems like you're saying it's something about the way > Robert> that search-lists deal with nonexistent directories. Is > Robert> that right? > > Robert> Or is this because when we merge we aren't appropriately > Robert> creating something that's a wildcard pathname? > > I don't know either. > > I will look into making pathname-match-p understand search-lists. > I'll leave it up to you on whether asdf should use a different > user-homedir-pathname. I think it makes some sense for any using > cmucl with a pathname-match-p fix with newer versions of asdf. > > -- > Ray > > >