Dear Kevin,
On Fri, Sep 11, 2015 at 12:55 PM, Kevin Layer layer@franz.com wrote:
Hi, all. I had an spr with Faré, but I figure it's better to have this discussion on asdf-devel.
Yes, my apologies for not getting back to you. I had a very busy couple of weeks at work, and debugging ASDF on Allegro/Windows slipped out of my mind.
First, as Faré pointed out, ACL was releasing non-release versions of ASDF. I've rectified that, and I will be using the `release' branch from now on.
Thanks!
Second, I can't build 3.1.5 on Windows. See below.
I have no problem buildng or using ASDF 3.1.5 with Allegro 9.0 on Windows — except for the ASDF bug, fixed in 3.1.5.7 (that also works with Allegro 9.0), that the cache is put at the wrong place (missing the cache/ component because I fumbled the / after cache).
What is (user-homedir-pathname) returning for you? Could it be that it's wrongfully returning NIL? That would explain your error behavior. Note that (user-homedir-pathname) is specified to always return an (absolute?) directory pathname object; if it doesn't that's probably a bug in Allegro. Yet, it works for me.
Third, I would really love to include the ASDF tests as part of the ACL test suite. It would have prevented so many headaches. To that end, I see these problems:
- There are reported errors, even on ACL 8.2. I can send the
details, but I'm sure someone else can reproduce this. I used
ALLEGRO=.../alisp make t u l=allegro
in a clone of the asdf repo on the release branch. I used an 8.2 alisp, which was not in my PATH, btw. I don't have any lisps in my PATH (because I want to explicitly choose the version when I run it).
For test-program.script to work, you MUST export a $PATH that contains your alisp — but that PATH need not apply outside your test script or test command line, as in
ALLEGRO=.../alisp PATH=.../:$PATH make l=allegro t u
- The symbolic link issue. The test suite doesn't run at all when
the source files are available via a symbolic links. I'll be happy to get some workaround (a file loaded before the tests start so I can set *resolve-symlinks* to nil?).
It's simpler if you just copy ASDF and/or use the truename for your $PWD etc.
As for the Windows build problem:
;;; Compiling file sys:;contrib;asdf.lisp ;;; (C:\src\scm\acl82.32\src\cl\src\contrib\asdf.lisp) ; While compiling (:top-level-form "asdf.lisp" 321294): Error (from error): Invalid pathname #P"cache": Expected an absolute pathname
Once I can build a release version of ASDF, I'll put it out as a patch on 8.2, 9.0 and 10.0.
All tests pass for me with Allegro 9.0 on Windows using the ASDF 3.1.5.7 in the minimakefile branch:
make l=allegro test-scripts
Using 3.1.5 (more unnecessarily verbose), only test-program fails, but I forgive it:
make l=allegro test-lisp
[Note to Robert: that's one more reason to merge the minimakefile branch — I'm unwilling to fix run-tests.sh to do the right thing wrt to using buildi.exe on Windows. And yes, I debugged make.bat on Windows while I was at it.]
Since there's a cache pathname bug on Windows in 3.1.5, I recommend shipping with 3.1.5.7 (or 3.1.6, if we manage to ship faster than you do).
Once the testing issues are resolved, I will immediately add it to the test suite.
Please trace user-homedir-pathname and/or investigate why your cache gets set wrong on Windows.