"Robert" == Robert Goldman rpgoldman@sift.net writes:
Robert> On 12/19/15 Dec 19 -2:32 PM, Raymond Toy wrote: >> >> Not sure how this ever worked with cmucl, but user-homedir-pathname on >> cmucl returns #p"home:", where "home:" is a search-list. In some >> cases, it looks like asdf is trying to create the cache directory and >> end up with a path like >> >> P"home:.cache/common-lisp/cmu-21a__21a_unicode_-macosx-x86/**/*.*.~*~" >> >> but this confuses other parts of asdf and cmucl when trying to run >> pathname-match-p. >> >> Perhaps the best thing is to make asdf us a custom >> user-homedir-pathname like what is done with other lisps. An >> appropriate version would be >> >> (defun user-homedir-pathname () >> (first (ext:search-list (cl:user-homedir-pathname))))
Robert> Hi, Ray --
Robert> I will be happy to make this modification.
Robert> Can you provide a test that will barf when using the current, incorrect Robert> form of user-homedir-pathname?
Here's a really simple test:
(defun test () (pathname-match-p (cl:user-homedir-pathname) (first (ext:search-list (cl:user-homedir-pathname)))))
Robert> When I run cmucl 20f, I don't have any trouble with the current ASDF, Robert> and it makes files inside Robert> ~/.cache/common-lisp/cmu-20f__20f_unicode_-macosx-x86/ just fine.
Robert> So if you could give a concrete example of how this is confusing ASDF Robert> and CMUCL, I'd appreciate it.
Yeah, I've been using asdf with cmucl for years and have never run into this problem; it's working just fine for me now.
But I created a new local user for testing some gitlab ci integration, and it fails with a type error caused by pathname-match-p.
This is what I did:
1. curl -s http://beta.quicklisp.org/archive/rt/2010-10-06/rt-20101006-git.tgz | tar xf - 2. Run cmulisp -noinit and enter
(require :asdf) (load "rt-20101006-git/rt.asd") (asdf:oos 'asdf:load-op :rt :force t)
Running asdf causes the error. This user is bare bones; no other lisp installed anywhere, no quicklisp, not even an .cmucl-init.lisp file.
Ah, I wasn't able to reproduce this with my account, but I see now the key is that I can't have a ~/.cache directory. Removing it causes an error.
-- Ray